JP2006184628A - Access controller, musical sound signal generation method, generation system, and program - Google Patents
Access controller, musical sound signal generation method, generation system, and program Download PDFInfo
- Publication number
- JP2006184628A JP2006184628A JP2004378785A JP2004378785A JP2006184628A JP 2006184628 A JP2006184628 A JP 2006184628A JP 2004378785 A JP2004378785 A JP 2004378785A JP 2004378785 A JP2004378785 A JP 2004378785A JP 2006184628 A JP2006184628 A JP 2006184628A
- Authority
- JP
- Japan
- Prior art keywords
- channel
- recording medium
- transfer
- sound
- 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.)
- Granted
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
Description
本発明は、パーソナルコンピュータによる楽音信号の生成に用いて好適なアクセス制御装置、楽音信号生成方法、楽音信号生成装置およびプログラムに関する。 The present invention relates to an access control device, a tone signal generation method, a tone signal generation device, and a program suitable for use in generating a tone signal by a personal computer.
近年、パーソナルコンピュータを用いてメモリ音源を構成し、演奏情報に基づいて楽音信号を生成するシステムが知られている。かかるシステムにおいては、ハードディスクに格納された波形データが一部の部分データ(例えば1クラスタ)毎に波形メモリに読み込まれ、読み込まれた部分に対してエンベロープが付与され、効果処理が施されることによって楽音信号が生成される。但し、ハードディスクにおいては、CPUから読出し指示を受信した後に実際にデータが読み出されるまでのタイムラグが大きいため、実際に当該部分データが必要になる時刻よりも前に、CPUはハードディスクに対する読出し指示を出力しておく必要がある。 In recent years, a system is known in which a memory sound source is configured using a personal computer and a musical sound signal is generated based on performance information. In such a system, the waveform data stored in the hard disk is read into the waveform memory for each partial data (for example, one cluster), an envelope is given to the read portion, and effect processing is performed. Generates a musical sound signal. However, in a hard disk, since the time lag until data is actually read after receiving a read instruction from the CPU is large, the CPU outputs a read instruction to the hard disk before the time when the partial data is actually needed. It is necessary to keep it.
特許文献1においては、発音チャンネル毎に「前半」および「後半」の2系統のメモリ領域を波形メモリに設け、これら領域を交互に読み出すことによって波形データを連続的に再生する技術が開示されている。この技術においては、「前半」および「後半」の領域には連続するアドレス空間が付与され、音源回路によって「前半」および「後半」の領域が交互に読み出される。従って、読出しアドレスは鋸歯状波状に変化することになる。音源回路によって「前半」の領域の読出しが終了すると、CPUに対して割込が発生し、該CPUの制御の下、当該「前半」の領域に対してハードディスクから新たな部分データが読み込まれる。これと並行して「後半」の領域は音源回路によって読み出され、該「後半」の領域内の部分データに基づいて楽音信号が合成される。 Japanese Patent Application Laid-Open No. 2004-228688 discloses a technique for providing two memory areas, “first half” and “second half”, for each sound generation channel in a waveform memory, and continuously reproducing waveform data by alternately reading these areas. Yes. In this technique, a continuous address space is assigned to the “first half” and “second half” areas, and the “first half” and “second half” areas are alternately read out by the tone generator circuit. Therefore, the read address changes in a sawtooth waveform. When the reading of the “first half” area is completed by the tone generator circuit, an interrupt occurs to the CPU, and new partial data is read from the hard disk into the “first half” area under the control of the CPU. In parallel with this, the “second half” area is read out by the tone generator circuit, and a musical sound signal is synthesized based on the partial data in the “second half” area.
同様に、音源回路によって「後半」の領域の読出しが終了すると、CPUに対して割込が発生し、該CPUの制御の下、当該「後半」の領域に対してハードディスクから新たな部分データが読み込まれる。これと並行して「前半」の領域は音源回路によって読み出され、楽音信号が合成される。このように、一方の領域に対する部分データの転送と、他方の領域を用いたデータの再生とが繰り返し実行されることになる。ここで、各領域の読出し速度は、対応する発音チャンネルの音高(fナンバ)に基づいて決定される。これにより、一種類の波形データを様々な音高に対して適用することができるようになる。 Similarly, when reading of the “second half” area is completed by the tone generator circuit, an interrupt is generated for the CPU, and new partial data is transferred from the hard disk to the “second half” area under the control of the CPU. Is read. In parallel with this, the “first half” area is read by the tone generator circuit, and a musical sound signal is synthesized. In this way, partial data transfer to one area and data reproduction using the other area are repeatedly executed. Here, the reading speed of each area is determined based on the pitch (f number) of the corresponding sound generation channel. Thereby, one type of waveform data can be applied to various pitches.
ここで、複数チャンネルの読出しアドレスの進行状況を図2(b)を流用して説明する。各発音チャンネル毎のバッファの読み出し速度は、該発音チャンネルの音高(fナンバ)に基づいて決定されるため、図示のように読出しアドレスが成す鋸歯状波の周期は発音チャンネル毎に異なる。そして、何れの発音チャンネルにおいても、鋸歯状波の半周期毎、すなわち白丸印で示すタイミングに割込が発生し、「前半」または「後半」のメモリ領域の更新が開始される。このように、各チャンネル毎に鋸歯状波の周期が相違すると、あるタイミング(図示の例では時刻tp)付近に多数の発音チャンネルの割込がほぼ同時に発生する場合がある。このように、割込が集中して発生すると、ハードディスクから部分データを読み出すタイミングが遅れ、特に読出しアドレスの周期が短いチャンネルに対して部分データの補充が間に合わなくなるという問題があった。
この発明は上述した事情に鑑みてなされたものであり、各発音チャンネルの部分データが必要になるタイミングに応じた最適なスケジュールで各部分データを転送することができるアクセス制御装置、楽音信号生成方法、楽音信号生成装置およびプログラムを提供することを目的としている。
Here, the progress of read addresses of a plurality of channels will be described with reference to FIG. Since the reading speed of the buffer for each tone generation channel is determined based on the pitch (f number) of the tone generation channel, the period of the sawtooth wave formed by the read address varies as shown in the figure. In any of the sound generation channels, an interrupt is generated every half cycle of the sawtooth wave, that is, at the timing indicated by a white circle, and the update of the “first half” or “second half” memory area is started. Thus, if the period of the sawtooth wave is different for each channel, interruptions of a number of sound generation channels may occur almost simultaneously near a certain timing (time tp in the illustrated example). As described above, when interrupts occur in a concentrated manner, there is a problem that the timing for reading partial data from the hard disk is delayed, and in particular, supplementation of partial data for a channel with a short read address period is not in time.
The present invention has been made in view of the above-described circumstances, and an access control apparatus and musical tone signal generation method capable of transferring each partial data with an optimal schedule according to the timing at which the partial data of each tone generation channel is required. It is an object of the present invention to provide a musical sound signal generating device and a program.
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項1記載のアクセス制御装置にあっては、少なくとも一の波形データを記憶する第1の記録媒体(36)と、前記第1の記録媒体(36)よりもアクセス速度が速い第2の記録媒体(22)と、複数の波形データを、これら各波形データの一部を成す部分データ毎に読み出し、前記第2の記録媒体(22)に転送する転送手段(26,32)と、各発音チャンネルの再生レートに応じた速度で前記第2の記録媒体(22)を読み出し、前記各発音チャンネルの楽音信号を生成する楽音信号生成手段(20)とを有する楽音信号生成システムに適用されるアクセス制御装置であって、前記第2の記録媒体(22)に次の部分データを読み込むことが可能な発音チャンネルのうち、該第2の記録媒体(22)に記憶されている部分データによる再生が最も早いタイミングで終了する発音チャンネルを検出する検出手段(24,SP60〜SP70,SP46)と、前記検出手段よって検出された発音チャンネルを、前記転送手段(26,32)における前記部分データの転送を行うべき発音チャンネルとして指定する発音チャンネル指定手段(24,SP48)とを有することを特徴とする。
さらに、請求項2記載の構成にあっては、請求項1記載のアクセス制御装置において、前記楽音信号生成システムは、前記各発音チャンネルの再生レートを記憶するレート記憶手段(12)を有するものであり、前記第1の記録媒体(36)は、所定サイズのブロック(クラスタ)単位で波形データを記憶する記録媒体であり、前記第2の記録媒体(22)は、前記各発音チャンネル毎に複数の記憶領域(BiF,BiR)を有し、これら記憶領域に対して、前記部分データが交互に書き込まれるものであることを特徴とする。
さらに、請求項3記載の構成にあっては、請求項1記載のアクセス制御装置において、前記検出手段は、前記第2の記録媒体(22)に記憶されている部分データによる再生が終了するタイミングの早い順に発音チャンネルのリストを作成し、該リスト中の最も順位の高い発音チャンネルを検出するものであることを特徴とする。
また、請求項4記載の楽音信号生成方法にあっては、少なくとも一の波形データを記憶する第1の記録媒体(36)と、前記第1の記録媒体(36)よりもアクセス速度が速い第2の記録媒体(22)と、複数の波形データを、これら各波形データの一部を成す部分データ毎に読み出し、前記第2の記録媒体(22)に転送する転送手段(26,32)と、各発音チャンネルの再生レートに応じた速度で前記第2の記録媒体(22)を読み出し、前記各発音チャンネルの楽音信号を生成する楽音信号生成手段(20)とを有する楽音信号生成システムにおいて実行される楽音信号生成方法であって、前記第2の記録媒体(22)に次の部分データを読み込むことが可能な発音チャンネルのうち、該第2の記録媒体(22)に記憶されている部分データによる再生が最も早いタイミングで終了する発音チャンネルを検出する検出過程(SP60〜SP70,SP46)と、前記検出過程において検出された発音チャンネルを、前記転送手段(26,32)における前記部分データの転送を行うべき発音チャンネルとして指定する発音チャンネル指定過程(SP48)とを処理装置(6)に実行させることを特徴とする。
さらに、請求項5記載の構成にあっては、請求項4記載の楽音信号生成方法において、前記楽音信号生成システムは、前記各発音チャンネルの再生レートを記憶するレート記憶手段(12)を有するものであり、前記第1の記録媒体(36)は、所定サイズのブロック(クラスタ)単位で波形データを記憶する記録媒体であり、前記第2の記録媒体(22)は、前記各発音チャンネル毎に複数の記憶領域(BiF,BiR)を有し、これら記憶領域に対して、前記部分データが交互に書き込まれるものであり、前記検出過程は、前記第2の記録媒体(22)に記憶されている部分データによる再生が終了するタイミングの早い順に、発音チャンネルのリストを作成し(SP68)、前記リスト中の最も順位の高い発音チャンネルを検出する過程であることを特徴とする。
また、請求項6記載の楽音信号生成装置にあっては、請求項4または5記載の楽音信号生成方法を実行することを特徴とする。
また、請求項7記載のプログラムにあっては、請求項4または5記載の楽音信号生成方法を処理装置に実行させることを特徴とする。
In order to solve the above problems, the present invention is characterized by having the following configuration. The parentheses are examples.
The access control apparatus according to
Furthermore, in the configuration according to
Furthermore, in the configuration according to claim 3, in the access control device according to
In the musical sound signal generating method according to claim 4, the first recording medium (36) for storing at least one waveform data and the first recording medium (36) having a higher access speed than the first recording medium (36). 2 recording medium (22), and transfer means (26, 32) for reading out a plurality of waveform data for each partial data constituting a part of each waveform data and transferring it to the second recording medium (22) This is executed in a musical tone signal generation system having a musical tone signal generating means (20) for reading out the second recording medium (22) at a speed corresponding to the reproduction rate of each musical tone channel and generating a musical tone signal of each of the tone generation channels. Of the sound generation channels that can read the next partial data into the second recording medium (22), a portion stored in the second recording medium (22). A detection process (SP60 to SP70, SP46) for detecting a sounding channel in which reproduction by data ends at the earliest timing, and a sounding channel detected in the detection process are used as the partial data in the transfer means (26, 32). It is characterized by causing the processing device (6) to execute a sound channel designating process (SP48) for designating a sound channel to be transferred.
Further, in the configuration according to claim 5, in the music signal generation method according to claim 4, the music signal generation system includes rate storage means (12) for storing the reproduction rate of each sound generation channel. The first recording medium (36) is a recording medium for storing waveform data in units of blocks (clusters) of a predetermined size, and the second recording medium (22) is provided for each sound generation channel. It has a plurality of storage areas (BiF, BiR), and the partial data is alternately written into these storage areas, and the detection process is stored in the second recording medium (22). A list of tone generation channels is created in the order of the timing at which the reproduction by the partial data is completed (SP68), and the highest-ranked tone generation channel in the list is detected. And characterized in that.
According to a sixth aspect of the present invention, there is provided a musical tone signal generating apparatus that executes the musical tone signal generating method according to the fourth or fifth aspect.
The program according to claim 7 causes the processing device to execute the musical sound signal generation method according to claim 4 or 5.
このように、本発明によれば、第2の記録媒体に次の部分データを読み込むことが可能な発音チャンネルのうち、該第2の記録媒体に記憶されている部分データによる再生が最も早いタイミングで終了する発音チャンネルを検出し、この検出された発音チャンネルを、転送手段における部分データの転送を行うべき発音チャンネルとして指定するから、各発音チャンネルの部分データが必要になるタイミングに応じた最適なスケジュールで各部分データを転送することができる。 As described above, according to the present invention, among the sound generation channels that can read the next partial data into the second recording medium, the earliest timing at which the partial data stored in the second recording medium is reproduced. Is detected as a sound channel to which partial data should be transferred in the transfer means. Each partial data can be transferred according to a schedule.
1.第1実施例
1.1.第1実施例のハードウエア構成
次に、本発明の第1実施例の楽音信号生成システムの構成を図1を参照し説明する。
なお、本実施例の楽音信号生成システムは、汎用パーソナルコンピュータと、該パーソナルコンピュータに実装されるサウンドボードと、該パーソナルコンピュータのオペレーティングシステム(OS)上で動作するアプリケーションプログラムとによって構成されている。図において、2は表示器であり、ユーザに対して各種情報を表示する。4は操作子であり、キーボード、マウス等から構成されている。6はCPUであり、後述するプログラムに基づいて、バス16を介して他の構成要素を制御する。10はフラッシュメモリであり、イニシャルプログラムローダ等が記憶されている。12はRAMであり、CPU10のワークメモリとして用いられる。14は通信インタフェースであり、他の機器との間でMIDI信号等のやりとりを行う。
1. First embodiment
1.1. Hardware Configuration of the First Embodiment Next, the configuration of the tone signal generation system of the first embodiment of the present invention will be described with reference to FIG.
The musical tone signal generation system according to the present embodiment includes a general-purpose personal computer, a sound board mounted on the personal computer, and an application program that operates on an operating system (OS) of the personal computer. In the figure,
8はDMA制御回路であり、CPU6を経由することなくRAM12にデータを入出力するための各種制御を実行する。36はハードディスクであり、パーソナルコンピュータのオペレーティングシステム、楽音信号生成システムのアプリケーションプログラムおよび波形データ等を記憶する。また、38はCD−RWドライブであり、CD−ROM、CD−R、CD−RW等のディスクに対してデータを入出力する。34はIDE・I/O部であり、これらハードディスク36およびCD−RWドライブ38に対する入出力処理を実行する。なお、ハードディスク36は、IDE・I/O部34の制御の下、「クラスタ」(例えば16ビット×32kワード)を単位として各種データが読み書きされる。
A
40はサウンドカードであり、その内部には最大発音チャンネル数m(mは例えば64)の楽音信号を合成する音源回路20が設けられている。22は波形メモリ(半導体メモリ)であり、ここにはハードディスク36に記憶されている各波形データの、各々先頭数クラスタ相当程度の部分データが記憶される。サウンドカード40にCPU6からノートオン信号が供給されると、サウンドカード40においては直ちに楽音信号の合成を開始する必要があるが、その波形データを得るためにハードディスク36にアクセスすると、実際に波形データが読み出されるまでにタイムラグが生じる。そこで、各波形データの先頭部分のみを波形メモリ22に予め読み込んでおくことにより、このタイムラグを解消したものである。
28,30はハードディスク36から波形メモリ22への波形データ転送用のバッファメモリ(半導体メモリ)であり、各々「1クラスタ」相当の容量を有し、相互に独立したバス27,29に各々接続されている。26,32は転送処理部であり、転送処理部26は、ハードディスク36からバッファメモリ28,30に既に読み込まれている「1クラスタ」分の波形データを、音源回路20が波形メモリ22にアクセスしていない期間に波形メモリ22に転送する。また、転送処理部32は、CPU6の指示に応じて、「1クラスタ」分の波形データをハードディスク36から読み出して、バッファメモリ28,30のうちの転送処理部26による転送が終了している側のバッファメモリに転送する。
上述した音源回路20は、複数の発音チャンネルを備えており、核発音チャンネル毎に読出しアドレスを生成して波形メモリ22から波形データを読み出し、読み出された波形データに対してエンベロープ付与を行い、各発音チャンネル毎の楽音信号を合成する。さらに、音源回路20は、合成された複数の楽音信号を混合し、混合された楽音信号に対してリバーブ等の効果を付与する。18はアンプ、スピーカ等から構成されたサウンドシステムであり、この効果付与された楽音信号を発音する。なお、図1内の各構成要素のうち、破線で示された転送管理部24は本実施例には含まれていない。
The above-described
1.2.第1実施例の動作
1.2.1.初期化処理
パーソナルコンピュータのOS上において楽音信号生成システムのアプリケーションプログラムが起動されると、ハードディスク36内の所定のディレクトリに記憶されている波形データがサーチされ、これらの波形データの数nに応じて図2(a)に示す波形データ対応領域A1〜Anが波形メモリ22に確保される。そして、これら波形データの先頭部分の部分データが該波形データ対応領域A1〜Anに各々格納される。この波形データ対応領域A1〜Anは、各々数クラスタ相当分確保すると好適であるが、必ずしも「1クラスタ」の整数倍である必要はなく、「1クラスタ」以上の領域が各々確保できていればよい。さらに、ハードディスク36のクラスタ長が検出され、波形メモリ22には、最大発音チャンネル数mの各発音チャンネルに対して、「1クラスタ」相当長の2つのチャンネル対応領域B1F,B1R,B2F,B2R,……,BmF,BmRが確保される。任意発音チャンネルiのチャンネル対応領域BiF,BiRは、波形メモリ22のアドレス空間内に連続して配置される。
1.2. Operation of the first embodiment
1.2.1. Initialization processing When an application program of the musical tone signal generation system is started on the OS of the personal computer, the waveform data stored in a predetermined directory in the
次に、パーソナルコンピュータのRAM12には、図6に示す管理データ50の領域が確保される。図6において管理データ50は、ヘッダデータ52と、第1〜第m発音チャンネルに各々対応するチャンネルデータ54−1〜54−mとから構成される。そして、管理データ50内においては、双方向リンクドリストの形式によって「要求リスト」というリストが形成される。この要求リストとは、ハードディスク36からチャンネル対応領域に対して部分データの転送を行うべき順に、チャンネルデータ54−1〜54−mを配列して成るものである。
Next, an area for management data 50 shown in FIG. 6 is secured in the
管理データ50においては、該要求リストの要素数(転送要求数)ENと、要求リストの先頭チャンネル番号SCと、要求リストの末尾チャンネル番号MCとが記憶される。また、各発音チャンネルiに係るチャンネルデータ54−iには、要求リスト内の次のチャンネル番号を示す次ch番号NC(i)と、要求リスト内の前のチャンネル番号を示す前ch番号PC(i)とが記憶される。すなわち、当該要求リストは、SCの示す先頭チャンネル番号の要素に、順次次ch番号NC(i)の示す発音チャンネルの要素を連結した、全EN個の要素で構成される。なお、後述する各種処理においては、新たな要素を要求リストに追加し、何れかの要素を要求リストから削除し、または要素の順位を変更する等の操作が実行される。これらの操作は、何れも上記要素数EN、先頭チャンネル番号SC、末尾チャンネル番号MC、各発音チャンネルiの次ch番号NC(i)および前ch番号PC(i)を書き換えることによって実行されるものであり、各チャンネルデータ54−1〜54−mの実体のアドレスが変更されるわけではない。 In the management data 50, the number of elements (transfer request number) EN of the request list, the first channel number SC of the request list, and the last channel number MC of the request list are stored. The channel data 54-i associated with each tone generation channel i includes the next channel number NC (i) indicating the next channel number in the request list and the previous channel number PC () indicating the previous channel number in the request list. i) is stored. That is, the request list is composed of all EN elements in which the element of the channel number indicated by the next channel number NC (i) is sequentially connected to the element of the first channel number indicated by the SC. In various processes described later, operations such as adding a new element to the request list, deleting any element from the request list, or changing the order of the elements are executed. All of these operations are executed by rewriting the number of elements EN, the first channel number SC, the last channel number MC, the next channel number NC (i) and the previous channel number PC (i) of each sound generation channel i. The actual addresses of the channel data 54-1 to 54-m are not changed.
また、チャンネルデータ54−iには、発音チャンネルiに関する以下の情報も記憶される。
・チェンジフラグCF(i):このフラグは、要求リスト内においてチャンネルデータ54−iの順位を見直す必要があるときに“1”に設定され、順位を見直す必要が無いときに“0”に設定される。
・転送イネーブルフラグTE(i):このフラグは、チャンネル対応領域BiFまたはBiRに対してハードディスク36から部分データを転送することを許容する場合には“1”に設定され、許容しない場合には“0”に設定される。
・転送時限TL(i):このデータは、チャンネル対応領域BiFまたはBiRに対するハードディスク36からの部分データの転送が完了すべき限界となる時刻を示す。図2(c)において、各部分データの音源回路20による読出し期間をTs1,Ts2,Ts3,……とすると、Ts2,Ts3,……が開始される直前の時刻t2, t3,……が転送時限TL(i)になる。なお、波形データの先頭部分(アタック部)は予め波形メモリ22に記憶されるため、対応する転送時限TL(i)は規定されない。
The channel data 54-i also stores the following information regarding the sound generation channel i.
Change flag CF (i): This flag is set to “1” when it is necessary to review the order of the channel data 54-i in the request list, and is set to “0” when it is not necessary to review the order. Is done.
Transfer enable flag TE (i): This flag is set to “1” when transfer of partial data from the
Transfer time limit TL (i): This data indicates the time when the transfer of the partial data from the
・次波形ブロック番号NW(i):各波形データを構成する部分データには昇順の番号であるブロック番号が付与されている。すなわち、波形データ対応領域Aiに読み込まれる先頭部分のブロック番号は「1」であり、その後の部分データには「1クラスタ」相当量毎に「2」,「3」,……のブロック番号が付与される。次波形ブロック番号NW(i)は、次にハードディスク36からチャンネル対応領域BiFまたはBiRに転送されるべき部分データのブロック番号を示す。
・再生レートDR(i):このデータは、波形メモリ22、バッファメモリ28,30を読み出す場合のアドレス間隔を示すものであり、発音チャンネルiの音高(fナンバ)に対応して決定される。
・割込時刻IT(i):このデータは、発音チャンネルiに対して最後にブロック再生完了割込が発生した時刻を示す。なお、ブロック再生完了割込は、波形データ対応領域Ap、チャンネル対応領域BiFまたはBiRに記憶された部分データの再生が完了したタイミングで発生する。
Next waveform block number NW (i): A block number which is an ascending number is assigned to partial data constituting each waveform data. That is, the block number of the head portion read into the waveform data corresponding area Ai is “1”, and the block numbers “2”, “3”,... Is granted. The next waveform block number NW (i) indicates the block number of the partial data to be transferred next from the
Reproduction rate DR (i): This data indicates an address interval when the
Interrupt time IT (i): This data indicates the time when the block reproduction completion interrupt last occurred for the sound channel i. The block reproduction completion interrupt occurs at the timing when the reproduction of the partial data stored in the waveform data corresponding area Ap, the channel corresponding area BiF or BiR is completed.
1.2.2.ノートオンイベントの発生。
パーソナルコンピュータ内部のシーケンサプログラム、あるいは通信インタフェース14から入力されたMIDI信号においてノートオンイベントが発生すると、CPU6において図3に示すノートオンイベント処理ルーチンが起動される。
図において処理がステップSP2に進むと、音源回路20内の第1〜第64発音チャンネルのうち空きチャンネルが検索され、検索された発音チャンネルが当該ノートオンイベントに割り当てられる。ここで割り当てられた発音チャンネルの番号を「i」とする。次に、処理がステップSP4に進むと、このノートオンイベントに対する音色、ベロシティ、音高に基づいて、一の波形データが決定される。次に、処理がステップSP6に進むと、音源回路20の発音チャンネルiに対して、音色、ベロシティ、音高に基づく各種パラメータが設定される。ここで、波形メモリ22における波形データ対応領域Ap(1≦p≦n)は、決定された波形データに基づいて一意に決定され、チャンネル対応領域BiF,BiRは、チャンネル番号iに基づいて一意に決定される。
1.2.2. The occurrence of a note-on event.
When a note-on event occurs in a sequencer program in the personal computer or a MIDI signal input from the
In the figure, when the process proceeds to step SP2, an empty channel is searched from the first to 64th sound generation channels in the
次に、処理がステップSP8に進むと、発音チャンネルiの発音を開始するように、サウンドカード40に対して発音指令が送信される。これにより、音源回路20にあっては、波形データ対応領域Apの読み出しが開始される。次に、処理がステップSP10に進むと、発音チャンネルiに係る次波形ブロック番号NW(i)が「2」に設定され、転送イネーブルフラグTE(i)が“1”に設定される。すなわち、発音チャンネルiについては、現在はブロック番号「1」の波形データ対応領域Apのみがハードディスク36から読み出されている状態であるから、次波形ブロック番号NW(i)には次に読み出されるべきブロックの番号である「2」が設定されるのである。
Next, when the process proceeds to step SP8, a sound generation command is transmitted to the
また、この次波形ブロック番号NW(i)に係る部分データが読み込まれるべき領域であるチャンネル対応領域BiFは、当該部分データを直ちに読み込んでも差し支えない状態であるから、転送イネーブルフラグTE(i)は“1”に設定されるのである。さらに、ステップSP10においては、チェンジフラグCF(i)が“1”に設定され、転送時限TL(i)は、波形データ対応領域Ai内の部分データの再生が完了する予定時刻に設定される。また、発音チャンネルiの音高(fナンバ)に対応して再生レートDR(i)が設定され、割込時刻IT(i)は「0」(「0」は未だブロック再生完了割込が発生していないことを示す)に設定される。 In addition, since the channel corresponding area BiF, which is the area where the partial data related to the next waveform block number NW (i) is to be read, can be read immediately, the transfer enable flag TE (i) is set. It is set to “1”. Further, in step SP10, the change flag CF (i) is set to “1”, and the transfer time limit TL (i) is set to the scheduled time when the reproduction of the partial data in the waveform data corresponding area Ai is completed. Also, the playback rate DR (i) is set corresponding to the pitch (f number) of the sound channel i, the interrupt time IT (i) is “0” (“0” is still a block playback completion interrupt) Is set to).
次に、処理がステップSP12に進むと、チャンネルデータ54−iが要求リストの末尾に追加される。これは、発音チャンネルiのブロック番号「2」の部分データの転送を要求するためである。具体的には、現状において要求リストの末尾の発音チャンネルを「j」とすると、発音チャンネルjの次ch番号NC(j)は「i」に設定され、発音チャンネルiの前ch番号PC(i)は「j」に設定される。そして、発音チャンネルiの次ch番号NC(i)は、リストの末尾であることを示す「0」に設定される。次に、処理がステップSP14に進むと、ハードディスク36からバッファメモリ28または30に対して何らかの部分データが転送中であるか否かが判定される。ここで「YES」と判定されると、本ルーチンの処理は直ちに終了する。一方、ここで「NO」と判定されると、処理はステップSP16に進み、後述する転送制御サブルーチン(図4(c))が呼び出される。その詳細については後述するが、要求リストの中から一の転送要求が選択され、該転送要求に基づいて部分データの転送処理が実行される。
Next, when the process proceeds to step SP12, channel data 54-i is added to the end of the request list. This is to request the transfer of partial data of the block number “2” of the sound generation channel i. Specifically, if the sound channel at the end of the request list is “j” at present, the next channel number NC (j) of the sound channel j is set to “i”, and the previous channel number PC (i) of the sound channel i is set. ) Is set to “j”. The next channel number NC (i) of the tone generation channel i is set to “0” indicating the end of the list. Next, when the process proceeds to step SP14, it is determined whether or not any partial data is being transferred from the
1.2.3.割込み処理の概要
次に、図8(a)〜(d)を参照し、本実施例における各種割込処理の概要を説明する。
これらの図においては、第1および第3発音チャンネルにおいて波形データが楽音信号が合成されていることとしている。従って、音源回路20においては、第1発音チャンネルの再生レートDR(1)に応じた周期でチャンネル対応領域B1F,B1Rが交互に読み出されるとともに、第3発音チャンネルの再生レートDR(3)に応じた周期でチャンネル対応領域B3F,B3Rも交互に読み出されることになる。また、これらの図において波形メモリ22内のハッチングを施した領域は、未だ音源回路20による読み出されていない部分データが記憶されている領域であるとする。
1.2.3. Overview of Interrupt Processing Next, an overview of various interrupt processing in this embodiment will be described with reference to FIGS.
In these drawings, it is assumed that a musical tone signal is synthesized with waveform data in the first and third sound generation channels. Therefore, in the
図8(a)は、第3発音チャンネルについて、チャンネル対応領域B3Fの読み出しが終了し、読み出しアドレスがチャンネル対応領域B3Rに移った直後の状態を示す。チャンネル対応領域B3Fの読み出しが終了すると、音源回路20によって、チャンネル対応領域B3Fの読み出しは終了した旨をCPU6に通知するためのブロック再生完了割込が発生される。これにより、CPU6により、第3発音チャンネルが要求リストの末尾に追加される。ここで、要求リストが空リストであったとすると、第3発音チャンネルは要求リストの先頭の発音チャンネルになる。
FIG. 8A shows a state immediately after the reading of the channel corresponding area B3F is finished and the read address is moved to the channel corresponding area B3R for the third tone generation channel. When the reading of the channel corresponding area B3F is completed, the
次に、図8(b)においては、このブロック再生完了割込に応じて、CPU6から転送処理部32に対して、第3発音チャンネルに対する次の部分データを読み込むように指令される。これにより、転送処理部32によって部分データの読み出しが開始される。読み出された部分データは、バッファメモリ28,30のうち一方(図示の例ではバッファメモリ30)に順次転送されてゆく。ここで、CPU6から転送処理部26に対して、該部分データのバッファメモリ30への転送が完全に終了したときに該部分データをさらに転送すべきチャンネル対応領域(ここではB3F)が、この時点で指示される。
Next, in FIG. 8B, in response to this block reproduction completion interrupt, the CPU 6 instructs the
次に、図8(c)において、該部分データのハードディスク36からバッファメモリ30への転送が完了すると、転送処理部32から転送処理部26に対してその旨が通知されるとともに、CPU6に対して転送終了割込が発生する。転送処理部26にあっては、上記通知に応答して、バッファメモリ30から、先に通知されたチャンネル対応領域(B3F)への部分データの転送が自動的に開始される。すなわち、転送処理部26においては、音源回路20が波形メモリ22を読み出していないタイミングが検出され、そのタイミングにおいて部分データが転送される。従って、音源回路20が波形メモリ22にアクセスしている状態では、この転送処理が待機されることになる。また、CPU6においては、転送終了割込に応答して、他のチャンネルの部分データの転送の可否等が判定され、可能である場合には、該部分データの転送のための処理が実行される。以上の処理のうち、転送処理部26において実行されるデータ転送はCPU6が関与することなく、転送処理部26によって独自に実行されるため、CPU6においては特に緊急を要する処理は無い。これは、先の図8(b)の段階において、CPU6から転送処理部26に対して、部分データを転送すべきチャンネル対応領域が予め指定されているからである。このように、本実施例によれば、部分データを転送すべきチャンネル対応領域を転送処理部26に対して予め指定しておくことにより、CPU6に対して緊急を要する処理が発生する頻度を減少させることができる。
Next, in FIG. 8C, when the transfer of the partial data from the
ところで、図8(c)においては、第1発音チャンネルにおいて、チャンネル対応領域B1Rの読み出しが完了したものと仮定している。これにより、音源回路20によって、チャンネル対応領域B1Rの読み出しは終了した旨をCPU6に通知するためのブロック再生完了割込が発生される。従って、CPU6により、第1発音チャンネルが要求リストの末尾に追加される。ここで、要求リストが空リストであったとすると、第1発音チャンネルは要求リストの先頭の発音チャンネルになる。
Incidentally, in FIG. 8C, it is assumed that the reading of the channel corresponding region B1R has been completed in the first sound generation channel. As a result, the
次に、図8(d)においては、このブロック再生完了割込に応じて、CPU6から転送処理部32に対して、第3発音チャンネルに対する次の部分データを読み込むように指令される。これにより、転送処理部32によって部分データの読み出しが開始される。読み出された部分データは、バッファメモリ28,30のうち、前回の転送処理に供されていなかったもの(図示の例ではバッファメモリ28)に順次転送されてゆく。上述したように、バッファメモリ28,30から波形メモリ22への部分データの転送は、音源回路20が波形メモリ22を読み出していないタイミングにおいて実行されるから、図示の例のように、この時点ではバッファメモリ30には未だ波形メモリ22に転送されていない部分データが残っている可能性がある。しかし、本実施例においてはバッファメモリ28,30が交互に使用されるため、バッファメモリ30に残存している波形データを残したまま転送処理部32による転送処理を続行することができる。
Next, in FIG. 8D, in response to the block reproduction completion interrupt, the CPU 6 instructs the
上述したように、転送処理部26によって実行されるバッファメモリ28,30からチャンネル対応領域BiF,BiRへの転送処理は、音源回路20が波形メモリ22を読み出していないタイミングが発生するまで実行されない。しかし、このようなタイミングは頻繁に発生するものである。しかも、かかる転送処理は半導体メモリから半導体メモリへの転送であるため、実際に処理が開始されると、処理は直ちに完了する。一方、転送処理部32によるハードディスク36からバッファメモリ28,30への転送処理は、ヘッドの移動やディスクの回転等、機械的な動作を伴うものであるため、転送処理部26による転送処理と比較すると非常に遅いものになる。換言すれば、転送処理部32がバッファメモリ28,30のうち一方に対して転送処理を開始すると、その転送処理が完了するまでに他方のバッファメモリは必ず空き状態になる。従って、例えばハードディスク36がデータ転送可能な状態になっているにもかかわらず、転送処理部26,32側の準備が整わないためにデータ転送を待機させるような事態はまず生じないことが解る。結局、本実施例においては、ハードディスク36から波形メモリ22への部分データの最大転送速度は、ほぼハードディスク36の性能によって決定されることになり、ハードディスク36の性能を充分に発揮させることができる。また、かかる特徴は、CPU6側から見れば、「転送終了割込が発生すると(一方のバッファメモリへの転送が完了すると)、他方のバッファメモリへの転送を直ちに開始してもよい」ということになる。これにより、CPU6においては、他方のバッファメモリが空いているか否か等を確認する必要がなく、「他方のバッファメモリが空いていない」という理由によって処理が待たされることもない。これにより、CPU6に対する負担を一層軽減することができる。
As described above, the transfer processing from the
1.2.4.サウンドカード40の動作
ここでサウンドカード40内の動作を図2(a),(b)を参照し説明しておく。上述したように、発音チャンネルiに係るノートオンイベントが発生すると、該発音チャンネルに係る波形データ対応領域Ap内の部分データの読出しが開始される。読出し処理は所定のサンプリング周期毎に実行され、該サンプリング周期毎に読出しアドレスに再生レートDR(i)が加算されてゆく。ここで、再生レートDR(i)は小数点以下の位まで定義することができるため、再生レートDR(i)の累積結果である読出しアドレスの計算値も一般的には小数点以下の位を有することになる。かかる場合には、当該計算結果の前後のアドレスのサンプル値が読み出され、小数値に基づいて補間演算が行われる。これにより、読出しアドレスの計算値が小数値を有する場合であっても、折り返しノイズの少ないサンプリング値を求めることができる。
1.2.4. Operation of
ここで、波形データ対応領域Apの読出しが完了すると、その後は発音チャンネルiに対応するチャンネル対応領域BiF,BiR内の部分データが交互に読み出される。そして、音源回路20にあっては、読み出された部分データに対してエンベロープが付与されるとともに必要に応じて効果処理が実行され、その結果得られた楽音信号がサウンドシステム18を介して放音されることになる。また、音源回路20においては、波形データ対応領域Ap、チャンネル対応領域BiF,BiRのうち何れかの読出しが完了すると、CPU6に対するブロック再生完了割込が発生する。また、何れかの発音チャンネルについてハードディスク36からバッファメモリ28,30への部分データの転送が完了すると、転送終了割込が発生する。
Here, when the reading of the waveform data corresponding area Ap is completed, the partial data in the channel corresponding areas BiF and BiR corresponding to the sound generation channel i are read alternately. In the
1.2.5.転送制御サブルーチン(図4(c))の処理
図4(c)に示す転送制御サブルーチンが呼び出されると、処理はステップSP40に進み、要求リスト中に次の転送要求(要素)が存在するか否かが判定される。ここで「NO」と判定されると、本ルーチンの処理は直ちに終了する。一方、ステップSP40において「YES」と判定されると、処理はステップSP42に進み、要求リストの次の転送要求が参照される。すなわち、本ルーチンが呼び出されステップSP40が最初に実行されると、要求リストの先頭の要素が存在するか否かが判定され、それ以降にステップSP40が実行されると、順次、次の要素が存在するか否かが判定されることになる。次に、処理がステップSP44に進むと、「存在する」と判定された転送要求に係る発音チャンネル番号が変数jに代入される。
1.2.5. Processing of Transfer Control Subroutine (FIG. 4C) When the transfer control subroutine shown in FIG. 4C is called, the process proceeds to step SP40, and whether or not the next transfer request (element) exists in the request list. Is determined. If “NO” is determined here, the processing of this routine is immediately terminated. On the other hand, if “YES” is determined in step SP40, the process proceeds to step SP42, and the next transfer request in the request list is referred to. That is, when this routine is called and step SP40 is executed for the first time, it is determined whether or not the top element of the request list exists. When step SP40 is executed thereafter, the next element is sequentially added. It is determined whether or not it exists. Next, when the process proceeds to step SP44, the tone generation channel number related to the transfer request determined to be “present” is substituted into the variable j.
次に、処理がステップSP46に進むと、該発音チャンネルjに係る転送イネーブルフラグTE(j)が「1」であるか否かが判定される。ここで「NO」と判定されると、処理はステップSP40に戻り、要求リスト内において発音チャンネルjの次の転送要求について、上記ステップSP40〜SP44の処理が実行される。これは、ある発音チャンネルが要求リストの先頭に位置していたとしても、当該発音チャンネルに係る転送イネーブルフラグが「1」でなければ当該チャンネルについて転送を開始することができないため、次に優先順位の高い発音チャンネルの転送を実行するためである。 Next, when the process proceeds to step SP46, it is determined whether or not the transfer enable flag TE (j) related to the sound generation channel j is “1”. If "NO" is determined here, the process returns to step SP40, and the processes of steps SP40 to SP44 are executed for the next transfer request for the sound channel j in the request list. This is because even if a sound generation channel is located at the top of the request list, transfer cannot be started for that channel unless the transfer enable flag for the sound generation channel is “1”. This is because the transfer of a high tone channel is executed.
このように、転送を行うことが可能である発音チャンネルのうち、要求リスト内で最も優先順位の高い発音チャンネルjが検出されると、処理はステップSP48に進む。ここでは、CPU6から転送処理部32に対して、発音チャンネルjと、次波形ブロック番号NW(j)とを伴う転送処理が指令される。これにより、転送処理部32の制御の下、ハードディスク36内に記憶され発音チャンネルjに割り当てられている波形データにおいて、次波形ブロック番号NW(j)で特定される1クラスタの部分データが読み出され、バッファメモリ28または30への転送が開始される。さらに、該ステップSP48にあっては、CPU6から転送処理部26に対して、転送された部分データをさらに転送すべきチャンネル対応領域(BjFまたはBjR)が指令される。そして、CPU6においては、要求リストの中から、当該発音チャンネルjに係る転送要求が削除される。
As described above, when the tone generation channel j having the highest priority in the request list among the tone generation channels that can be transferred is detected, the process proceeds to step SP48. Here, the CPU 6 instructs the
次に、処理がステップSP50に進むと、発音チャンネルjに係る次波形ブロック番号NW(j)が「1」だけインクリメントされ、転送イネーブルフラグTE(j)が“0”に設定される。ここで、転送イネーブルフラグTE(j)を“0”に設定する理由について説明しておく。上述したように、音源回路20においては波形データ対応領域Apの読出しが終了すると、発音チャンネルjのチャンネル対応領域BjF,BjRが交互に読み出される。その状態において上記ステップSP48が実行されると、バッファメモリ28または30に部分データが転送され、しかる後にチャンネル対応領域BjFまたはBjRのうち「現在読出し中ではない領域」に対して該部分データが転送されることになる。
Next, when the process proceeds to step SP50, the next waveform block number NW (j) related to the sound generation channel j is incremented by “1”, and the transfer enable flag TE (j) is set to “0”. Here, the reason why the transfer enable flag TE (j) is set to “0” will be described. As described above, in the
そして、ステップSP50において次波形ブロック番号NW(j)が「1」だけインクリメントされると、当該次波形ブロック番号NW(j)に係る転送先の領域は、チャンネル対応領域BjFまたはBjRのうち「現在読出し中の領域」になる。従って、かかる転送処理を直ちに実行することはできず、「現在読出し中の領域」の読出しが完了するまで転送処理が実行されないように制限しておく必要がある。このため、ステップSP50においては転送イネーブルフラグTE(j)が“0”に設定されるのである。 When the next waveform block number NW (j) is incremented by “1” in step SP50, the transfer destination area related to the next waveform block number NW (j) is “current” in the channel corresponding area BjF or BjR. “Reading area”. Therefore, the transfer process cannot be executed immediately, and it is necessary to limit the transfer process so that the transfer process is not executed until the reading of the “currently reading area” is completed. Therefore, the transfer enable flag TE (j) is set to “0” in step SP50.
次に処理がステップSP52に進むと、先にステップSP48において転送開始された部分データ(ブロック番号=NW(j)−1)が当該波形データの最後の部分データであるか否かが判定される。ここで「YES」と判定されると処理はステップSP54に進み、音源回路20に対して発音チャンネルjの消音処理が指令される。すなわち、音源回路20において当該指令が受信されると、発音チャンネルjの楽音信号が徐々にフェードアウトされ、しかる後に発音チャンネルjが解放される。一方、ステップSP50において「NO」と判定されると処理はステップSP56に進む。ここでは、次波形ブロック番号NW(j)の転送要求が要求リストの末尾に追加される。上述したように、要求リストの内容はその先頭から読み出されるから、最悪の場合でも転送要求は先着順に処理されることになる。さらに、後述するバックグラウンド処理ルーチン(図5)が実行されると、要求リストは転送時限TL(j)順にソートされるから、要求リストはより望ましい状態になるが、仮に該バックグラウンド処理ルーチンが実行されなかったとしても、破綻が生じにくいように要求リストが構成されることが解る。
Next, when the process proceeds to step SP52, it is determined whether or not the partial data (block number = NW (j) -1) that was previously started to be transferred in step SP48 is the last partial data of the waveform data. . If "YES" is determined here, the process proceeds to step SP54 to instruct the
さらに、ステップSP56においては、チェンジフラグCF(j)が“1”に設定されるとともに、転送時限TL(j)が更新される。まず、次波形ブロック番号NW(j)の転送要求は要求リストの末尾に追加されたが、この転送要求は要求リストに含まれる転送要求のうち必ずしも優先順位が最も低いわけではない。従って、後述するバックグラウンド処理において優先順位の見直しを行うため、チェンジフラグCF(j)を“1”に設定しておく必要がある。また、転送時限TL(j)は、既にチャンネル対応領域BjF,BjRに転送されている(またはステップSP48において転送開始されている)全ての部分データの再生が完了する予定時刻に設定される。以上により、本サブルーチンの処理が終了する。 Further, in step SP56, the change flag CF (j) is set to “1” and the transfer time limit TL (j) is updated. First, the transfer request of the next waveform block number NW (j) is added to the end of the request list. However, this transfer request does not necessarily have the lowest priority among the transfer requests included in the request list. Therefore, the change flag CF (j) needs to be set to “1” in order to review the priority in the background processing described later. Further, the transfer time limit TL (j) is set to a scheduled time at which the reproduction of all partial data that have already been transferred to the channel corresponding regions BjF and BjR (or started transfer in step SP48) is completed. Thus, the processing of this subroutine is completed.
1.2.6.ブロック再生完了イベント処理(図4(a))
何れかの発音チャンネルiにおいてブロック再生完了割込が発生すると、図4(a)に示すブロック再生完了イベント処理が実行される。図において処理がステップSP20に進むと、割込が発生したチャンネル番号が変数iに代入される。次に、処理がステップSP22に進むと、転送イネーブルフラグTE(i)が「1」に設定される。これは、次波形ブロック番号NW(i)の転送先の領域は、チャンネル対応領域BiF,BiRのうち、この時点で再生が完了した側の領域であり、当該領域の再生が完了したために新たな部分データをいつでも転送可能になったからである。また、ステップSP22においては、割込時刻IT(i)に現在時刻が代入される。
1.2.6. Block playback completion event processing (Figure 4 (a))
When a block reproduction completion interrupt occurs in any sound generation channel i, the block reproduction completion event process shown in FIG. 4A is executed. In the figure, when the process proceeds to step SP20, the channel number in which the interrupt has occurred is substituted into the variable i. Next, when the process proceeds to step SP22, the transfer enable flag TE (i) is set to “1”. This is because the area of the transfer destination of the next waveform block number NW (i) is the area on the side where the reproduction has been completed at this point in the channel corresponding areas BiF and BiR. This is because partial data can be transferred at any time. In step SP22, the current time is substituted for the interrupt time IT (i).
また、割込時刻IT(i)が更新されると、この発音チャンネルiの割込時刻IT(i)と再生レートDR(i)とに基づいて転送時限TL(i)が再計算され更新される。転送時限TL(i)の更新前の値は、発音チャンネルiの音高が変わらない限り割込時刻IT(i)と同一になる筈であるため、更新前の転送時限TL(i)に基づいて新たな転送時限TL(i)を計算することも考えられる。しかし、実際にはピッチベンド等の操作によって音高が若干変更されると、更新前の転送時限TL(i)は割込時刻IT(i)には一致しなくなる。このため、最新の割込時刻IT(i)と再生レートDR(i)とに基づいて転送時限TL(i)を再計算することが望ましいのである。次に、処理がステップSP24に進むと、ハードディスク36からバッファメモリ28または30に対して何らかの部分データが転送中であるか否かが判定される。ここで「YES」と判定されると、本ルーチンの処理は直ちに終了する。一方、ここで「NO」と判定されると、処理はステップSP26に進み、上述した「転送制御サブルーチン(図4(c))」が呼び出される。
When the interrupt time IT (i) is updated, the transfer time limit TL (i) is recalculated and updated based on the interrupt time IT (i) and the playback rate DR (i) of the tone generation channel i. The Since the value before update of the transfer time period TL (i) should be the same as the interrupt time IT (i) unless the pitch of the sound generation channel i is changed, it is based on the transfer time period TL (i) before update. It is also conceivable to calculate a new transfer time limit TL (i). However, actually, if the pitch is slightly changed by an operation such as pitch bend, the transfer time limit TL (i) before the update does not coincide with the interrupt time IT (i). Therefore, it is desirable to recalculate the transfer time limit TL (i) based on the latest interrupt time IT (i) and the reproduction rate DR (i). Next, when the process proceeds to step SP24, it is determined whether or not any partial data is being transferred from the
1.2.7.転送終了イベント処理(図4(b))
サウンドカード40においてバッファメモリ28,30内の何れかの領域に対する転送が終了すると、転送終了割込が発生し、図4(b)に示す転送終了イベント処理ルーチンが起動される。本ルーチンにおいては、単に転送制御サブルーチン(図4(c))が呼び出される。すなわち、部分データの転送が可能である限りは、転送が終了する毎に該転送制御サブルーチンが繰り返し呼び出され、転送処理が継続的に実行され続けることになる。
1.2.7. Transfer end event processing (Figure 4 (b))
When transfer to one of the areas in the
1.2.8.バックグラウンド処理(図5)
CPU6は複数のタスクを同時に処理することができ、CPU6の使用率は常にモニタされている。そして、使用率が所定値より低くなると、図5に示すバックグラウンド処理ルーチンが起動される。図において処理がステップSP60に進むと、要求リストに属する発音チャンネルのうちチェンジフラグCF(i)が“1”であるチャンネルがサーチされる。次に、処理がステップSP62に進むと、かかるチャンネルは発見されたか否かが判定される。ここで「NO」と判定されると、本ルーチンの処理は直ちに終了する。
1.2.8. Background processing (Figure 5)
The CPU 6 can process a plurality of tasks simultaneously, and the usage rate of the CPU 6 is constantly monitored. When the usage rate becomes lower than the predetermined value, the background processing routine shown in FIG. 5 is started. In the figure, when the process proceeds to step SP60, a channel whose change flag CF (i) is "1" among the sound generation channels belonging to the request list is searched. Next, when the process proceeds to step SP62, it is determined whether or not such a channel has been found. If “NO” is determined here, the processing of this routine is immediately terminated.
一方、ステップSP62において「YES」と判定されると処理はステップSP64に進み、発見されたチャンネル番号が変数iに代入される。次に、処理がステップSP68に進むと、要求リストの先頭より、転送時限TL(i)の転送要求を移動すべき位置が検出される。すなわち、発音チャンネルi以外の発音チャンネルjの転送時限TL(j)を要求リストの先頭から順次検索してゆき、転送時限TL(i)よりも遅い転送時限TL(j)が発見されたならば、要求リスト中で発音チャンネルjの一つ前の位置に発音チャンネルiの転送要求が移動される。 On the other hand, if “YES” is determined in step SP62, the process proceeds to step SP64, and the found channel number is substituted into the variable i. Next, when the process proceeds to step SP68, the position where the transfer request with the transfer time limit TL (i) should be moved is detected from the top of the request list. That is, the transfer time TL (j) of the sound generation channel j other than the sound generation channel i is sequentially searched from the top of the request list, and if a transfer time TL (j) slower than the transfer time TL (i) is found. The transfer request for the sound channel i is moved to the position immediately before the sound channel j in the request list.
次に処理がステップSP70に進むと、チェンジフラグCF(i)が“0”に設定される。次に、処理がステップSP72に進むと、該バックグラウンド処理以外の処理が実行されているか否かが判定される。ここで「NO」と判定されると、ステップSP60〜SP70の処理が繰り返される。一方、ステップSP72において「YES」と判定されると、当該他の処理を優先させるために本ルーチンは直ちに終了する。 Next, when the process proceeds to step SP70, the change flag CF (i) is set to “0”. Next, when the process proceeds to step SP72, it is determined whether a process other than the background process is being executed. If “NO” is determined here, the processing of steps SP60 to SP70 is repeated. On the other hand, if “YES” is determined in step SP72, this routine is immediately terminated to prioritize the other processing.
このように、本ルーチンによれば、各発音チャンネルの転送要求が転送時限TLの早い順にソートされるから、上記転送制御サブルーチン(図4(c))においては、転送時限TLの早い順に転送が可能であるか否か(転送イネーブルフラグTEが“1”であるか否か)が判定される。従って、該ルーチンにおいては、転送イネーブルフラグTEが“1”である発音チャンネルのうち転送時限TLが最も早い発音チャンネルが選択されるため、部分データの転送が間に合わなくなるような事態を未然に防止することができる。 As described above, according to this routine, the transfer requests of the sound generation channels are sorted in the order of the transfer time limit TL, so in the transfer control subroutine (FIG. 4C), transfer is performed in the order of the transfer time limit TL. It is determined whether or not it is possible (whether or not the transfer enable flag TE is “1”). Therefore, in this routine, since the sound generation channel having the earliest transfer time limit TL is selected from the sound generation channels having the transfer enable flag TE of “1”, it is possible to prevent a situation in which partial data transfer cannot be performed in time. be able to.
2.第2実施例
2.1.第2実施例のハードウエア構成
次に、本発明の第2実施例について説明する。第2実施例のハードウエア構成は第1実施例のものと同様であるが、サウンドカード40には破線で示す転送管理部24が追加される。この転送管理部24は、ハードディスク36から部分データの転送を行うべき発音チャンネルの順序を管理するものである。
2. Second embodiment
2.1. Hardware Configuration of Second Embodiment Next, a second embodiment of the present invention will be described. The hardware configuration of the second embodiment is the same as that of the first embodiment, but a
2.2.第2実施例の動作
2.2.1.初期化処理
パーソナルコンピュータにおいて楽音信号生成システムのアプリケーションプログラムが起動されると、上記第1実施例の場合と同様に、ハードディスク36内の所定のディレクトリに記憶されている波形データがサーチされ、波形データ対応領域A1〜Anが波形メモリ22に確保され、これら波形データの先頭部分の部分データが該波形データ対応領域A1〜Anに各々格納される。また、バッファメモリ28,30には、各発音チャンネルに対して、「1クラスタ」相当長のチャンネル対応領域B1F,B2F,……,BmFおよびB1R,B2R,……,BmRが各々確保される。
2.2. Operation of the second embodiment
2.2.1. Initialization processing When an application program for a musical tone signal generation system is started up in a personal computer, the waveform data stored in a predetermined directory in the
次に、パーソナルコンピュータのRAM12には、管理データ領域が確保されるが、本実施例における管理データは第1実施例のものとは異なり、「要求リスト」に関連するデータは含まれていない。すなわち、管理データ内にはヘッダデータ52に対応するものは含まれず、各チャンネルデータ54−1〜54−mには先頭チャンネル番号SC、末尾チャンネル番号MCは含まれない。本実施例においては、これらに対応する情報は転送管理部24によって管理されるためである。
Next, although a management data area is secured in the
2.2.2.ノートオンイベントの発生。
通信インタフェース14から入力されたMIDI信号等においてノートオンイベントが発生すると、CPU6において図7(a)に示すノートオンイベント処理ルーチンが起動される。
同ルーチンのステップSP82〜SP88においては、第1実施例のSP2〜SP8と同様の処理が実行される。すなわち、該ノートオンイベントに対して発音チャンネルiが割り当てられ、波形データが決定されるとともに音源回路20の発音チャンネルiに対して各種パラメータが設定され、サウンドカード40に対して発音指令が送信される。
2.2.2. The occurrence of a note-on event.
When a note-on event occurs in the MIDI signal or the like input from the
In steps SP82 to SP88 of this routine, the same processing as SP2 to SP8 of the first embodiment is executed. That is, a sound generation channel i is assigned to the note-on event, waveform data is determined, various parameters are set for the sound generation channel i of the
次に、処理がステップSP90に進むと、RAM12内のチャンネルデータ54−iにおける次波形ブロック番号NW(i)が「2」に設定される。次に、処理がステップSP94に進むと、ハードディスク36からバッファメモリ28または30に対して何らかの部分データが転送中であるか否かが判定される。ここで「YES」と判定されると、本ルーチンの処理は直ちに終了する。一方、ここで「NO」と判定されると、処理はステップSP96に進み、後述する転送制御サブルーチン(図7(d))が呼び出される。
Next, when the process proceeds to step SP90, the next waveform block number NW (i) in the channel data 54-i in the
2.2.3.サウンドカード40の動作
サウンドカード40において転送管理部24以外の部分の動作は第1実施例と同様である。さらに、本実施例にあっては、転送管理部24において以下の処理が実行される。
まず、転送管理部24においては、発音中の全発音チャンネルの中から、以下の全ての条件を満たすものを列挙したリストである「チャンネル番号リスト」が生成される。
(1)当該発音チャンネルiに係るチャンネル対応領域BiF,BiRのうち何れかに対して部分データの転送が可能であること、
(2)CPU6から発音チャンネルiについて消音指令を受けていないこと。
2.2.3. Operation of
First, the
(1) Partial data can be transferred to any one of the channel corresponding areas BiF and BiR related to the sound generation channel i.
(2) No mute command is received from the CPU 6 for the sound generation channel i.
また、該リストの末尾には、実際には存在しないチャンネル番号である数値(例えば「0」)が追加される。そして、転送管理部24においては、該チャンネル番号リストに属する全ての発音チャンネルiについて、波形メモリ22に既に書き込まれている部分データに基づいて波形データを再生可能な転送時限TL(i)が算出され、この転送時限TL(i)の早い順にチャンネル番号をソートしたリストである「チャンネル番号リスト」が生成される。但し、転送管理部24自体は次波形ブロック番号NW(i)が存在するか否かは関知しないため、チャンネル番号リストには、実際には次波形ブロックが存在しない発音チャンネルも含まれる場合がある。
Also, a numerical value (for example, “0”) that is a channel number that does not actually exist is added to the end of the list. Then, the
また、転送管理部24において生成されたチャンネル番号リストは、CPU6から自由に読み出すことができる。転送管理部24においては、各発音チャンネルjのチャンネル対応領域BjF,BjRが逐次監視され、部分データの転送の可否に応じて発音チャンネルjがチャンネル番号リストに追加され、あるいは発音チャンネルjがチャンネル番号リストから削除される。また、これと同時に、上述したように転送時限TL(i)に応じて該リストが逐次ソートされる。従って、例えばCPU6がチャンネル番号リストの先頭を読み出すと、チャンネル対応領域BiF,BiRの何れかに空きがあり、かつソート後の順位が最も高い発音チャンネルiが読み出されることになる。
The channel number list generated in the
2.2.4.転送制御サブルーチン
図7(d)に示す転送制御サブルーチンが呼び出されると、処理はステップSP120に進み、転送管理部24内のチャンネル番号リストの先頭の要素であるチャンネル番号がCPU6によって読み出され、その結果が変数iに代入される。上述したように、転送処理を行うべきチャンネル番号が存在しない場合には、所定の数値(例えば「0」)が読み出されることになる。次に、処理がステップSP122に進むと、転送処理を行うべきチャンネル番号が存在するか否か(「0」以外の値であるか否か)が判定される。
2.2.4. Transfer Control Subroutine When the transfer control subroutine shown in FIG. 7 (d) is called, the process proceeds to step SP120, and the CPU 6 reads the channel number that is the first element of the channel number list in the
ここで「NO」と判定されると、本ルーチンの処理は直ちに終了する。一方、ここで「YES」と判定されると、処理はステップSP124に進み、次波形ブロック番号NW(i)に対応する部分データが存在するか否かが判定される。例えば、対応する波形データの全ブロックの転送が完了した場合等においては、ここで「NO」と判定され、処理はステップSP125に進み、CPU6から音源回路20に対して発音チャンネルiの消音指令が供給される。これにより、発音チャンネルiの楽音信号が徐々にフェードアウトされ、しかる後に発音チャンネルiが解放される。また、この消音指令が転送管理部24によって検出されると、チャンネル番号リストから発音チャンネルiに係る要素が削除される。そして、処理がステップSP120に戻ると、転送管理部24から次のチャンネル番号が読み出され、ステップSP122,SP124の判定が繰り返される。
If “NO” is determined here, the processing of this routine is immediately terminated. On the other hand, if “YES” is determined here, the process proceeds to step SP124 to determine whether or not partial data corresponding to the next waveform block number NW (i) exists. For example, when the transfer of all the blocks of the corresponding waveform data is completed, it is determined as “NO” here, the process proceeds to step SP125, and the CPU 6 issues a mute command for the sound generation channel i to the
そして、ステップSP124において「YES」と判定されると、処理はステップSP126に進む。ここでは、CPU6から転送処理部32に対して、発音チャンネルjと、次波形ブロック番号NW(j)とを伴う転送処理が指令される。これにより、転送処理部32の制御の下、ハードディスク36内に記憶され発音チャンネルjに割り当てられている波形データにおいて、次波形ブロック番号NW(j)で特定される1クラスタの部分データが読み出され、バッファメモリ28または30への転送が開始される。さらに、該ステップSP126にあっては、CPU6から転送処理部26に対して、転送された部分データをさらに転送すべきチャンネル対応領域(BjFまたはBjR)が指令される。次に、処理がステップSP128に進むと、次波形ブロック番号NW(i)が「1」だけインクリメントされ、本ルーチンの処理が終了する。
If “YES” is determined in step SP124, the process proceeds to step SP126. Here, the CPU 6 instructs the
2.2.5.ブロック再生完了イベント処理(図7(b))
何れかの発音チャンネルにおいてブロック再生完了割込が発生すると、図7(b)に示すブロック再生完了イベント処理ルーチンが実行される。図において処理がステップSP100に進むと、ハードディスク36からバッファメモリ28または30に対して何らかの部分データが転送中であるか否かが判定される。ここで「YES」と判定されると、本ルーチンの処理は直ちに終了する。一方、ここで「NO」と判定されると、処理はステップSP102に進み、上述した転送制御サブルーチン(図7(d))が呼び出される。
2.2.5. Block playback completion event processing (Figure 7 (b))
When a block reproduction completion interrupt occurs in any sound generation channel, a block reproduction completion event processing routine shown in FIG. 7B is executed. In the figure, when the process proceeds to step SP100, it is determined whether or not any partial data is being transferred from the
2.2.6.転送終了イベント処理(図7(c))
サウンドカード40においてバッファメモリ28,30内の何れかの領域に対する転送が終了すると、転送終了割込が発生し、図7(c)に示す転送終了イベント処理ルーチンが起動される。本ルーチンにおいては、単に転送制御サブルーチン(図7(d))が呼び出される。すなわち、部分データの転送が可能である限りは、該転送制御サブルーチンにおいて、転送処理が継続的に実行され続けることになる。
2.2.6. Transfer end event processing (Figure 7 (c))
When transfer to one of the areas in the
以上のように、本実施例によれば、次波形ブロック番号NWの管理等を除き、第1実施例の要求リストに相当するチャンネル番号リストの管理の大部分がハードウエアである転送管理部24に委ねられる。これにより、本実施例は第1実施例と比較して、CPU6の処理負荷を軽減することができる。
As described above, according to the present embodiment, except for management of the next waveform block number NW, etc., the
3.変形例
本発明は上述した実施例に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)上記各実施例においては、パーソナルコンピュータ上で動作するアプリケーションプログラムによって各種処理を実行したが、このアプリケーションプログラムのみをCD−ROM、フレキシブルディスク等の記録媒体に格納して頒布し、あるいは伝送路を通じて頒布することもできる。
3. Modifications The present invention is not limited to the above-described embodiments, and various modifications can be made as follows, for example.
(1) In each of the above embodiments, various processes are executed by an application program that runs on a personal computer. However, only this application program is stored in a recording medium such as a CD-ROM or a flexible disk and distributed or transmitted. It can also be distributed through the road.
(2)上記各実施例においては、バッファメモリ28,30および波形メモリ22をサウンドカード40内に実装したが、これらのメモリ領域をRAM12内に確保することにより、これらメモリの実装を省略してもよい。
(2) In each of the above embodiments, the
(3)上記各実施例において「再生レートDR(i)」は発音チャンネルiの音高(fナンバ)に対応して決定されたが、本発明の「再生レート」は音高(fナンバ)に対して一意に決定されるものである必要はない。例えば、ハードディスク36に記憶される波形データは、データを圧縮した波形データであることも考えられ、その場合、非圧縮の波形データと比較すると、同一のfナンバに対してバッファメモリ28,30内の部分データが消費される速度は遅くなる。また、波形データの分解能も「8ビット」、「16ビット」、「24ビット」等、波形データ毎に異なっても差し支えないから、波形データの分解能が高くなるほどバッファメモリ28,30内の部分データが消費される速度は速くなる。
(3) In each of the above embodiments, the “reproduction rate DR (i)” is determined corresponding to the pitch (f number) of the sound generation channel i, but the “reproduction rate” of the present invention is the pitch (f number). Need not be uniquely determined. For example, the waveform data stored in the
(4)また、上記各実施例においては、次に転送すべき1ブロックの部分データの転送時限TLに基づいて要求リストを作成したが、それ以降に転送すべき複数のnブロックの転送時限TLを算出し、これらを全て含めるように要求リストを作成するようにしてもよい。 (4) In each of the above embodiments, the request list is created based on the transfer time limit TL of one block of partial data to be transferred next. However, a transfer time limit TL of a plurality of n blocks to be transferred thereafter. And a request list may be created so as to include all of them.
(5)また、上記実施例においては、要求リスト中には発音中の全発音チャンネルが含まれていたが、チャンネル対応領域BiF,BiRのうち一方が書き込み可能になっている発音チャンネルiのみを要求リストに含めるようにしてもよい。
(6)また、要求リストの他の構成方法として、ハードディスク36に後続の未読の部分データが存在する発音チャンネルのみによって要求リストを構成してもよい。
(5) In the above embodiment, the request list includes all sound generation channels that are sounding. However, only the sound generation channel i in which one of the channel corresponding areas BiF and BiR is writable can be used. It may be included in the request list.
(6) As another configuration method of the request list, the request list may be configured only by the sound generation channel in which the subsequent unread partial data exists in the
(7)また、全体のサイズが小さい波形データについては、全体をアタック部として波形メモリ22内に置き、ハードディスク36からの転送を行うことなく波形データを再生できるようにしてもよい。
かかる場合には、図3のステップSP10および図7(a)のステップSP90を実行する前に、全体をアタック部として波形メモリ22内に記憶した波形データであるか否かを判定し、この判定結果が否定的であれば上記実施例のステップSP10およびSP90をそれぞれ実行し、判定結果が肯定的であれば、これらに代えて以下のステップSP10’、ステップSP90’を各々実行するとよい。
・ステップSP10’:次波形ブロック番号NW(i)を「なし」の状態(例えば「0」)に設定し、転送イネーブルフラグTE(i)を“0”に設定する。
・ステップSP90’:次波形ブロック番号NW(i)を「なし」の状態(例えば「0」)に設定する。
(7) For waveform data having a small overall size, the entire waveform data may be placed in the
In such a case, before executing step SP10 in FIG. 3 and step SP90 in FIG. 7A, it is determined whether or not the entire waveform data is stored in the
Step SP10 ′: The next waveform block number NW (i) is set to “None” (for example, “0”), and the transfer enable flag TE (i) is set to “0”.
Step SP90 ′: The next waveform block number NW (i) is set to a “none” state (eg, “0”).
(8)上記実施例においては最大発音チャンネル数mに対応する全発音チャンネルに対してチャンネル対応領域B1F,B1R,B2F,B2R,……,BmF,BmRを確保した。しかし、上記変形例のように「全体をアタック部として波形メモリ22内に記憶した波形データ」については、かかるチャンネル対応領域は不要である。従って、音源回路20の一部の発音チャンネルをかかる波形データに対する専用発音チャンネルとし、該専用発音チャンネル数に対応する数だけチャンネル対応領域の数を削減してもよい。
(8) In the above embodiment, channel corresponding regions B1F, B1R, B2F, B2R,..., BmF, BmR are secured for all sound generation channels corresponding to the maximum number m of sound generation channels. However, such “corresponding area” is not necessary for “waveform data stored in the
(9)上記実施例においてはアプリケーションプログラムの起動時において、各波形データの先頭部分の部分データを波形データ対応領域A1〜Anに読み込んだが、該波形データを読み込むタイミングはこれに限られるものではない。例えば、OSの起動時にこれら波形データを読み込むようにしてもよい。また、波形メモリ22の一部をフラッシュメモリまたはバッテリーバックアップ型のRAM等の不揮発性メモリによって構成すると、一旦先頭部分の部分データが読み込まれたならばOSやアプリケーションプログラムの起動毎に読み込む必要がなくなる。さらに、波形メモリ22の一部をROMによって構成し、ここに先頭部分の部分データを記憶しておけば、その読み込み自体を不要にすることができる。
(9) In the above embodiment, when the application program is started, partial data at the beginning of each waveform data is read into the waveform data corresponding areas A1 to An, but the timing for reading the waveform data is not limited to this. . For example, these waveform data may be read when the OS is started. Further, if a part of the
(10)また、上記実施例においてバックグラウンド処理ルーチン(図5)は、CPU6の使用率が所定値より低くなったことを条件として実行されたが、同ルーチンを実行するタイミングはこれに限られるものではなく、要は他の処理と比較して優先度を低くして実行するようにするとよい。例えば、CPU6がマルチタスクに対応する場合には、同ルーチンをバックグラウンド処理プロセス内で常時実行可能にしておき、他のプロセスと比較してそのプロセスの優先度を低く設定しておいてもよい。また、CPU6が実質的な処理を行っていないアイドル期間の長さを監視し、このアイドル期間が所定時間以上になるとバックグラウンド処理ルーチンを起動するようにしてもよい。但し、バックグラウンド処理ルーチンにおいてステップSP64〜SP70が実行されている途中に他の処理によって管理データ50が更新されると、バックグラウンド処理ルーチンが誤動作するため、ステップSP64〜SP70を実行する期間内では他のプロセスに対して管理データ50をロックしておくとよい。 (10) In the above embodiment, the background processing routine (FIG. 5) is executed on condition that the usage rate of the CPU 6 is lower than a predetermined value. However, the timing for executing the routine is limited to this. In short, it is better to execute with lower priority than other processes. For example, when the CPU 6 supports multitasking, the routine may always be executed in the background processing process, and the priority of the process may be set lower than that of other processes. . Alternatively, the CPU 6 may monitor the length of the idle period during which no substantial processing is performed, and start the background processing routine when the idle period exceeds a predetermined time. However, if the management data 50 is updated by other processing while steps SP64 to SP70 are being executed in the background processing routine, the background processing routine malfunctions, so that during the period in which steps SP64 to SP70 are executed, The management data 50 may be locked for other processes.
(11)また、上記実施例のステップSP68にあっては、要求リストの末尾より、転送時限TL(i)の転送要求を挿入すべき位置を検出するようにしてもよい。但し、この場合には、チェンジフラグCF(j)が“1”である発音チャンネルは無視する必要がある。すなわち、発音チャンネルi以外の発音チャンネルjの転送時限TL(j)を要求リストの末尾から順次検索してゆき、「転送時限TL(i)よりも早い転送時限TL(j)を有し、チェンジフラグCF(j)が“0”である発音チャンネルj」が発見されたならば、該発音チャンネルjの一つ後の位置に発音チャンネルiの転送要求を挿入するとよい。 (11) In step SP68 of the above embodiment, the position where the transfer request with the transfer time limit TL (i) should be inserted may be detected from the end of the request list. However, in this case, it is necessary to ignore the sound channel whose change flag CF (j) is “1”. That is, the transfer time TL (j) of the sound generation channel j other than the sound generation channel i is sequentially searched from the end of the request list, and “the transfer time limit TL (j) is earlier than the transfer time limit TL (i) If a sound channel j whose flag CF (j) is “0” is found, a transfer request for the sound channel i may be inserted at a position immediately after the sound channel j.
(12)また、上記実施例においては、ハードディスク36が波形データを記憶する単位である「1ブロック」のデータ量は「1クラスタ」と同一であったが、両者は必ずしも同一でなくてもよい。すなわち、「1ブロック」が「複数クラスタ」から構成されるようにしてもよい。
(12) In the above embodiment, the data amount of “1 block”, which is a unit in which the
(13)また、上記実施例においては、第1の記録媒体としてハードディスク36を適用した例を説明したが、第1の記録媒体として、MO、CD、DVDなどを適用してもよい。
(14)また、上記実施例においては、波形メモリ22に各発音チャンネルi毎に2つのチャンネル対応領域BiF,BiRを設けたが、発音チャンネルi毎に「3」以上のチャンネル対応領域を設けても良い。
(13) In the above embodiment, the
(14) In the above embodiment, the
(15)また、各発音チャンネルのチャンネル対応領域は、「1クラスタ」相当量づつ分かれている必要はない。すなわち、1つの発音チャンネルに対して「2クラスタ」以上のサイズ(「1クラスタ」の整数倍に限られない)を有する1つの領域をチャンネル対応領域にしてもよい。かかる場合は、各発音チャンネル毎に、どのアドレスまで書き込みが終了したかを示す書込みポインタと、どのアドレスまで読み出しが終了したかを示す読出しポインタとをRAM12内に確保し、両ポインタの差が1クラスタ以上になったときにブロック再生完了割込を発生させるようにするとよい。
(15) Further, the channel corresponding area of each sound generation channel does not need to be divided by an amount equivalent to “one cluster”. That is, one area having a size of “2 clusters” or more (not limited to an integral multiple of “1 cluster”) for one sound generation channel may be set as a channel corresponding area. In such a case, for each sound generation channel, a write pointer indicating to which address writing has been completed and a read pointer indicating to which address reading has been completed are secured in the
(16)また、この例において、1つの発音チャンネルのチャンネル対応領域の総和が「2クラスタ」相当量を超える場合には、両ポインタの差が2クラスタを超えるタイミング毎にブロック再生完了割込を発生させてもよい。例えば、チャンネル対応領域が「3クラスタ」相当量である場合は、両ポインタの差が2クラスタになる毎にブロック再生完了割込を発生させ、ハードディスク36からバッファメモリ28,30を介しての波形メモリ22への部分データの転送を2回行い、1回のブロック再生完了割込において「2クラスタ」相当量の部分データを補充するようにしてもよい。
(16) Also, in this example, if the sum of the channel corresponding areas of one sounding channel exceeds the amount equivalent to “2 clusters”, a block playback completion interrupt is issued every time the difference between both pointers exceeds 2 clusters. It may be generated. For example, when the channel corresponding area is equivalent to “3 clusters”, a block reproduction completion interrupt is generated every time the difference between both pointers becomes 2 clusters, and the waveform from the
2:表示器、4:操作子、6:CPU、8:DMA制御回路、10:フラッシュメモリ、12:RAM、14:通信インタフェース、18:サウンドシステム、20:音源回路(楽音信号生成手段)、22:波形メモリ(第2の記録媒体)、24:転送管理部、26,32:転送処理部、27,29:バス(第1および第2のバス)、28,30:バッファメモリ(第3の記録媒体)、34:IDE・I/O部、36:ハードディスク(第1の記録媒体)、38:CD−RWドライブ、40:サウンドカード、50:管理データ、52:ヘッダデータ、54−1〜54−m:チャンネルデータ。 2: Display, 4: Controller, 6: CPU, 8: DMA control circuit, 10: Flash memory, 12: RAM, 14: Communication interface, 18: Sound system, 20: Sound source circuit (musical sound signal generating means), 22: Waveform memory (second recording medium), 24: Transfer management section, 26, 32: Transfer processing section, 27, 29: Bus (first and second buses), 28, 30: Buffer memory (third 34: IDE / I / O section, 36: hard disk (first recording medium), 38: CD-RW drive, 40: sound card, 50: management data, 52: header data, 54-1 ~ 54-m: channel data.
Claims (7)
前記第2の記録媒体に次の部分データを読み込むことが可能な発音チャンネルのうち、該第2の記録媒体に記憶されている部分データによる再生が最も早いタイミングで終了する発音チャンネルを検出する検出手段と、
前記検出手段よって検出された発音チャンネルを、前記転送手段における前記部分データの転送を行うべき発音チャンネルとして指定する発音チャンネル指定手段と
を有することを特徴とするアクセス制御装置。 A first recording medium that stores at least one waveform data; a second recording medium that has a higher access speed than the first recording medium; and a plurality of waveform data, a part of each of the waveform data A tone signal for reading out each data and transferring it to the second recording medium, and reading out the second recording medium at a speed corresponding to the reproduction rate of each tone generation channel and generating a tone signal for each tone generation channel An access control device applied to a musical sound signal generation system having a generation means,
Detection for detecting a sounding channel in which reproduction by the partial data stored in the second recording medium ends at the earliest timing among sounding channels capable of reading the next partial data into the second recording medium Means,
An access control apparatus, comprising: a sound channel designation unit that designates a sound channel detected by the detection unit as a sound channel on which the partial data is to be transferred in the transfer unit.
ことを特徴とする請求項1記載のアクセス制御装置。 The detecting means creates a list of tone generation channels in order of the timing of completion of reproduction based on the partial data stored in the second recording medium, and detects the tone channel having the highest rank in the list. The access control apparatus according to claim 1, wherein:
前記第2の記録媒体に次の部分データを読み込むことが可能な発音チャンネルのうち、該第2の記録媒体に記憶されている部分データによる再生が最も早いタイミングで終了する発音チャンネルを検出する検出過程と、
前記検出過程において検出された発音チャンネルを、前記転送手段における前記部分データの転送を行うべき発音チャンネルとして指定する発音チャンネル指定過程と
を処理装置に実行させることを特徴とする楽音信号生成方法。 A first recording medium that stores at least one waveform data; a second recording medium that has a higher access speed than the first recording medium; and a plurality of waveform data, a part of each of the waveform data A tone signal for reading out each data and transferring it to the second recording medium, and reading out the second recording medium at a speed corresponding to the reproduction rate of each tone generation channel and generating a tone signal for each tone generation channel A musical sound signal generation method executed in a musical sound signal generation system having a generation means,
Detection for detecting a sounding channel in which reproduction by the partial data stored in the second recording medium ends at the earliest timing among sounding channels capable of reading the next partial data into the second recording medium Process,
A musical tone signal generation method, comprising: causing a processing device to execute a sound channel specification process in which the sound generation channel detected in the detection process is specified as a sound generation channel in which the partial data is to be transferred in the transfer unit.
前記検出過程は、
前記第2の記録媒体に記憶されている部分データによる再生が終了するタイミングの早い順に、発音チャンネルのリストを作成し、前記リスト中の最も順位の高い発音チャンネルを検出する過程である
ことを特徴とする請求項4記載の楽音信号生成方法。 The musical sound signal generation system includes rate storage means for storing the reproduction rate of each sound generation channel, and the first recording medium is a recording medium for storing waveform data in units of a predetermined size block, The second recording medium has a plurality of storage areas for each sound generation channel, and the partial data is alternately written in these storage areas.
The detection process includes:
A process of creating a list of sound generation channels in order of the timing of completion of reproduction based on partial data stored in the second recording medium, and detecting a sound channel having the highest rank in the list. The method for generating a musical sound signal according to claim 4.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004378785A JP4089687B2 (en) | 2004-12-28 | 2004-12-28 | Music signal processor |
US11/318,313 US7420115B2 (en) | 2004-12-28 | 2005-12-23 | Memory access controller for musical sound generating system |
US11/317,690 US7425672B2 (en) | 2004-12-24 | 2005-12-23 | Exterior structure for keyboard instrument |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004378785A JP4089687B2 (en) | 2004-12-28 | 2004-12-28 | Music signal processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006184628A true JP2006184628A (en) | 2006-07-13 |
JP4089687B2 JP4089687B2 (en) | 2008-05-28 |
Family
ID=36737782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004378785A Expired - Fee Related JP4089687B2 (en) | 2004-12-24 | 2004-12-28 | Music signal processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4089687B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016099408A (en) * | 2014-11-19 | 2016-05-30 | 株式会社コルグ | Musical sound generator and program |
JP2019061161A (en) * | 2017-09-27 | 2019-04-18 | カシオ計算機株式会社 | Electronic musical instrument, musical sound generating method, and program |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5534388B2 (en) | 2009-03-23 | 2014-06-25 | ヤマハ株式会社 | Music generator |
US8183452B2 (en) | 2010-03-23 | 2012-05-22 | Yamaha Corporation | Tone generation apparatus |
-
2004
- 2004-12-28 JP JP2004378785A patent/JP4089687B2/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016099408A (en) * | 2014-11-19 | 2016-05-30 | 株式会社コルグ | Musical sound generator and program |
JP2019061161A (en) * | 2017-09-27 | 2019-04-18 | カシオ計算機株式会社 | Electronic musical instrument, musical sound generating method, and program |
JP2021170140A (en) * | 2017-09-27 | 2021-10-28 | カシオ計算機株式会社 | Musical tone generator, electronic musical instrument, musical tone generation method, and program |
JP7131668B2 (en) | 2017-09-27 | 2022-09-06 | カシオ計算機株式会社 | SOUND GENERATING DEVICE, ELECTRONIC INSTRUMENT, SOUND GENERATING METHOD, AND PROGRAM |
Also Published As
Publication number | Publication date |
---|---|
JP4089687B2 (en) | 2008-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7420115B2 (en) | Memory access controller for musical sound generating system | |
US6441290B2 (en) | Apparatus and method for reproducing or recording, via buffer memory, sample data supplied from storage device | |
US7259314B2 (en) | Waveform data processing apparatus | |
US6437228B2 (en) | Method and apparatus for storing audio data | |
JP4089688B2 (en) | Music signal generator | |
JP4089687B2 (en) | Music signal processor | |
JP2004177981A (en) | Musical sound generating device | |
US20020141096A1 (en) | Apparatus and method for reproducing information, information recording medium and reproduction program | |
JP2000276172A (en) | Musical sound generating device and storage medium | |
JP5515218B2 (en) | Data access method and data access apparatus | |
JP4140612B2 (en) | Waveform data processor | |
JP4207914B2 (en) | Waveform data processor | |
JP5510813B2 (en) | Music generator | |
JP4254677B2 (en) | Musical sound generator and musical sound generation processing program | |
JP2004030369A (en) | Method and device for managing file, and program | |
JP2004157350A (en) | Performance information processing method, performance information processor, and program | |
JP4477159B2 (en) | Karaoke equipment | |
JP4102931B2 (en) | Sound waveform synthesizer | |
JP4102930B2 (en) | Sound waveform synthesizer | |
JP3666467B2 (en) | Waveform editing apparatus and waveform editing program | |
JP3573043B2 (en) | Synchronous circuit of multiple microcomputers of recording and playback device | |
JP2006277829A (en) | Multi-track reproducing apparatus | |
JP4720893B2 (en) | Karaoke equipment | |
JP4135002B2 (en) | Sample data reproducing apparatus and sample data recording / reproducing apparatus | |
JP2000276149A (en) | Method and device for generating music sound and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070822 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070918 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071116 |
|
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: 20080205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080218 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4089687 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110307 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110307 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120307 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130307 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140307 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |