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 PDF

Info

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
Application number
JP2004378785A
Other languages
Japanese (ja)
Other versions
JP4089687B2 (en
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 JP2004378785A priority Critical patent/JP4089687B2/en
Priority to US11/318,313 priority patent/US7420115B2/en
Priority to US11/317,690 priority patent/US7425672B2/en
Publication of JP2006184628A publication Critical patent/JP2006184628A/en
Application granted granted Critical
Publication of JP4089687B2 publication Critical patent/JP4089687B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To generate lists formed of channel numbers at which the transfer of waveform data from a hard disk is made possible as elements, to sort the lists in order of shorter transfer time limits, and to transfer the waveform data in the order of the lists. <P>SOLUTION: The musical sound signal generation system has a rate memory means (RAM) storing the reproducing rates of respective sound production channels. A first recording medium (hard disk) is a recording medium to store the wavelength data in a block (cluster) unit of a prescribed size and a second recording medium (waveform memory 22) has a plurality of memory regions (BiF, BiR) for each channel, and partial data is alternately written in these memory regions. In the detection process, the lists of the sound producing channels are generated in the order of faster timing when the reproduction by the partial data stored in the second memory recording medium ends, and the sound producing channels of the highest rank in the lists is detected. <P>COPYRIGHT: (C)2006,JPO&NCIPI

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.

特開平6−51776号公報JP-A-6-51776

ここで、複数チャンネルの読出しアドレスの進行状況を図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 claim 1, wherein the first recording medium (36) for storing at least one waveform data and the second recording having a higher access speed than the first recording medium (36). A medium (22), transfer means (26, 32) for reading a plurality of waveform data for each partial data constituting a part of each waveform data, and transferring them to the second recording medium (22); Access applied to a musical tone signal generating system having a musical tone signal generating means (20) for reading out the second recording medium (22) at a speed corresponding to a channel reproduction rate and generating a musical tone signal of each tone generation channel. Of the sound generation channels that can read the next partial data into the second recording medium (22), the control device uses the partial data stored in the second recording medium (22). Detection means (24, SP60 to SP70, SP46) for detecting a sounding channel that finishes reproduction at the earliest timing, and a sounding channel detected by the detection means are used as the partial data in the transfer means (26, 32). It is characterized by having sound generation channel specifying means (24, SP48) for specifying as a sound generation channel to be transferred.
Furthermore, in the configuration according to claim 2, in the access control device according to claim 1, the musical tone signal generation system includes rate storage means (12) for storing a 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 a plurality of second recording media (22) are provided for each sound generation channel. Storage areas (BiF, BiR), and the partial data are alternately written in these storage areas.
Furthermore, in the configuration according to claim 3, in the access control device according to claim 1, the detection means is a timing at which reproduction by partial data stored in the second recording medium (22) ends. A list of sounding channels is created in the order from the earliest, and the sounding channel with the highest rank in the list is detected.
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, reference numeral 2 denotes a display that displays various types of information to the user. Reference numeral 4 denotes an operator, which includes a keyboard and a mouse. A CPU 6 controls other components via the bus 16 based on a program described later. A flash memory 10 stores an initial program loader and the like. A RAM 12 is used as a work memory for the CPU 10. A communication interface 14 exchanges MIDI signals and the like with other devices.

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 DMA control circuit 8 executes various controls for inputting / outputting data to / from the RAM 12 without going through the CPU 6. A hard disk 36 stores an operating system of a personal computer, an application program of a tone signal generation system, waveform data, and the like. Reference numeral 38 denotes a CD-RW drive, which inputs and outputs data to and from disks such as CD-ROM, CD-R, and CD-RW. Reference numeral 34 denotes an IDE / I / O unit, which executes input / output processing for the hard disk 36 and the CD-RW drive 38. The hard disk 36 reads and writes various data in units of “cluster” (for example, 16 bits × 32 k words) under the control of the IDE / I / O unit 34.

40はサウンドカードであり、その内部には最大発音チャンネル数m(mは例えば64)の楽音信号を合成する音源回路20が設けられている。22は波形メモリ(半導体メモリ)であり、ここにはハードディスク36に記憶されている各波形データの、各々先頭数クラスタ相当程度の部分データが記憶される。サウンドカード40にCPU6からノートオン信号が供給されると、サウンドカード40においては直ちに楽音信号の合成を開始する必要があるが、その波形データを得るためにハードディスク36にアクセスすると、実際に波形データが読み出されるまでにタイムラグが生じる。そこで、各波形データの先頭部分のみを波形メモリ22に予め読み込んでおくことにより、このタイムラグを解消したものである。   Reference numeral 40 denotes a sound card, and a sound source circuit 20 for synthesizing musical tone signals having a maximum number m of sound generation channels (m is 64, for example) is provided therein. Reference numeral 22 denotes a waveform memory (semiconductor memory), in which partial data corresponding to the first several clusters of each waveform data stored in the hard disk 36 is stored. When a note-on signal is supplied from the CPU 6 to the sound card 40, the sound card 40 needs to immediately start synthesizing a musical sound signal. However, when the hard disk 36 is accessed to obtain the waveform data, the waveform data is actually There is a time lag before the is read. Therefore, the time lag is eliminated by reading only the head portion of each waveform data into the waveform memory 22 in advance.

28,30はハードディスク36から波形メモリ22への波形データ転送用のバッファメモリ(半導体メモリ)であり、各々「1クラスタ」相当の容量を有し、相互に独立したバス27,29に各々接続されている。26,32は転送処理部であり、転送処理部26は、ハードディスク36からバッファメモリ28,30に既に読み込まれている「1クラスタ」分の波形データを、音源回路20が波形メモリ22にアクセスしていない期間に波形メモリ22に転送する。また、転送処理部32は、CPU6の指示に応じて、「1クラスタ」分の波形データをハードディスク36から読み出して、バッファメモリ28,30のうちの転送処理部26による転送が終了している側のバッファメモリに転送する。   Reference numerals 28 and 30 denote buffer memories (semiconductor memories) for transferring waveform data from the hard disk 36 to the waveform memory 22, each having a capacity equivalent to "1 cluster" and connected to mutually independent buses 27 and 29, respectively. ing. Reference numerals 26 and 32 denote transfer processing units. The transfer processing unit 26 accesses the waveform memory 22 from the sound source circuit 20 for waveform data of “1 cluster” already read from the hard disk 36 to the buffer memories 28 and 30. The data is transferred to the waveform memory 22 during a period when it is not. Further, the transfer processing unit 32 reads the waveform data for “1 cluster” from the hard disk 36 in accordance with an instruction from the CPU 6, and the transfer processing unit 26 of the buffer memories 28 and 30 has completed the transfer. Transfer to the buffer memory.

上述した音源回路20は、複数の発音チャンネルを備えており、核発音チャンネル毎に読出しアドレスを生成して波形メモリ22から波形データを読み出し、読み出された波形データに対してエンベロープ付与を行い、各発音チャンネル毎の楽音信号を合成する。さらに、音源回路20は、合成された複数の楽音信号を混合し、混合された楽音信号に対してリバーブ等の効果を付与する。18はアンプ、スピーカ等から構成されたサウンドシステムであり、この効果付与された楽音信号を発音する。なお、図1内の各構成要素のうち、破線で示された転送管理部24は本実施例には含まれていない。   The above-described tone generator circuit 20 includes a plurality of tone generation channels, generates a read address for each nuclear tone generation channel, reads waveform data from the waveform memory 22, adds an envelope to the read waveform data, The tone signal for each tone generation channel is synthesized. Furthermore, the tone generator circuit 20 mixes a plurality of synthesized tone signals, and gives an effect such as reverb to the mixed tone signals. Reference numeral 18 denotes a sound system composed of an amplifier, a speaker, etc., which produces a tone signal with this effect. Note that, among the components in FIG. 1, the transfer management unit 24 indicated by a broken line is not included in this embodiment.

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 hard disk 36 is searched, and according to the number n of these waveform data. Waveform data corresponding areas A1 to An shown in FIG. Then, partial data at the head of these waveform data is stored in the waveform data corresponding areas A1 to An, respectively. It is preferable to secure the waveform data corresponding areas A1 to An corresponding to several clusters, but it is not necessarily an integral multiple of “1 cluster”. If the areas of “1 cluster” or more can be secured respectively. Good. Further, the cluster length of the hard disk 36 is detected, and the waveform memory 22 stores two channel corresponding areas B1F, B1R, B2F, B2R, corresponding to “one cluster” for each sounding channel having the maximum number of sounding channels m. ..., BmF and BmR are secured. The channel corresponding areas BiF and BiR of the arbitrary tone generation channel i are continuously arranged in the address space of the waveform memory 22.

次に、パーソナルコンピュータの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 RAM 12 of the personal computer. In FIG. 6, the management data 50 includes header data 52 and channel data 54-1 to 54-m respectively corresponding to the first to m-th sound generation channels. In the management data 50, a list called “request list” is formed in the bidirectional linked list format. This request list is formed by arranging channel data 54-1 to 54-m in the order in which partial data should be transferred from the hard disk 36 to the channel corresponding area.

管理データ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 hard disk 36 to the channel corresponding area BiF or BiR is allowed, and is set otherwise. Set to 0 ”.
Transfer time limit TL (i): This data indicates the time when the transfer of the partial data from the hard disk 36 to the channel corresponding area BiF or BiR should be completed. In FIG. 2C, when the reading period of each partial data by the sound source circuit 20 is Ts1, Ts2, Ts3,..., The times t2, t3,. Timed TL (i). Note that the leading portion (attack portion) of the waveform data is stored in the waveform memory 22 in advance, so that the corresponding transfer time limit TL (i) is not defined.

・次波形ブロック番号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 hard disk 36 to the channel corresponding area BiF or BiR.
Reproduction rate DR (i): This data indicates an address interval when the waveform memory 22 and the buffer memories 28 and 30 are read out, and is determined corresponding to the pitch (f number) of the tone generation channel i. .
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 communication interface 14, the CPU 6 starts a note-on event processing routine shown in FIG.
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 tone generator circuit 20, and the searched sound generation channel is assigned to the note-on event. The number of the sound channel assigned here is “i”. Next, when the process proceeds to step SP4, one waveform data is determined based on the tone color, velocity, and pitch for this note-on event. Next, when the process proceeds to step SP6, various parameters based on the tone color, velocity, and pitch are set for the tone generation channel i of the tone generator circuit 20. Here, the waveform data corresponding area Ap (1 ≦ p ≦ n) in the waveform memory 22 is uniquely determined based on the determined waveform data, and the channel corresponding areas BiF and BiR are uniquely determined based on the channel number i. It is determined.

次に、処理がステップ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 sound card 40 so as to start sound generation of the sound generation channel i. Thereby, in the tone generator circuit 20, reading of the waveform data corresponding area Ap is started. Next, when the process proceeds to step SP10, the next waveform block number NW (i) relating to the sound generation channel i is set to “2”, and the transfer enable flag TE (i) is set to “1”. That is, for the tone generation channel i, since only the waveform data corresponding area Ap of the block number “1” is currently read from the hard disk 36, the next waveform block number NW (i) is read next. “2”, which is the number of the power block, is set.

また、この次波形ブロック番号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 hard disk 36 to the buffer memory 28 or 30. If “YES” is determined here, the processing of this routine is immediately terminated. On the other hand, if “NO” is determined here, the process proceeds to step SP16, and a transfer control subroutine (FIG. 4C) described later is called. Although details will be described later, one transfer request is selected from the request list, and partial data transfer processing is executed based on the transfer request.

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 tone generator circuit 20, the channel corresponding regions B1F and B1R are alternately read out in a cycle corresponding to the reproduction rate DR (1) of the first sound channel, and according to the reproduction rate DR (3) of the third sound channel. The channel corresponding regions B3F and B3R are also alternately read at the same period. In these figures, the hatched area in the waveform memory 22 is an area in which partial data that has not yet been read out by the tone generator circuit 20 is stored.

図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 tone generator circuit 20 generates a block reproduction completion interrupt for notifying the CPU 6 that the reading of the channel corresponding area B3F is completed. Thereby, the CPU 6 adds the third tone generation channel to the end of the request list. Here, if the request list is an empty list, the third sounding channel is the first sounding channel in the request list.

次に、図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 transfer processing unit 32 to read the next partial data for the third tone generation channel. Thereby, the transfer processing unit 32 starts reading the partial data. The read partial data is sequentially transferred to one of the buffer memories 28 and 30 (buffer memory 30 in the illustrated example). Here, when the transfer of the partial data to the buffer memory 30 from the CPU 6 to the transfer processing unit 26 is completely completed, the channel corresponding area (here, B3F) to which the partial data is to be transferred is Instructed at.

次に、図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 hard disk 36 to the buffer memory 30 is completed, the transfer processing unit 32 notifies the transfer processing unit 26 of the fact and notifies the CPU 6 to that effect. Transfer end interrupt occurs. In the transfer processing unit 26, in response to the notification, transfer of partial data from the buffer memory 30 to the previously notified channel corresponding area (B3F) is automatically started. That is, the transfer processing unit 26 detects the timing at which the tone generator circuit 20 does not read the waveform memory 22, and the partial data is transferred at that timing. Therefore, in a state where the tone generator circuit 20 is accessing the waveform memory 22, this transfer process is on standby. Further, in response to the transfer end interrupt, the CPU 6 determines whether or not partial data of another channel can be transferred. If it is possible, processing for transferring the partial data is executed. . Of the above processing, the data transfer executed in the transfer processing unit 26 is independently executed by the transfer processing unit 26 without the CPU 6 being involved, and therefore there is no particularly urgent processing in the CPU 6. This is because the channel corresponding area to which partial data is to be transferred is designated in advance from the CPU 6 to the transfer processing unit 26 in the previous stage of FIG. As described above, according to the present embodiment, the frequency corresponding to the urgent processing is reduced for the CPU 6 by specifying the channel corresponding area to which the partial data is to be transferred to the transfer processing unit 26 in advance. Can be made.

ところで、図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 tone generator circuit 20 generates a block reproduction completion interrupt for notifying the CPU 6 that the reading of the channel corresponding area B1R has been completed. Accordingly, the CPU 6 adds the first tone generation channel to the end of the request list. Here, if the request list is an empty list, the first sound channel is the first sound channel in the request list.

次に、図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 transfer processing unit 32 to read the next partial data for the third tone generation channel. Thereby, the transfer processing unit 32 starts reading the partial data. The read partial data is sequentially transferred to the buffer memories 28 and 30 that have not been used for the previous transfer process (the buffer memory 28 in the illustrated example). As described above, the transfer of the partial data from the buffer memories 28 and 30 to the waveform memory 22 is executed at a timing when the tone generator circuit 20 does not read the waveform memory 22, so at this point in time as in the example shown in the figure. There is a possibility that partial data that has not yet been transferred to the waveform memory 22 remains in the buffer memory 30. However, since the buffer memories 28 and 30 are alternately used in the present embodiment, the transfer processing by the transfer processing unit 32 can be continued while the waveform data remaining in the buffer memory 30 is left.

上述したように、転送処理部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 buffer memories 28 and 30 to the channel corresponding areas BiF and BiR executed by the transfer processing unit 26 is not executed until the timing when the tone generator circuit 20 does not read the waveform memory 22 occurs. However, such timing occurs frequently. Moreover, since the transfer process is a transfer from the semiconductor memory to the semiconductor memory, the process is completed immediately when the process is actually started. On the other hand, the transfer processing from the hard disk 36 to the buffer memories 28 and 30 by the transfer processing unit 32 involves mechanical operations such as head movement and disk rotation, and therefore is compared with the transfer processing by the transfer processing unit 26. Then it will be very slow. In other words, when the transfer processing unit 32 starts the transfer process for one of the buffer memories 28 and 30, the other buffer memory is always in an empty state until the transfer process is completed. Therefore, for example, it is understood that even though the hard disk 36 is in a state where data transfer is possible, a situation in which the transfer processing units 26 and 32 are not ready and data transfer is waited for hardly occurs. After all, in the present embodiment, the maximum transfer speed of the partial data from the hard disk 36 to the waveform memory 22 is almost determined by the performance of the hard disk 36, and the performance of the hard disk 36 can be fully exhibited. Further, from the viewpoint of the CPU 6, this feature is that "when a transfer end interrupt occurs (when transfer to one buffer memory is completed), transfer to the other buffer memory may be started immediately". become. As a result, the CPU 6 does not need to check whether or not the other buffer memory is empty, and does not wait for the reason that “the other buffer memory is not empty”. Thereby, the burden on the CPU 6 can be further reduced.

1.2.4.サウンドカード40の動作
ここでサウンドカード40内の動作を図2(a),(b)を参照し説明しておく。上述したように、発音チャンネルiに係るノートオンイベントが発生すると、該発音チャンネルに係る波形データ対応領域Ap内の部分データの読出しが開始される。読出し処理は所定のサンプリング周期毎に実行され、該サンプリング周期毎に読出しアドレスに再生レートDR(i)が加算されてゆく。ここで、再生レートDR(i)は小数点以下の位まで定義することができるため、再生レートDR(i)の累積結果である読出しアドレスの計算値も一般的には小数点以下の位を有することになる。かかる場合には、当該計算結果の前後のアドレスのサンプル値が読み出され、小数値に基づいて補間演算が行われる。これにより、読出しアドレスの計算値が小数値を有する場合であっても、折り返しノイズの少ないサンプリング値を求めることができる。
1.2.4. Operation of Sound Card 40 The operation in the sound card 40 will now be described with reference to FIGS. 2 (a) and 2 (b). As described above, when a note-on event related to the sound generation channel i occurs, reading of partial data in the waveform data corresponding area Ap related to the sound generation channel is started. The reading process is executed every predetermined sampling period, and the reproduction rate DR (i) is added to the reading address every sampling period. Here, since the reproduction rate DR (i) can be defined to the decimal place, the calculated value of the read address, which is the cumulative result of the reproduction rate DR (i), generally has a decimal place. become. In such a case, sample values at addresses before and after the calculation result are read out, and an interpolation operation is performed based on the decimal value. Thereby, even if the calculated value of the read address has a decimal value, a sampling value with less aliasing noise can be obtained.

ここで、波形データ対応領域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 tone generator circuit 20, an envelope is added to the read partial data and effect processing is executed as necessary. The resulting musical sound signal is released via the sound system 18. It will be sounded. Further, in the tone generator circuit 20, when reading of any one of the waveform data corresponding area Ap and the channel corresponding areas BiF and BiR is completed, a block reproduction completion interrupt to the CPU 6 occurs. Further, when the transfer of the partial data from the hard disk 36 to the buffer memories 28 and 30 is completed for any sound generation channel, a transfer end interrupt is generated.

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 transfer processing unit 32 to perform a transfer process involving the sound generation channel j and the next waveform block number NW (j). Thus, under the control of the transfer processing unit 32, the partial data of one cluster specified by the next waveform block number NW (j) is read out from the waveform data stored in the hard disk 36 and assigned to the sound generation channel j. Then, transfer to the buffer memory 28 or 30 is started. In step SP48, the CPU 6 instructs the transfer processing unit 26 to specify a channel corresponding area (BjF or BjR) to which the transferred partial data is to be transferred. Then, the CPU 6 deletes the transfer request related to the sound generation channel j from the request list.

次に、処理がステップ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 tone generator circuit 20, when the reading of the waveform data corresponding area Ap is completed, the channel corresponding areas BjF and BjR of the sound generation channel j are alternately read. When step SP48 is executed in this state, the partial data is transferred to the buffer memory 28 or 30, and then the partial data is transferred to the "region not currently being read" in the channel corresponding region BjF or BjR. Will be.

そして、ステップ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 sound source circuit 20 to mute the sound generation channel j. That is, when the sound source circuit 20 receives the instruction, the tone signal of the sound generation channel j is gradually faded out, and then the sound generation channel j is released. On the other hand, if “NO” is determined in step SP50, the process proceeds to step SP56. Here, the transfer request of the next waveform block number NW (j) is added to the end of the request list. As described above, since the contents of the request list are read from the head, transfer requests are processed in the order of arrival even in the worst case. Further, when the background processing routine (FIG. 5) described later is executed, the request list is sorted in the order of the transfer time limit TL (j), so that the request list becomes more desirable. It can be seen that even if not executed, the request list is configured so that the failure is unlikely to occur.

さらに、ステップ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 hard disk 36 to the buffer memory 28 or 30. If “YES” is determined here, the processing of this routine is immediately terminated. On the other hand, if “NO” is determined here, the process proceeds to step SP26, and the above-described “transfer control subroutine (FIG. 4C)” is called.

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 buffer memories 28 and 30 is completed in the sound card 40, a transfer end interrupt is generated and a transfer end event processing routine shown in FIG. 4B is started. In this routine, the transfer control subroutine (FIG. 4C) is simply called. In other words, as long as the partial data can be transferred, the transfer control subroutine is repeatedly called every time the transfer is completed, and the transfer process is continuously executed.

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 transfer management unit 24 indicated by a broken line is added to the sound card 40. The transfer management unit 24 manages the order of sound generation channels to which partial data should be transferred from the hard disk 36.

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 hard disk 36 is searched for, as in the case of the first embodiment. Corresponding areas A1 to An are secured in the waveform memory 22, and partial data of the head portion of these waveform data are stored in the waveform data corresponding areas A1 to An, respectively. Also, in the buffer memories 28 and 30, channel corresponding regions B1F, B2F,..., BmF and B1R, B2R,.

次に、パーソナルコンピュータのRAM12には、管理データ領域が確保されるが、本実施例における管理データは第1実施例のものとは異なり、「要求リスト」に関連するデータは含まれていない。すなわち、管理データ内にはヘッダデータ52に対応するものは含まれず、各チャンネルデータ54−1〜54−mには先頭チャンネル番号SC、末尾チャンネル番号MCは含まれない。本実施例においては、これらに対応する情報は転送管理部24によって管理されるためである。   Next, although a management data area is secured in the RAM 12 of the personal computer, the management data in this embodiment is different from that in the first embodiment and does not include data related to the “request list”. That is, the management data does not include data corresponding to the header data 52, and the channel data 54-1 to 54-m do not include the start channel number SC and the end channel number MC. This is because in the present embodiment, information corresponding to these is managed by the transfer management unit 24.

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 communication interface 14, the CPU 6 starts a note-on event processing routine shown in FIG.
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 tone generator circuit 20, and a sound generation command is transmitted to the sound card 40. 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 RAM 12 is set to “2”. Next, when the process proceeds to step SP94, it is determined whether or not any partial data is being transferred from the hard disk 36 to the buffer memory 28 or 30. If “YES” is determined here, the processing of this routine is immediately terminated. On the other hand, if "NO" is determined here, the process proceeds to step SP96, and a transfer control subroutine (FIG. 7D) described later is called.

2.2.3.サウンドカード40の動作
サウンドカード40において転送管理部24以外の部分の動作は第1実施例と同様である。さらに、本実施例にあっては、転送管理部24において以下の処理が実行される。
まず、転送管理部24においては、発音中の全発音チャンネルの中から、以下の全ての条件を満たすものを列挙したリストである「チャンネル番号リスト」が生成される。
(1)当該発音チャンネルiに係るチャンネル対応領域BiF,BiRのうち何れかに対して部分データの転送が可能であること、
(2)CPU6から発音チャンネルiについて消音指令を受けていないこと。
2.2.3. Operation of Sound Card 40 The operation of the sound card 40 other than the transfer management unit 24 is the same as that of the first embodiment. Furthermore, in this embodiment, the transfer management unit 24 executes the following processing.
First, the transfer management unit 24 generates a “channel number list” that is a list in which all the following channels satisfying all of the following conditions are listed among all the sound generation channels that are currently sounding.
(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 transfer management unit 24 calculates the transfer time limit TL (i) at which the waveform data can be reproduced based on the partial data already written in the waveform memory 22 for all sound generation channels i belonging to the channel number list. Then, a “channel number list” that is a list in which the channel numbers are sorted in the order of the transfer time limit TL (i) is generated. However, since the transfer manager 24 itself does not know whether or not the next waveform block number NW (i) exists, the channel number list may include a sound generation channel that does not actually have the next waveform block. .

また、転送管理部24において生成されたチャンネル番号リストは、CPU6から自由に読み出すことができる。転送管理部24においては、各発音チャンネルjのチャンネル対応領域BjF,BjRが逐次監視され、部分データの転送の可否に応じて発音チャンネルjがチャンネル番号リストに追加され、あるいは発音チャンネルjがチャンネル番号リストから削除される。また、これと同時に、上述したように転送時限TL(i)に応じて該リストが逐次ソートされる。従って、例えばCPU6がチャンネル番号リストの先頭を読み出すと、チャンネル対応領域BiF,BiRの何れかに空きがあり、かつソート後の順位が最も高い発音チャンネルiが読み出されることになる。   The channel number list generated in the transfer management unit 24 can be freely read from the CPU 6. In the transfer management unit 24, the channel corresponding regions BjF and BjR of each tone generation channel j are sequentially monitored, and the tone generation channel j is added to the channel number list depending on whether partial data can be transferred, or the tone generation channel j is the channel number. Removed from the list. At the same time, as described above, the list is sequentially sorted according to the transfer time limit TL (i). Therefore, for example, when the CPU 6 reads the head of the channel number list, the sound channel i having the highest rank after sorting is read out in any of the channel corresponding areas BiF and BiR.

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 transfer management unit 24. The result is assigned to variable i. As described above, when there is no channel number to be transferred, a predetermined numerical value (for example, “0”) is read. Next, when the process proceeds to step SP122, it is determined whether or not there is a channel number to be transferred (whether or not it is a value other than “0”).

ここで「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 tone generator circuit 20. Supplied. As a result, the tone signal of the sound channel i is gradually faded out, and then the sound channel i is released. When the mute command is detected by the transfer management unit 24, the element related to the sound generation channel i is deleted from the channel number list. When the process returns to step SP120, the next channel number is read from the transfer management unit 24, and the determinations at steps SP122 and SP124 are repeated.

そして、ステップ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 transfer processing unit 32 to perform a transfer process involving the sound generation channel j and the next waveform block number NW (j). Thus, under the control of the transfer processing unit 32, the partial data of one cluster specified by the next waveform block number NW (j) is read out from the waveform data stored in the hard disk 36 and assigned to the sound generation channel j. Then, transfer to the buffer memory 28 or 30 is started. Further, in step SP126, the CPU 6 instructs the transfer processing unit 26 to specify a channel corresponding area (BjF or BjR) to which the transferred partial data is to be transferred. Next, when the process proceeds to step SP128, the next waveform block number NW (i) is incremented by “1”, and the process of this routine ends.

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 hard disk 36 to the buffer memory 28 or 30. If “YES” is determined here, the processing of this routine is immediately terminated. On the other hand, if “NO” is determined here, the process proceeds to step SP102, and the above-described transfer control subroutine (FIG. 7D) is called.

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 buffer memories 28 and 30 is completed in the sound card 40, a transfer end interrupt is generated and a transfer end event processing routine shown in FIG. 7C is started. In this routine, the transfer control subroutine (FIG. 7 (d)) is simply called. That is, as long as partial data can be transferred, the transfer process continues to be executed in the transfer control subroutine.

以上のように、本実施例によれば、次波形ブロック番号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 transfer management unit 24, in which most of the management of the channel number list corresponding to the request list of the first embodiment is hardware. It is entrusted to. Thereby, this embodiment can reduce the processing load of the CPU 6 as compared with the first embodiment.

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 buffer memories 28 and 30 and the waveform memory 22 are mounted in the sound card 40. However, by mounting these memory areas in the RAM 12, mounting of these memories is omitted. Also good.

(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 hard disk 36 may be waveform data obtained by compressing the data. In this case, when compared with uncompressed waveform data, the same f number is stored in the buffer memories 28 and 30. The partial data is consumed at a slower speed. The resolution of the waveform data may be different for each waveform data, such as “8 bits”, “16 bits”, “24 bits”, etc. Therefore, as the resolution of the waveform data is increased, the partial data in the buffer memories 28 and 30 is increased. Will be consumed faster.

(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 hard disk 36.

(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 waveform memory 22 as an attack portion so that the waveform data can be reproduced without being transferred from the hard disk 36.
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 waveform memory 22 as an attack unit. If the result is negative, steps SP10 and SP90 of the above-described embodiment are executed. If the determination result is positive, the following steps SP10 ′ and SP90 ′ may be executed instead.
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 waveform memory 22 as an entire attack section” as in the above-described modification. Therefore, a part of sound generation channels 20 of the sound source circuit 20 may be dedicated sound generation channels for such waveform data, and the number of channel corresponding regions may be reduced by the number corresponding to the number of dedicated sound generation channels.

(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 waveform memory 22 is constituted by a non-volatile memory such as a flash memory or a battery backup type RAM, once the head portion data is read, it is not necessary to read it every time the OS or application program is started. . Further, if a part of the waveform memory 22 is constituted by a ROM and the partial data of the head part is stored here, the reading itself can be made unnecessary.

(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 hard disk 36 stores waveform data, is the same as “1 cluster”. . That is, “1 block” may be composed of “multiple clusters”.

(13)また、上記実施例においては、第1の記録媒体としてハードディスク36を適用した例を説明したが、第1の記録媒体として、MO、CD、DVDなどを適用してもよい。
(14)また、上記実施例においては、波形メモリ22に各発音チャンネルi毎に2つのチャンネル対応領域BiF,BiRを設けたが、発音チャンネルi毎に「3」以上のチャンネル対応領域を設けても良い。
(13) In the above embodiment, the hard disk 36 is applied as the first recording medium. However, MO, CD, DVD, etc. may be applied as the first recording medium.
(14) In the above embodiment, the waveform memory 22 is provided with two channel corresponding areas BiF and BiR for each tone generation channel i. However, a channel corresponding area of “3” or more is provided for each tone generation channel i. Also good.

(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 RAM 12, and the difference between both pointers is 1. A block regeneration completion interrupt may be generated when the number of clusters is exceeded.

(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 hard disk 36 via the buffer memories 28 and 30 is generated. Partial data transfer to the memory 22 may be performed twice, and partial data corresponding to “2 clusters” may be supplemented in one block reproduction completion interrupt.

本発明の第1,第2実施例の楽音信号生成システムのブロック図である。It is a block diagram of a tone signal generation system of the first and second embodiments of the present invention. 第1実施例の動作説明図である。It is operation | movement explanatory drawing of 1st Example. 第1実施例のノートオンイベント処理ルーチンのフローチャートである。It is a flowchart of the note-on event processing routine of 1st Example. 第1実施例の各種処理ルーチンのフローチャートである。It is a flowchart of the various processing routine of 1st Example. 第1実施例のバックグラウンド処理ルーチンのフローチャートである。It is a flowchart of the background process routine of 1st Example. 第1実施例のデータ構造図である。It is a data structure figure of 1st Example. 第2実施例の各種処理ルーチンのフローチャートである。It is a flowchart of the various processing routine of 2nd Example. 第1および第2実施例の動作説明図である。It is operation | movement explanatory drawing of 1st and 2nd Example.

符号の説明Explanation of symbols

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)

少なくとも一の波形データを記憶する第1の記録媒体と、前記第1の記録媒体よりもアクセス速度が速い第2の記録媒体と、複数の波形データを、これら各波形データの一部を成す部分データ毎に読み出し、前記第2の記録媒体に転送する転送手段と、各発音チャンネルの再生レートに応じた速度で前記第2の記録媒体を読み出し、前記各発音チャンネルの楽音信号を生成する楽音信号生成手段とを有する楽音信号生成システムに適用されるアクセス制御装置であって、
前記第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の記録媒体は、所定サイズのブロック単位で波形データを記憶する記録媒体であり、前記第2の記録媒体は、前記各発音チャンネル毎に複数の記憶領域を有し、これら記憶領域に対して、前記部分データが交互に書き込まれるものであることを特徴とする請求項1記載のアクセス制御装置。   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, 2. The second recording medium according to claim 1, wherein the second recording medium has a plurality of storage areas for each of the sound generation channels, and the partial data is alternately written in these storage areas. Access control device. 前記検出手段は、前記第2の記録媒体に記憶されている部分データによる再生が終了するタイミングの早い順に発音チャンネルのリストを作成し、該リスト中の最も順位の高い発音チャンネルを検出するものである
ことを特徴とする請求項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:
少なくとも一の波形データを記憶する第1の記録媒体と、前記第1の記録媒体よりもアクセス速度が速い第2の記録媒体と、複数の波形データを、これら各波形データの一部を成す部分データ毎に読み出し、前記第2の記録媒体に転送する転送手段と、各発音チャンネルの再生レートに応じた速度で前記第2の記録媒体を読み出し、前記各発音チャンネルの楽音信号を生成する楽音信号生成手段とを有する楽音信号生成システムにおいて実行される楽音信号生成方法であって、
前記第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.
前記楽音信号生成システムは、前記各発音チャンネルの再生レートを記憶するレート記憶手段を有するものであり、前記第1の記録媒体は、所定サイズのブロック単位で波形データを記憶する記録媒体であり、前記第2の記録媒体は、前記各発音チャンネル毎に複数の記憶領域を有し、これら記憶領域に対して、前記部分データが交互に書き込まれるものであり、
前記検出過程は、
前記第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.
請求項4または5記載の楽音信号生成方法を実行することを特徴とする楽音信号生成装置。   6. A musical tone signal generating apparatus, wherein the musical tone signal generating method according to claim 4 is executed. 請求項4または5記載の楽音信号生成方法を処理装置に実行させることを特徴とするプログラム。   A program for causing a processing device to execute the musical sound signal generation method according to claim 4 or 5.
JP2004378785A 2004-12-24 2004-12-28 Music signal processor Expired - Fee Related JP4089687B2 (en)

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)

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

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

Cited By (4)

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