JPH06203534A - 電子楽器のファイル管理システム - Google Patents
電子楽器のファイル管理システムInfo
- Publication number
- JPH06203534A JPH06203534A JP5152638A JP15263893A JPH06203534A JP H06203534 A JPH06203534 A JP H06203534A JP 5152638 A JP5152638 A JP 5152638A JP 15263893 A JP15263893 A JP 15263893A JP H06203534 A JPH06203534 A JP H06203534A
- Authority
- JP
- Japan
- Prior art keywords
- data
- cluster
- stored
- cluster number
- area
- 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.)
- Pending
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
Abstract
(57)【要約】
【目的】予め記憶された演奏データに対してデータの挿
入又は削除を行う場合でも全データの書換えを行わなく
ても任意の長さの演奏データを任意の位置に挿入又は削
除できるようにする。 【構成】記憶手段は、所定長のデータ領域からなる記憶
単位の複数個に1ファイル分の演奏データを分割して記
憶すると共に、各記憶単位に記憶されている演奏データ
部分の大きさをそれぞれ示すデータと各記憶単位に記憶
された演奏データ部分の連結順を示すデータとを記憶し
ている。指示手段はこの記憶手段に記憶されている演奏
データに対してデータの挿入又は削除を指示する。ファ
イル管理手段はこの指示手段によって指示されたデータ
を挿入又は削除する場合に、演奏データ部分の大きさを
示すデータ及び連結順を示すデータを書き換える。読出
手段は、記憶手段に記憶された演奏データ部分の大きさ
を示すデータ及び連結順を示すデータに基づき記憶手段
に記憶された演奏データを読み出す。
入又は削除を行う場合でも全データの書換えを行わなく
ても任意の長さの演奏データを任意の位置に挿入又は削
除できるようにする。 【構成】記憶手段は、所定長のデータ領域からなる記憶
単位の複数個に1ファイル分の演奏データを分割して記
憶すると共に、各記憶単位に記憶されている演奏データ
部分の大きさをそれぞれ示すデータと各記憶単位に記憶
された演奏データ部分の連結順を示すデータとを記憶し
ている。指示手段はこの記憶手段に記憶されている演奏
データに対してデータの挿入又は削除を指示する。ファ
イル管理手段はこの指示手段によって指示されたデータ
を挿入又は削除する場合に、演奏データ部分の大きさを
示すデータ及び連結順を示すデータを書き換える。読出
手段は、記憶手段に記憶された演奏データ部分の大きさ
を示すデータ及び連結順を示すデータに基づき記憶手段
に記憶された演奏データを読み出す。
Description
【0001】
【産業上の利用分野】この発明は、楽音に関する演奏デ
ータを論理的に扱うためにその演奏データをファイルと
して記憶媒体に記憶し、そのファイルを読み出すことに
よって所望の演奏を行う電子楽器に係り、そのファイル
を実際の記憶媒体上でどのように記憶し、どのように読
み出すかその物理的構成に改良を加えた電子楽器のファ
イル管理システムに関する。
ータを論理的に扱うためにその演奏データをファイルと
して記憶媒体に記憶し、そのファイルを読み出すことに
よって所望の演奏を行う電子楽器に係り、そのファイル
を実際の記憶媒体上でどのように記憶し、どのように読
み出すかその物理的構成に改良を加えた電子楽器のファ
イル管理システムに関する。
【0002】
【従来の技術】キーボードやコンピュータ等から入力さ
れる演奏データをフロッピーディスクやハードディスク
等の記憶媒体に記憶し、そこから演奏データを読み出し
て演奏音を自動的に再生するシーケンサタイプの自動演
奏装置を内蔵した電子楽器がある。
れる演奏データをフロッピーディスクやハードディスク
等の記憶媒体に記憶し、そこから演奏データを読み出し
て演奏音を自動的に再生するシーケンサタイプの自動演
奏装置を内蔵した電子楽器がある。
【0003】このような電子楽器では、演奏データをフ
ロッピーディスクやハードディスク等に記憶する際に、
汎用のパーソナルコンピュータのオペレーションシステ
ムであるMS−DOSのファイル管理システムを利用し
て演奏データをファイルとして管理している。(「MS
−DOS」は米国マイクロソフト社の登録商標であ
る。)このMS−DOSでは、ディスクを予約領域(ブ
ートセクタ)、FAT(File Allocatio
n Table)、ディレクトリ領域及びデータ領域の
4つのブロックに分割して演奏データを記憶している。
予約領域はブートプログラムを格納し、FATはファイ
ルやサブディレクトリがディスク上のどこのクラスタを
使用しているか、また、そのクラスタの連結状態や未使
用クラスタの位置、不良クラスタの位置等のようなディ
スクの使用状態に関する情報を記憶したテーブルであ
る。ディレクトリ領域はルートディレクトリに相当する
ものであり、32バイトのディレクトリエントリを複数
個格納している。データ領域は未使用クラスタ又は使用
済みクラスタの集まりであり、必要に応じて先頭から順
番に演奏データやサブディレクトリ等の実際のデータを
格納している。
ロッピーディスクやハードディスク等に記憶する際に、
汎用のパーソナルコンピュータのオペレーションシステ
ムであるMS−DOSのファイル管理システムを利用し
て演奏データをファイルとして管理している。(「MS
−DOS」は米国マイクロソフト社の登録商標であ
る。)このMS−DOSでは、ディスクを予約領域(ブ
ートセクタ)、FAT(File Allocatio
n Table)、ディレクトリ領域及びデータ領域の
4つのブロックに分割して演奏データを記憶している。
予約領域はブートプログラムを格納し、FATはファイ
ルやサブディレクトリがディスク上のどこのクラスタを
使用しているか、また、そのクラスタの連結状態や未使
用クラスタの位置、不良クラスタの位置等のようなディ
スクの使用状態に関する情報を記憶したテーブルであ
る。ディレクトリ領域はルートディレクトリに相当する
ものであり、32バイトのディレクトリエントリを複数
個格納している。データ領域は未使用クラスタ又は使用
済みクラスタの集まりであり、必要に応じて先頭から順
番に演奏データやサブディレクトリ等の実際のデータを
格納している。
【0004】
【発明が解決しようとする課題】しかしながら、電子楽
器で扱う演奏データは通常のパーソナルコンピュータで
扱うようなデータに比べて非常に膨大であり、必然的に
1ファイルの大きさも非常に大きなものである。また、
電子楽器においては演奏データの挿入や削除を演奏内容
に応じて頻繁に繰り返す場合が多い。MS−DOSのよ
うなファイル管理システムでこのような膨大な量の演奏
データを管理しようとすると、演奏データの挿入や削除
の度に全データの書換えを行わなければならず、その書
換えだけで多大の時間を費やすこととなる。これは、M
S−DOSのファイル管理システムがクラスタの連結状
態を示したFATによって指定された最後尾のクラスタ
以外は必ずデータが満たされていなければならないとい
う方式に依存しているからに他ならない。従って、MS
−DOSのような既存のファイル管理システムで膨大な
量の演奏データを管理しようとすると、演奏データの挿
入又は削除のポイントよりも後ろにある演奏データは記
憶位置が全て変わることとなるため、全データの書換え
を行う必要があり、演奏に即したリアルタイムな演奏デ
ータの書換えが行えないという問題を有する。
器で扱う演奏データは通常のパーソナルコンピュータで
扱うようなデータに比べて非常に膨大であり、必然的に
1ファイルの大きさも非常に大きなものである。また、
電子楽器においては演奏データの挿入や削除を演奏内容
に応じて頻繁に繰り返す場合が多い。MS−DOSのよ
うなファイル管理システムでこのような膨大な量の演奏
データを管理しようとすると、演奏データの挿入や削除
の度に全データの書換えを行わなければならず、その書
換えだけで多大の時間を費やすこととなる。これは、M
S−DOSのファイル管理システムがクラスタの連結状
態を示したFATによって指定された最後尾のクラスタ
以外は必ずデータが満たされていなければならないとい
う方式に依存しているからに他ならない。従って、MS
−DOSのような既存のファイル管理システムで膨大な
量の演奏データを管理しようとすると、演奏データの挿
入又は削除のポイントよりも後ろにある演奏データは記
憶位置が全て変わることとなるため、全データの書換え
を行う必要があり、演奏に即したリアルタイムな演奏デ
ータの書換えが行えないという問題を有する。
【0005】この発明は上述の点に鑑みてなされたもの
であり、予め記憶された演奏データに対してデータの挿
入又は削除を行う場合でも全データの書換えを行わなく
ても任意の長さの演奏データを任意の位置に挿入又は削
除できるような電子楽器のファイル管理システムを提供
することを目的とする。
であり、予め記憶された演奏データに対してデータの挿
入又は削除を行う場合でも全データの書換えを行わなく
ても任意の長さの演奏データを任意の位置に挿入又は削
除できるような電子楽器のファイル管理システムを提供
することを目的とする。
【0006】
【課題を解決するための手段】この発明に係る電子楽器
のファイル管理システムは、所定長のデータ領域からな
る記憶単位の複数個に1ファイル分の演奏データを分割
して記憶すると共に、前記各記憶単位に記憶されている
前記演奏データ部分の大きさをそれぞれ示すデータと前
記各記憶単位に記憶された前記演奏データ部分の連結順
を示すデータとを記憶している記憶手段と、この記憶手
段に記憶されている前記演奏データに対してデータの挿
入又は削除を指示する指示手段と、この指示手段によっ
て指示されたデータを挿入又は削除するとともに前記演
奏データ部分の大きさを示すデータ及び前記連結順を示
すデータを書き換えるファイル管理手段と、 前記記憶
手段に記憶された前記演奏データ部分の大きさを示すデ
ータ及び前記連結順を示すデータに基づき前記記憶手段
に記憶された演奏データを読み出す読出手段とを具えた
ものである。
のファイル管理システムは、所定長のデータ領域からな
る記憶単位の複数個に1ファイル分の演奏データを分割
して記憶すると共に、前記各記憶単位に記憶されている
前記演奏データ部分の大きさをそれぞれ示すデータと前
記各記憶単位に記憶された前記演奏データ部分の連結順
を示すデータとを記憶している記憶手段と、この記憶手
段に記憶されている前記演奏データに対してデータの挿
入又は削除を指示する指示手段と、この指示手段によっ
て指示されたデータを挿入又は削除するとともに前記演
奏データ部分の大きさを示すデータ及び前記連結順を示
すデータを書き換えるファイル管理手段と、 前記記憶
手段に記憶された前記演奏データ部分の大きさを示すデ
ータ及び前記連結順を示すデータに基づき前記記憶手段
に記憶された演奏データを読み出す読出手段とを具えた
ものである。
【0007】
【作用】演奏データは音高に関するデータや発音タイミ
ングに関するデータ等のような楽音に関するデータであ
る。記憶手段は、所定長のデータ領域からなる記憶単位
に分割されており、その記憶単位の複数個に1ファイル
分の演奏データが適宜分割記憶されている。また、記憶
手段は、その記憶単位に現在記憶されている演奏データ
部分の大きさをそれぞれ示すデータと各記憶単位に記憶
された演奏データ部分の連結順を示すデータとを記憶し
ている。従って、この連結順を示すデータに従って記憶
単位から有効データを順番に読み出すことによって所定
の1ファイル分の演奏データを再生することができる。
指示手段は、この記憶手段に記憶されている演奏データ
に対して新たにデータを挿入するのか、またはデータを
削除するのかを指示するものである。従って、指示手段
の操作に応じてデータの挿入や削除が行われる。このよ
うな場合に、ファイル管理手段はこの指示手段によって
指示されたデータを挿入又は削除する場合に、演奏デー
タ部分の大きさを示すデータ及び連結順を示すデータを
書き換える。そして、読出手段は、記憶手段に記憶され
た演奏データ部分の大きさを示すデータ及び連結順を示
すデータに基づき記憶手段に記憶された演奏データを読
み出す。従って、データの挿入に伴って記憶単位の有効
データの大きさが所定長のデータ領域よりも大きくなる
ときにはその大きくなった分のデータを記憶するための
記憶単位を新たに追加すると共に追加された記憶単位の
連結順を示すデータを新たに追加するだけでよい。ま
た、データの削除に伴って記憶単位に記憶されている有
効データが消滅したときにはその記憶単位を連結順を示
すデータから削除するだけでよい。これによって、デー
タの挿入及び削除によって書き換えられる記憶単位の数
や量が非常に少なくて済み、一々全データの書換えを行
わなくても任意の長さの演奏データを任意の位置に挿入
したり又は削除したりすることができる。
ングに関するデータ等のような楽音に関するデータであ
る。記憶手段は、所定長のデータ領域からなる記憶単位
に分割されており、その記憶単位の複数個に1ファイル
分の演奏データが適宜分割記憶されている。また、記憶
手段は、その記憶単位に現在記憶されている演奏データ
部分の大きさをそれぞれ示すデータと各記憶単位に記憶
された演奏データ部分の連結順を示すデータとを記憶し
ている。従って、この連結順を示すデータに従って記憶
単位から有効データを順番に読み出すことによって所定
の1ファイル分の演奏データを再生することができる。
指示手段は、この記憶手段に記憶されている演奏データ
に対して新たにデータを挿入するのか、またはデータを
削除するのかを指示するものである。従って、指示手段
の操作に応じてデータの挿入や削除が行われる。このよ
うな場合に、ファイル管理手段はこの指示手段によって
指示されたデータを挿入又は削除する場合に、演奏デー
タ部分の大きさを示すデータ及び連結順を示すデータを
書き換える。そして、読出手段は、記憶手段に記憶され
た演奏データ部分の大きさを示すデータ及び連結順を示
すデータに基づき記憶手段に記憶された演奏データを読
み出す。従って、データの挿入に伴って記憶単位の有効
データの大きさが所定長のデータ領域よりも大きくなる
ときにはその大きくなった分のデータを記憶するための
記憶単位を新たに追加すると共に追加された記憶単位の
連結順を示すデータを新たに追加するだけでよい。ま
た、データの削除に伴って記憶単位に記憶されている有
効データが消滅したときにはその記憶単位を連結順を示
すデータから削除するだけでよい。これによって、デー
タの挿入及び削除によって書き換えられる記憶単位の数
や量が非常に少なくて済み、一々全データの書換えを行
わなくても任意の長さの演奏データを任意の位置に挿入
したり又は削除したりすることができる。
【0008】
【実施例】以下、この発明の実施例を添付図面に従って
詳細に説明する。図2はこの発明に係るファイル管理シ
ステムを内蔵した電子楽器の全体構成を示すハードブロ
ック図である。マイクロプロセッサユニット(CPU)
10は、この電子楽器全体の動作を制御するものであ
る。このCPU10に対して、データ及びアドレスバス
25を介してROM11、RAM12、鍵盤13、パネ
ルスイッチ14、表示器15、音源回路16、アナログ
−デジタル変換器(ADC)17、DMA(Direc
tMemory Access)装置18、アドレス変
換回路19及びインターフェイス20が接続されてい
る。
詳細に説明する。図2はこの発明に係るファイル管理シ
ステムを内蔵した電子楽器の全体構成を示すハードブロ
ック図である。マイクロプロセッサユニット(CPU)
10は、この電子楽器全体の動作を制御するものであ
る。このCPU10に対して、データ及びアドレスバス
25を介してROM11、RAM12、鍵盤13、パネ
ルスイッチ14、表示器15、音源回路16、アナログ
−デジタル変換器(ADC)17、DMA(Direc
tMemory Access)装置18、アドレス変
換回路19及びインターフェイス20が接続されてい
る。
【0009】この実施例ではCPU10によって押鍵検
出処理や自動演奏処理等を行う電子楽器について説明す
るが、自動演奏処理を行うシーケンサモジュールと、鍵
盤13や音源回路16からなるモジュールとがそれぞれ
別々に構成され、各モジュール間のデータの授受を周知
のMIDI規格で行うように構成されたものにも同様に
適用できる。
出処理や自動演奏処理等を行う電子楽器について説明す
るが、自動演奏処理を行うシーケンサモジュールと、鍵
盤13や音源回路16からなるモジュールとがそれぞれ
別々に構成され、各モジュール間のデータの授受を周知
のMIDI規格で行うように構成されたものにも同様に
適用できる。
【0010】ROM11はCPU10の各種プログラム
や各種データを格納するものであり、リードオンリーメ
モリ(ROM)で構成されている。RAM12は、演奏
データやCPU10がプログラムを実行する際に発生す
る各種データを一時的に記憶するものであり、ランダム
アクセスメモリ(RAM)の所定のアドレス領域がそれ
ぞれ割り当てられ、レジスタ、フラグ、バッファ等とし
て利用される。
や各種データを格納するものであり、リードオンリーメ
モリ(ROM)で構成されている。RAM12は、演奏
データやCPU10がプログラムを実行する際に発生す
る各種データを一時的に記憶するものであり、ランダム
アクセスメモリ(RAM)の所定のアドレス領域がそれ
ぞれ割り当てられ、レジスタ、フラグ、バッファ等とし
て利用される。
【0011】鍵盤13は、発音すべき楽音の音高を選択
するための複数の鍵を備えており、各鍵の操作に応じて
キーオンイベント情報、キーオフイベント情報、ベロシ
ティ情報、キーコード等のデータをデータ及びアドレス
バス25を介してCPU10に出力する。鍵盤13の代
わりにコンピュータ等を接続し、所望の演奏データを入
力してもよい。パネルスイッチ14は、音色、音量、効
果等を選択・設定・制御するための各種操作子を含むも
のである。表示器15はCPU10の制御状態、設定デ
ータの内容等の各種の情報を液晶パネル(LCD)等に
表示するものである。
するための複数の鍵を備えており、各鍵の操作に応じて
キーオンイベント情報、キーオフイベント情報、ベロシ
ティ情報、キーコード等のデータをデータ及びアドレス
バス25を介してCPU10に出力する。鍵盤13の代
わりにコンピュータ等を接続し、所望の演奏データを入
力してもよい。パネルスイッチ14は、音色、音量、効
果等を選択・設定・制御するための各種操作子を含むも
のである。表示器15はCPU10の制御状態、設定デ
ータの内容等の各種の情報を液晶パネル(LCD)等に
表示するものである。
【0012】音源回路16は、複数のチャンネルで楽音
信号の同時発生が可能であり、データ及びアドレスバス
25を経由して与えられた演奏データ(MIDI規格に
準拠したデータや波形データ等)を入力し、このデータ
に基づき楽音信号を発生するものであって、例えば、発
生すべき楽音の音高に対応して変化するアドレスデータ
に応じて音源回路16内部あるいはハードディスク等の
外部記憶装置に記憶した楽音波形サンプル値データを順
次読み出すメモリ読み出し方式により、楽音信号を発生
するものである。なお、音源回路16は2ブロック構成
のバッファメモリを有し、データ及びアドレスバス25
を経由して来る演奏データを一時的に記憶してから楽音
信号の発生を行う。音源回路16から発生された楽音信
号は、図示しないアンプ及びスピーカからなるサウンド
システム24を介して発音される。
信号の同時発生が可能であり、データ及びアドレスバス
25を経由して与えられた演奏データ(MIDI規格に
準拠したデータや波形データ等)を入力し、このデータ
に基づき楽音信号を発生するものであって、例えば、発
生すべき楽音の音高に対応して変化するアドレスデータ
に応じて音源回路16内部あるいはハードディスク等の
外部記憶装置に記憶した楽音波形サンプル値データを順
次読み出すメモリ読み出し方式により、楽音信号を発生
するものである。なお、音源回路16は2ブロック構成
のバッファメモリを有し、データ及びアドレスバス25
を経由して来る演奏データを一時的に記憶してから楽音
信号の発生を行う。音源回路16から発生された楽音信
号は、図示しないアンプ及びスピーカからなるサウンド
システム24を介して発音される。
【0013】マイク23は音声信号や楽器音等を電圧信
号に変換して、アナログ−デジタル変換器(ADC)1
7に出力する。アナログ−デジタル変換器17はマイク
23からのアナログの電圧信号をデジタル信号に変換し
て、データ及びアドレスバス25に出力する。CPU1
0はアナログ−デジタル変換器17からのデジタル信
号、例えば楽器音をサンプリングしたデジタル信号を入
力し、その楽器音の音高(ピッチ)データを検出して演
奏データとして外部記憶装置(ハードディスク21等)
に記憶したりする。
号に変換して、アナログ−デジタル変換器(ADC)1
7に出力する。アナログ−デジタル変換器17はマイク
23からのアナログの電圧信号をデジタル信号に変換し
て、データ及びアドレスバス25に出力する。CPU1
0はアナログ−デジタル変換器17からのデジタル信
号、例えば楽器音をサンプリングしたデジタル信号を入
力し、その楽器音の音高(ピッチ)データを検出して演
奏データとして外部記憶装置(ハードディスク21等)
に記憶したりする。
【0014】ハードディスク21は数十〜数百メガバイ
ト(MB)の記憶容量を有し、インターフェイス20を
介してデータ及びアドレスバス25に接続されている。
キャッシュRAM22は数メガバイトの記憶容量を有
し、ハードディスク21へのアクセスタイムを大幅に短
縮するものである。アドレス変換回路19は読み出しア
ドレスがキャッシュRAM22に存在するかどうかを判
定し、存在する場合にはその読み出しアドレスをキャッ
シュRAM22のアドレスに変換する。DMA装置18
はCPU10を介さないで、RAM12等の内部メモリ
とハードディスク21等の外部メモリとの間で直接デー
タを転送するものである。
ト(MB)の記憶容量を有し、インターフェイス20を
介してデータ及びアドレスバス25に接続されている。
キャッシュRAM22は数メガバイトの記憶容量を有
し、ハードディスク21へのアクセスタイムを大幅に短
縮するものである。アドレス変換回路19は読み出しア
ドレスがキャッシュRAM22に存在するかどうかを判
定し、存在する場合にはその読み出しアドレスをキャッ
シュRAM22のアドレスに変換する。DMA装置18
はCPU10を介さないで、RAM12等の内部メモリ
とハードディスク21等の外部メモリとの間で直接デー
タを転送するものである。
【0015】図1は、ハードディスク21上に記憶され
ている演奏データの内容を示す図である。まず、ハード
ディスク21は予約領域(ブートセクタ)、ファイルア
ロケーションテーブル(FAT:File Alloc
ation Table)、データボリュームテーブル
(DVT:Data Volume Table)、デ
ィレクトリ領域(DIR)及びデータ記憶領域の5つの
領域に分割されている。予約領域は、従来と同様にブー
トプログラムを格納している。ファイルアロケーション
テーブルFATは、従来と同様にファイルやサブディレ
クトリがディスク上のどこのクラスタを使用している
か、また、そのクラスタの連結状態や未使用クラスタの
位置、不良クラスタの位置等のようなディスクの使用状
態に関する情報を記憶したテーブルである。
ている演奏データの内容を示す図である。まず、ハード
ディスク21は予約領域(ブートセクタ)、ファイルア
ロケーションテーブル(FAT:File Alloc
ation Table)、データボリュームテーブル
(DVT:Data Volume Table)、デ
ィレクトリ領域(DIR)及びデータ記憶領域の5つの
領域に分割されている。予約領域は、従来と同様にブー
トプログラムを格納している。ファイルアロケーション
テーブルFATは、従来と同様にファイルやサブディレ
クトリがディスク上のどこのクラスタを使用している
か、また、そのクラスタの連結状態や未使用クラスタの
位置、不良クラスタの位置等のようなディスクの使用状
態に関する情報を記憶したテーブルである。
【0016】データボリュームテーブルDVTはFAT
で特定されるクラスタに記憶されている有効データの大
きさを示すデータを記憶したテーブルである。ディレク
トリ領域DIRは、従来と同様にルートディレクトリに
相当するものであり、複数のディレクトリエントリを記
憶している。ディレクトリエントリはファイル名、ファ
イル拡張子、ファイルの属性、ファイルの作成日時、フ
ァイルのスタートクラスタ番号SC、ファイルの大きさ
を示すファイルサイズFS及びその他のデータで構成さ
れている。データ記憶領域は未使用クラスタ又は使用済
みクラスタの集まりであり、演奏データファイルやサブ
ディレクトリ等に関する実際のデータを格納している。
で特定されるクラスタに記憶されている有効データの大
きさを示すデータを記憶したテーブルである。ディレク
トリ領域DIRは、従来と同様にルートディレクトリに
相当するものであり、複数のディレクトリエントリを記
憶している。ディレクトリエントリはファイル名、ファ
イル拡張子、ファイルの属性、ファイルの作成日時、フ
ァイルのスタートクラスタ番号SC、ファイルの大きさ
を示すファイルサイズFS及びその他のデータで構成さ
れている。データ記憶領域は未使用クラスタ又は使用済
みクラスタの集まりであり、演奏データファイルやサブ
ディレクトリ等に関する実際のデータを格納している。
【0017】なお、この実施例では、1クラスタのサイ
ズが512バイトで構成され、ディレクトリエントリ1
のスタートクラスタSCが0002、ファイルサイズF
Sが2000バイトの場合を例に説明する。MS−DO
Sと同様にFATのクラスタ番号CN=0000、00
01には対応するFATはエントリされておらず、クラ
スタ番号CN=0002からFATのエントリが始まる
ようになっている。
ズが512バイトで構成され、ディレクトリエントリ1
のスタートクラスタSCが0002、ファイルサイズF
Sが2000バイトの場合を例に説明する。MS−DO
Sと同様にFATのクラスタ番号CN=0000、00
01には対応するFATはエントリされておらず、クラ
スタ番号CN=0002からFATのエントリが始まる
ようになっている。
【0018】FATのクラスタ番号CN=0002には
FAT0=0003がエントリされ、次のクラスタ番号
CNが0003であることを示している。以下、クラス
タ番号CN=0003にはFAT1=0004が、クラ
スタ番号CN=0004にはFAT2=0005が、ク
ラスタ番号CN=0005にはFAT3=0006が、
クラスタ番号CN=0006にはFAT4=0007
が、クラスタ番号CN=0007にはFAT5=n+1
が、クラスタ番号CN=n+1にはFATn−1=FF
FFがそれぞれエントリされている。従って、これらの
クラスタ番号CNに応じてデータ記憶領域からデータを
順番に読み出すことによってディレクトリエントリ1で
特定されるファイルを構成することができる。なお、こ
こでエントリされているFATの中でFFFFは、MS
−DOSと同様にファイルやサブディレクトリを構成す
るクラスタのうちで,いちばん最後のものであることを
示している。
FAT0=0003がエントリされ、次のクラスタ番号
CNが0003であることを示している。以下、クラス
タ番号CN=0003にはFAT1=0004が、クラ
スタ番号CN=0004にはFAT2=0005が、ク
ラスタ番号CN=0005にはFAT3=0006が、
クラスタ番号CN=0006にはFAT4=0007
が、クラスタ番号CN=0007にはFAT5=n+1
が、クラスタ番号CN=n+1にはFATn−1=FF
FFがそれぞれエントリされている。従って、これらの
クラスタ番号CNに応じてデータ記憶領域からデータを
順番に読み出すことによってディレクトリエントリ1で
特定されるファイルを構成することができる。なお、こ
こでエントリされているFATの中でFFFFは、MS
−DOSと同様にファイルやサブディレクトリを構成す
るクラスタのうちで,いちばん最後のものであることを
示している。
【0019】DVTのクラスタ番号CN=0002には
DVT0=200がエントリされ、このクラスタに記憶
されている有効データの大きさが200バイトであるこ
とを示している。以下、クラスタ番号CN=0003に
はDVT1=300が、クラスタ番号CN=0004に
はDVT2=100が、クラスタ番号CN=0005に
はDVT3=512が、クラスタ番号CN=0006に
はDVT4=400が、クラスタ番号CN=0007に
はDVT5=300が、クラスタ番号CN=n+1には
DVTn−1=188がそれぞれエントリされている。
この DVTで示される有効データを全て足すと、ファ
イルサイズFSと同じ2000バイトとなる。
DVT0=200がエントリされ、このクラスタに記憶
されている有効データの大きさが200バイトであるこ
とを示している。以下、クラスタ番号CN=0003に
はDVT1=300が、クラスタ番号CN=0004に
はDVT2=100が、クラスタ番号CN=0005に
はDVT3=512が、クラスタ番号CN=0006に
はDVT4=400が、クラスタ番号CN=0007に
はDVT5=300が、クラスタ番号CN=n+1には
DVTn−1=188がそれぞれエントリされている。
この DVTで示される有効データを全て足すと、ファ
イルサイズFSと同じ2000バイトとなる。
【0020】DVTを参照することによって、そのクラ
スタに記憶可能なデータの大きさ(余裕領域)を認識す
ることができる。すなわち、クラスタ番号CN=000
2には312バイト、クラスタ番号CN=0003には
212バイト、クラスタ番号CN=0004には412
バイト、クラスタ番号CN=0006には112バイ
ト、クラスタ番号CN=0007には212バイト、ク
ラスタ番号CN=n+1には324バイトの余裕領域が
存在し、クラスタ番号CN=0005には記憶可能な余
裕領域は存在しない。
スタに記憶可能なデータの大きさ(余裕領域)を認識す
ることができる。すなわち、クラスタ番号CN=000
2には312バイト、クラスタ番号CN=0003には
212バイト、クラスタ番号CN=0004には412
バイト、クラスタ番号CN=0006には112バイ
ト、クラスタ番号CN=0007には212バイト、ク
ラスタ番号CN=n+1には324バイトの余裕領域が
存在し、クラスタ番号CN=0005には記憶可能な余
裕領域は存在しない。
【0021】図6(a)は、図1のディレクトリ1のフ
ァイルのデータ記憶領域における有効データの大きさを
各クラスタ番号毎に棒グラフ形式で示した概念図であ
る。このように構成されたディレクトリ1のファイルの
クラスタ番号0003の100バイト目(図6(a)の
矢印DAの位置)に約300バイト程度のデータを挿入
する場合について説明する。図6(a)において、矢印
DAの左側に存在する斜線網掛け部分はデータ挿入位置
よりも前に存在するデータを、矢印DAの右側に存在す
る横線網掛け部分はデータ挿入位置よりも後に存在する
データを示す。従って、斜線網掛け部分よりも前に存在
するデータに関してはその記憶領域は変更する必要はな
いが、横線網掛け部分以降のデータは記憶領域を適宜変
更する必要がある。以下、記憶領域を変更する場合の例
を図面を用いて説明する。
ァイルのデータ記憶領域における有効データの大きさを
各クラスタ番号毎に棒グラフ形式で示した概念図であ
る。このように構成されたディレクトリ1のファイルの
クラスタ番号0003の100バイト目(図6(a)の
矢印DAの位置)に約300バイト程度のデータを挿入
する場合について説明する。図6(a)において、矢印
DAの左側に存在する斜線網掛け部分はデータ挿入位置
よりも前に存在するデータを、矢印DAの右側に存在す
る横線網掛け部分はデータ挿入位置よりも後に存在する
データを示す。従って、斜線網掛け部分よりも前に存在
するデータに関してはその記憶領域は変更する必要はな
いが、横線網掛け部分以降のデータは記憶領域を適宜変
更する必要がある。以下、記憶領域を変更する場合の例
を図面を用いて説明する。
【0022】まず、第1の例として、図6(b)に示す
ように、クラスタ番号CN=0003の100バイトの
データ(斜線網掛け部分)に関してはそのままクラスタ
番号CN=0003のデータ記憶領域に残し、200バ
イトの残りデータ(横線網掛け部分)に関してはクラス
タ番号CN=0008を新たなデータ記憶領域として、
記憶する。そして、約300バイトの挿入データ(格子
網掛け部分)に関してはクラスタ番号CN=0009を
新たなデータ記憶領域として、記憶する
ように、クラスタ番号CN=0003の100バイトの
データ(斜線網掛け部分)に関してはそのままクラスタ
番号CN=0003のデータ記憶領域に残し、200バ
イトの残りデータ(横線網掛け部分)に関してはクラス
タ番号CN=0008を新たなデータ記憶領域として、
記憶する。そして、約300バイトの挿入データ(格子
網掛け部分)に関してはクラスタ番号CN=0009を
新たなデータ記憶領域として、記憶する
【0023】従って、図6(b)のようなデータ挿入に
よってFAT、DVT及びデータ記憶領域の内容がそれ
ぞれ書き換えられるが、実際に書き換えられるのはクラ
スタ番号CN=0003、0008及び0009に対応
するFAT、DVT及びデータ記憶領域である。図3は
その書き換えられたFAT及びDVTの内容を示す図で
ある。すなわち、クラスタ番号CN=0003において
は、100バイトのデータ(斜線網掛け部分)はそのま
まクラスタ番号CN=0003のデータ記憶領域に残さ
れるので、DVT1が300から100に変更される。
これによって、クラスタ番号CN=0003のデータ記
憶領域の内容を書き換える必要はない。また、クラスタ
番号CN=0003に続くデータはクラスタ番号CN=
0009のデータ記憶領域に記憶された約300バイト
の挿入データ(格子網掛け部分)なので、FAT1が0
004から0009に変更される。
よってFAT、DVT及びデータ記憶領域の内容がそれ
ぞれ書き換えられるが、実際に書き換えられるのはクラ
スタ番号CN=0003、0008及び0009に対応
するFAT、DVT及びデータ記憶領域である。図3は
その書き換えられたFAT及びDVTの内容を示す図で
ある。すなわち、クラスタ番号CN=0003において
は、100バイトのデータ(斜線網掛け部分)はそのま
まクラスタ番号CN=0003のデータ記憶領域に残さ
れるので、DVT1が300から100に変更される。
これによって、クラスタ番号CN=0003のデータ記
憶領域の内容を書き換える必要はない。また、クラスタ
番号CN=0003に続くデータはクラスタ番号CN=
0009のデータ記憶領域に記憶された約300バイト
の挿入データ(格子網掛け部分)なので、FAT1が0
004から0009に変更される。
【0024】クラスタ番号CN=0008においては、
200バイトの残りデータ(横線網掛け部分)がクラス
タ番号CN=0008のデータ記憶領域に記憶されるの
で、DVT6には200が記憶される。また、クラスタ
番号CN=0008に続くデータは、クラスタ番号CN
=0004のデータなので、FAT6には0004が記
憶される。クラスタ番号CN=0009においては、約
300バイトの挿入データ(格子網掛け部分)がクラス
タ番号CN=0009のデータ記憶領域に記憶されるの
で、DVT7には300が記憶される。また、クラスタ
番号CN=0009に続くデータは、クラスタ番号CN
=0008のデータ記憶領域に記憶された200バイト
の残りデータ(横線網掛け部分)なので、FAT7には
0008が記憶される。以上のように第1の例によれ
ば、データの挿入に伴って3つのクラスタ番号CN=0
003、0008及び0009に対応するFAT、DV
T及びデータ記憶領域内のデータを書き換えるだけでよ
い。なお、クラスタ番号CN=0003のデータ記憶領
域に関しては前述のようにDVTを書き換えるだけでよ
く、実際にデータ記憶領域内のデータを書き換える必要
はない。
200バイトの残りデータ(横線網掛け部分)がクラス
タ番号CN=0008のデータ記憶領域に記憶されるの
で、DVT6には200が記憶される。また、クラスタ
番号CN=0008に続くデータは、クラスタ番号CN
=0004のデータなので、FAT6には0004が記
憶される。クラスタ番号CN=0009においては、約
300バイトの挿入データ(格子網掛け部分)がクラス
タ番号CN=0009のデータ記憶領域に記憶されるの
で、DVT7には300が記憶される。また、クラスタ
番号CN=0009に続くデータは、クラスタ番号CN
=0008のデータ記憶領域に記憶された200バイト
の残りデータ(横線網掛け部分)なので、FAT7には
0008が記憶される。以上のように第1の例によれ
ば、データの挿入に伴って3つのクラスタ番号CN=0
003、0008及び0009に対応するFAT、DV
T及びデータ記憶領域内のデータを書き換えるだけでよ
い。なお、クラスタ番号CN=0003のデータ記憶領
域に関しては前述のようにDVTを書き換えるだけでよ
く、実際にデータ記憶領域内のデータを書き換える必要
はない。
【0025】次に、第2の例として、図6(c)に示す
ように、クラスタ番号CN=0003の100バイトの
データ(斜線網掛け部分)に関してはそのままクラスタ
番号CN=0003のデータ記憶領域に残し、その後に
約300バイトの挿入データ(格子網掛け部分)を記憶
する。そして、200バイトの残りデータ(横線網掛け
部分)に関してはクラスタ番号CN=0008を新たな
データ記憶領域として記憶する。
ように、クラスタ番号CN=0003の100バイトの
データ(斜線網掛け部分)に関してはそのままクラスタ
番号CN=0003のデータ記憶領域に残し、その後に
約300バイトの挿入データ(格子網掛け部分)を記憶
する。そして、200バイトの残りデータ(横線網掛け
部分)に関してはクラスタ番号CN=0008を新たな
データ記憶領域として記憶する。
【0026】従って、図6(c)のようなデータ挿入に
よってFAT、DVT及びデータ記憶領域の内容がそれ
ぞれ書き換えられるが、実際に書き換えられるのはクラ
スタ番号CN=0003及び0008に対応するFA
T、DVT及びデータ記憶領域である。図4はその書き
換えられたFAT及びDVTの内容を示す図である。す
なわち、クラスタ番号CN=0003においては、10
0バイトのデータ(斜線網掛け部分)はそのままクラス
タ番号CN=0003のデータ記憶領域に残され、その
後に約300バイトの挿入データ(格子網掛け部分)が
記憶されるので、DVT1は300から400に変更さ
れると共にそのデータ記憶領域のデータも書き換えられ
る。また、クラスタ番号CN=0003に続くデータは
クラスタ番号CN=0008のデータ記憶領域に記憶さ
れた200バイトの残りデータ(横線網掛け部分)なの
で、FAT1が0004から0008に変更される。
よってFAT、DVT及びデータ記憶領域の内容がそれ
ぞれ書き換えられるが、実際に書き換えられるのはクラ
スタ番号CN=0003及び0008に対応するFA
T、DVT及びデータ記憶領域である。図4はその書き
換えられたFAT及びDVTの内容を示す図である。す
なわち、クラスタ番号CN=0003においては、10
0バイトのデータ(斜線網掛け部分)はそのままクラス
タ番号CN=0003のデータ記憶領域に残され、その
後に約300バイトの挿入データ(格子網掛け部分)が
記憶されるので、DVT1は300から400に変更さ
れると共にそのデータ記憶領域のデータも書き換えられ
る。また、クラスタ番号CN=0003に続くデータは
クラスタ番号CN=0008のデータ記憶領域に記憶さ
れた200バイトの残りデータ(横線網掛け部分)なの
で、FAT1が0004から0008に変更される。
【0027】クラスタ番号CN=0008においては、
200バイトの残りデータ(横線網掛け部分)がクラス
タ番号CN=0008のデータ記憶領域に記憶されるの
で、DVT6には200が記憶される。また、クラスタ
番号CN=0008に続くデータは、クラスタ番号CN
=0004のデータなので、FAT6には0004が記
憶される。以上のように第2の例によれば、データの挿
入に伴って2つのクラスタ番号CN=0003及び00
08に対応するFAT、DVT及びデータ記憶領域内の
データを書き換えるだけでよい。
200バイトの残りデータ(横線網掛け部分)がクラス
タ番号CN=0008のデータ記憶領域に記憶されるの
で、DVT6には200が記憶される。また、クラスタ
番号CN=0008に続くデータは、クラスタ番号CN
=0004のデータなので、FAT6には0004が記
憶される。以上のように第2の例によれば、データの挿
入に伴って2つのクラスタ番号CN=0003及び00
08に対応するFAT、DVT及びデータ記憶領域内の
データを書き換えるだけでよい。
【0028】次に、第3の例として、図6(d)に示す
ように、クラスタ番号CN=0003の100バイトの
データ(斜線網掛け部分)に関してはそのままクラスタ
番号CN=0003のデータ記憶領域に残し、その後に
約300バイトの挿入データ(格子網掛け部分)を記憶
する。そして、200バイトの残りデータ(横線網掛け
部分)に関してはクラスタ番号CN=0004に記憶可
能なので、そこを新たなデータ記憶領域として記憶す
る。図5は書き換えられなかったFATと書き換えられ
たDVTとの内容を示す図である。すなわち、FATは
書き換えられていないので、図1のFATと同じであ
る。
ように、クラスタ番号CN=0003の100バイトの
データ(斜線網掛け部分)に関してはそのままクラスタ
番号CN=0003のデータ記憶領域に残し、その後に
約300バイトの挿入データ(格子網掛け部分)を記憶
する。そして、200バイトの残りデータ(横線網掛け
部分)に関してはクラスタ番号CN=0004に記憶可
能なので、そこを新たなデータ記憶領域として記憶す
る。図5は書き換えられなかったFATと書き換えられ
たDVTとの内容を示す図である。すなわち、FATは
書き換えられていないので、図1のFATと同じであ
る。
【0029】図6(d)のようなデータ挿入によってD
VT及びデータ記憶領域の内容がそれぞれ書き換えられ
るが、実際に書き換えられるのはクラスタ番号CN=0
003及び0004に対応するDVT及びデータ記憶領
域である。すなわち、クラスタ番号CN=0003にお
いては、100バイトのデータ(斜線網掛け部分)はそ
のままクラスタ番号CN=0003のデータ記憶領域に
残され、その後に続いて約300バイトの挿入データ
(格子網掛け部分)が記憶されるので、DVT1は30
0から400に変更される。また、クラスタ番号CN=
0003に続くデータはクラスタ番号CN=0004の
データ記憶領域に記憶された200バイトの残りデータ
(横線網掛け部分)なので、FAT1は書き換えられな
い。
VT及びデータ記憶領域の内容がそれぞれ書き換えられ
るが、実際に書き換えられるのはクラスタ番号CN=0
003及び0004に対応するDVT及びデータ記憶領
域である。すなわち、クラスタ番号CN=0003にお
いては、100バイトのデータ(斜線網掛け部分)はそ
のままクラスタ番号CN=0003のデータ記憶領域に
残され、その後に続いて約300バイトの挿入データ
(格子網掛け部分)が記憶されるので、DVT1は30
0から400に変更される。また、クラスタ番号CN=
0003に続くデータはクラスタ番号CN=0004の
データ記憶領域に記憶された200バイトの残りデータ
(横線網掛け部分)なので、FAT1は書き換えられな
い。
【0030】クラスタ番号CN=0004においては、
200バイトの残りデータ(横線網掛け部分)が先頭か
ら順番に記憶され、その後に続いてクラスタ番号CN=
0004に以前から記憶されていた100バイトのデー
タ(縦線網掛け部分)が記憶されるので、DVT2には
300が記憶される。また、クラスタ番号CN=000
4に続くデータは、クラスタ番号CN=0005のデー
タなので、FAT2は書き換えられない。以上のように
第3の例によれば、データの挿入に伴って2つのクラス
タ番号CN=0003及び0004に対応するDVT及
びデータ記憶領域内のデータを書き換えるだけでよく、
FATの書換えを行う必要はない。
200バイトの残りデータ(横線網掛け部分)が先頭か
ら順番に記憶され、その後に続いてクラスタ番号CN=
0004に以前から記憶されていた100バイトのデー
タ(縦線網掛け部分)が記憶されるので、DVT2には
300が記憶される。また、クラスタ番号CN=000
4に続くデータは、クラスタ番号CN=0005のデー
タなので、FAT2は書き換えられない。以上のように
第3の例によれば、データの挿入に伴って2つのクラス
タ番号CN=0003及び0004に対応するDVT及
びデータ記憶領域内のデータを書き換えるだけでよく、
FATの書換えを行う必要はない。
【0031】なお、上記第2及び第3の例は、1クラス
タ当たりの記憶容量、既に記憶済みの有効データの大き
さ及び挿入データの大きさに依存するので、これらの値
を考慮し、上記第1から第3の例を適宜組み合わせて最
適なデータ配置を行うようにすればよい。
タ当たりの記憶容量、既に記憶済みの有効データの大き
さ及び挿入データの大きさに依存するので、これらの値
を考慮し、上記第1から第3の例を適宜組み合わせて最
適なデータ配置を行うようにすればよい。
【0032】次に、ディレクトリ1のファイルのクラス
タ番号CN=0002の100バイト目(図9(a)の
矢印DA1の位置)からクラスタ番号CN=0004の
50バイト目(図9(a)の矢印DA2の位置)までの
450バイト程度のデータを削除する場合について説明
する。図9(a)において、クラスタ番号CN=000
2の矢印DA1の左側に存在する斜線網掛け部分は削除
されないデータを、矢印DA1の右側に存在する横線網
掛け部分は削除されるデータを示す。同様にクラスタ番
号CN=0003の横線網掛け部分は削除されるデータ
を、クラスタ番号CN=0004の矢印DA2の左側に
存在する横線網掛け部分は削除されるデータを、矢印D
A2の右側に存在する斜線網掛け部分は削除されないデ
ータを示す。従って、横線網掛け部分の存在するデータ
に関しては、データ削除によって記憶領域が変更する。
以下、記憶領域を変更する場合を図面を用いて説明す
る。
タ番号CN=0002の100バイト目(図9(a)の
矢印DA1の位置)からクラスタ番号CN=0004の
50バイト目(図9(a)の矢印DA2の位置)までの
450バイト程度のデータを削除する場合について説明
する。図9(a)において、クラスタ番号CN=000
2の矢印DA1の左側に存在する斜線網掛け部分は削除
されないデータを、矢印DA1の右側に存在する横線網
掛け部分は削除されるデータを示す。同様にクラスタ番
号CN=0003の横線網掛け部分は削除されるデータ
を、クラスタ番号CN=0004の矢印DA2の左側に
存在する横線網掛け部分は削除されるデータを、矢印D
A2の右側に存在する斜線網掛け部分は削除されないデ
ータを示す。従って、横線網掛け部分の存在するデータ
に関しては、データ削除によって記憶領域が変更する。
以下、記憶領域を変更する場合を図面を用いて説明す
る。
【0033】まず、図9(a)に示すように、クラスタ
番号CN=0002の100バイトのデータ(横線網掛
け部分)、クラスタ番号CN=0003の300バイト
のデータ(横線網掛け部分)及びクラスタ番号CN=0
004の50バイトのデータ(横線網掛け部分)をその
まま削除し、各クラスタに残ったデータ(斜線網掛け部
分)をそのクラスタのデータとしてデータ記憶領域に記
憶する。
番号CN=0002の100バイトのデータ(横線網掛
け部分)、クラスタ番号CN=0003の300バイト
のデータ(横線網掛け部分)及びクラスタ番号CN=0
004の50バイトのデータ(横線網掛け部分)をその
まま削除し、各クラスタに残ったデータ(斜線網掛け部
分)をそのクラスタのデータとしてデータ記憶領域に記
憶する。
【0034】従って、図9(b)のようなデータ削除に
よってFAT、DVT及びデータ記憶領域の内容がそれ
ぞれ書き換えられるが、実際に書き換えられるのはクラ
スタ番号CN=0002、0003に対応するFAT及
びDVTと、クラスタ番号CN=0004に対応するD
VT及びデータ記憶領域である。図7はその書き換えら
れたFAT及びDVTの内容を示す図である。すなわ
ち、クラスタ番号CN=0002においては、100バ
イトのデータ(斜線網掛け部分)はそのままクラスタ番
号CN=0002のデータ記憶領域に残されるので、D
VT1は200から100に変更されるだけであり、デ
ータ記憶領域の書き換えは行われない。また、クラスタ
番号CN=0002に続くデータはクラスタ番号CN=
0004のデータ記憶領域に記憶される50バイトのデ
ータ(斜線網掛け部分)なので、FAT0は0003か
ら0004に書き換えられる。
よってFAT、DVT及びデータ記憶領域の内容がそれ
ぞれ書き換えられるが、実際に書き換えられるのはクラ
スタ番号CN=0002、0003に対応するFAT及
びDVTと、クラスタ番号CN=0004に対応するD
VT及びデータ記憶領域である。図7はその書き換えら
れたFAT及びDVTの内容を示す図である。すなわ
ち、クラスタ番号CN=0002においては、100バ
イトのデータ(斜線網掛け部分)はそのままクラスタ番
号CN=0002のデータ記憶領域に残されるので、D
VT1は200から100に変更されるだけであり、デ
ータ記憶領域の書き換えは行われない。また、クラスタ
番号CN=0002に続くデータはクラスタ番号CN=
0004のデータ記憶領域に記憶される50バイトのデ
ータ(斜線網掛け部分)なので、FAT0は0003か
ら0004に書き換えられる。
【0035】クラスタ番号CN=0003においては、
300バイトの有効データ(横線網掛け部分)が全て削
除されるので、DVT1は000に書き換えられ、有効
データが存在しないことを示すようになる。また、クラ
スタ番号CN=0003に続くデータは存在しなくなる
ので、FAT6も0000に書き換えられる。クラスタ
番号CN=0004においては、50バイトのデータ
(斜線網掛け部分)はそのままクラスタ番号CN=00
04のデータ記憶領域に残されるので、DVT2は10
0から50に書き換えられ、同時に対応するデータ記憶
領域も50バイトのデータ(斜線網掛け部分)に書き換
えられる。また、クラスタ番号CN=0004に続くデ
ータはクラスタ番号CN=0005のデータ記憶領域に
記憶された512バイトのデータなので、FAT2は0
005のまま書き換えられない。以上のように、データ
が削除された場合でも、その削除に対応した3つのクラ
スタ番号CN=0002、0003及び0004のFA
T、DVT及びデータ記憶領域内のデータを変更するだ
けでよい。なお、クラスタ番号CN=0003に関して
はFATだけを0000に書き換え、DVTの大きさは
そのままにしてもよい。なぜなら、FATが書き換えら
れたことによってDVTの大きさは意味を持たなくなる
からである。
300バイトの有効データ(横線網掛け部分)が全て削
除されるので、DVT1は000に書き換えられ、有効
データが存在しないことを示すようになる。また、クラ
スタ番号CN=0003に続くデータは存在しなくなる
ので、FAT6も0000に書き換えられる。クラスタ
番号CN=0004においては、50バイトのデータ
(斜線網掛け部分)はそのままクラスタ番号CN=00
04のデータ記憶領域に残されるので、DVT2は10
0から50に書き換えられ、同時に対応するデータ記憶
領域も50バイトのデータ(斜線網掛け部分)に書き換
えられる。また、クラスタ番号CN=0004に続くデ
ータはクラスタ番号CN=0005のデータ記憶領域に
記憶された512バイトのデータなので、FAT2は0
005のまま書き換えられない。以上のように、データ
が削除された場合でも、その削除に対応した3つのクラ
スタ番号CN=0002、0003及び0004のFA
T、DVT及びデータ記憶領域内のデータを変更するだ
けでよい。なお、クラスタ番号CN=0003に関して
はFATだけを0000に書き換え、DVTの大きさは
そのままにしてもよい。なぜなら、FATが書き換えら
れたことによってDVTの大きさは意味を持たなくなる
からである。
【0036】なお、削除の場合には削除されたクラスタ
のデータは小さくなるので、図9(b)のように小さな
まま記憶しておくのではなく、小さなデータ同士を結合
して1つのクラスタ内に記憶してもよい。例えば、図9
(a)と同じように削除する場合、各クラスタに残った
データ(斜線網掛け部分)をクラスタ番号CN=000
4のデータ記憶領域に記憶する。この場合、FAT及び
DVTは図8のように書き換えられる。すなわち、クラ
スタ番号CN=0002においては、100バイトのデ
ータ(斜線網掛け部分)はクラスタ番号CN=0004
のデータ記憶領域に記憶されるので、DVT1には00
0が記憶され、FAT0には0000が記憶される。
のデータは小さくなるので、図9(b)のように小さな
まま記憶しておくのではなく、小さなデータ同士を結合
して1つのクラスタ内に記憶してもよい。例えば、図9
(a)と同じように削除する場合、各クラスタに残った
データ(斜線網掛け部分)をクラスタ番号CN=000
4のデータ記憶領域に記憶する。この場合、FAT及び
DVTは図8のように書き換えられる。すなわち、クラ
スタ番号CN=0002においては、100バイトのデ
ータ(斜線網掛け部分)はクラスタ番号CN=0004
のデータ記憶領域に記憶されるので、DVT1には00
0が記憶され、FAT0には0000が記憶される。
【0037】クラスタ番号CN=0003においては、
300バイトの有効データ(横線網掛け部分)が全て削
除されるので、DVT1には000が記憶され、FAT
6にも0000が記憶される。クラスタ番号CN=00
04においては、クラスタ番号CN=0002の100
バイトのデータ(斜線網掛け部分)が記憶され、それに
続いて50バイトのデータ(斜線網掛け部分)がそのま
まクラスタ番号CN=0004のデータ記憶領域に記憶
されるので、DVT2は100から150に書き換えら
れ、クラスタ番号CN=0004に続くデータはクラス
タ番号CN=0005のデータ記憶領域に記憶された5
12バイトのデータなので、FAT2は0005のまま
書換えられない。このように削除された場合に発生する
小さなデータ同士を結合して1つのクラスタ内に記憶す
ることによって、記憶容量の有効利用を図ることができ
る。
300バイトの有効データ(横線網掛け部分)が全て削
除されるので、DVT1には000が記憶され、FAT
6にも0000が記憶される。クラスタ番号CN=00
04においては、クラスタ番号CN=0002の100
バイトのデータ(斜線網掛け部分)が記憶され、それに
続いて50バイトのデータ(斜線網掛け部分)がそのま
まクラスタ番号CN=0004のデータ記憶領域に記憶
されるので、DVT2は100から150に書き換えら
れ、クラスタ番号CN=0004に続くデータはクラス
タ番号CN=0005のデータ記憶領域に記憶された5
12バイトのデータなので、FAT2は0005のまま
書換えられない。このように削除された場合に発生する
小さなデータ同士を結合して1つのクラスタ内に記憶す
ることによって、記憶容量の有効利用を図ることができ
る。
【0038】次に、CPU10によって実行される図2
の電子楽器の処理の一例を図10〜図18のフローチャ
ートに基づいて説明する。図10はCPU10が処理す
るメインルーチンの一例を示すフローチャート図であ
る。以下、メインルーチンの処理をステップ順に説明す
る。 ステップ31:まず、電源が投入されると、CPU10
はROM11に格納されている制御プログラムに応じた
処理を開始し、RAM12内の各種レジスタ及びフラグ
等を初期設定する。 ステップ32:鍵盤13の各鍵の操作状態に応じた鍵処
理を行う。 ステップ33:パネルスイッチ14上の各スイッチの操
作状態に応じたパネル処理を行う。ここでは、例えば、
動作モードの設定等が行われる。
の電子楽器の処理の一例を図10〜図18のフローチャ
ートに基づいて説明する。図10はCPU10が処理す
るメインルーチンの一例を示すフローチャート図であ
る。以下、メインルーチンの処理をステップ順に説明す
る。 ステップ31:まず、電源が投入されると、CPU10
はROM11に格納されている制御プログラムに応じた
処理を開始し、RAM12内の各種レジスタ及びフラグ
等を初期設定する。 ステップ32:鍵盤13の各鍵の操作状態に応じた鍵処
理を行う。 ステップ33:パネルスイッチ14上の各スイッチの操
作状態に応じたパネル処理を行う。ここでは、例えば、
動作モードの設定等が行われる。
【0039】ステップ34:現在設定されている動作モ
ードが何であるか、動作モードレジスタの格納値を読み
出し、それに応じた処理を選択して処理する。動作モー
ドレジスタの格納値が『0』の場合にはステップ35に
進みサンプリング処理を、『1』の場合にはステップ3
6に進み波形エディット&加工処理を、『2』の場合に
はステップ37に進み音色作成処理を、『3』の場合に
はステップ38に進みその他の処理を実行する。 ステップ35:マイク23から入力されるデジタル信号
を所定時間毎にサンプリングして波形データ等の演奏デ
ータを作成する。 ステップ36:サンプリング処理によって得られた波形
データやハードディスク21から読み出された波形デー
タ等に対して種々のエディットや加工を行ったりする。 ステップ37:サンプリング処理によって得られた波形
データやハードディスク21から読み出された波形デー
タに基づいて新たな音色の音色データを作成したり、既
に作成済みの音色データを修正したりする。 ステップ38:その他の操作子の操作に基づく処理や、
その他の種々の処理を行う。
ードが何であるか、動作モードレジスタの格納値を読み
出し、それに応じた処理を選択して処理する。動作モー
ドレジスタの格納値が『0』の場合にはステップ35に
進みサンプリング処理を、『1』の場合にはステップ3
6に進み波形エディット&加工処理を、『2』の場合に
はステップ37に進み音色作成処理を、『3』の場合に
はステップ38に進みその他の処理を実行する。 ステップ35:マイク23から入力されるデジタル信号
を所定時間毎にサンプリングして波形データ等の演奏デ
ータを作成する。 ステップ36:サンプリング処理によって得られた波形
データやハードディスク21から読み出された波形デー
タ等に対して種々のエディットや加工を行ったりする。 ステップ37:サンプリング処理によって得られた波形
データやハードディスク21から読み出された波形デー
タに基づいて新たな音色の音色データを作成したり、既
に作成済みの音色データを修正したりする。 ステップ38:その他の操作子の操作に基づく処理や、
その他の種々の処理を行う。
【0040】図11はCPU10によって処理される図
10のサンプリング処理の詳細を示すフローチャート図
である。このサンプリング処理ではマイク23から入力
されるデジタル信号を所定時間毎にサンプリングして波
形データ等の演奏データを作成し、ハードディスク21
順次記憶していく。以下、このサンプリング処理をステ
ップ順に説明する。
10のサンプリング処理の詳細を示すフローチャート図
である。このサンプリング処理ではマイク23から入力
されるデジタル信号を所定時間毎にサンプリングして波
形データ等の演奏データを作成し、ハードディスク21
順次記憶していく。以下、このサンプリング処理をステ
ップ順に説明する。
【0041】ステップ41:録音状態フラグRECが
『1』かどうかを判定し、『1』(YES)の場合はス
テップ48に進み、『0』(NO)の場合はステップ4
2に進む。録音状態フラグRECはパネルスイッチ14
上の録音スタートスイッチがオンされた場合に『1』に
セットされ現在録音モードであることを示し、録音スト
ップスイッチがオンされた場合に『0』にリセットされ
る。
『1』かどうかを判定し、『1』(YES)の場合はス
テップ48に進み、『0』(NO)の場合はステップ4
2に進む。録音状態フラグRECはパネルスイッチ14
上の録音スタートスイッチがオンされた場合に『1』に
セットされ現在録音モードであることを示し、録音スト
ップスイッチがオンされた場合に『0』にリセットされ
る。
【0042】ステップ42:前のステップ41で録音状
態フラグRECが『0』と判定されたので、録音スター
トスイッチオンイベントが発生したかどうかを判定し、
スタートスイッチのオンイベントが発生している(YE
S)場合には次のステップ43に進み、そうでない(N
O)場合にはリターンする。
態フラグRECが『0』と判定されたので、録音スター
トスイッチオンイベントが発生したかどうかを判定し、
スタートスイッチのオンイベントが発生している(YE
S)場合には次のステップ43に進み、そうでない(N
O)場合にはリターンする。
【0043】ステップ43:録音状態フラグRECを
『1』にセットし、バッファ変数iを『0』にリセット
する。このステップで録音状態フラグRECが『1』に
セットされると、次回からはステップ41ではYESと
判定されるようになる。ここで、バッファ変数iはRA
M12上に確保された2ブロック分のバッファエリアの
いずれか一方を選択するための変数であり、『0』と
『1』のいずれかの値となる。以下、RAM12上の2
ブロック分のバッファエリアをiBエリア(0Bエリア
と1Bエリア)として表す。
『1』にセットし、バッファ変数iを『0』にリセット
する。このステップで録音状態フラグRECが『1』に
セットされると、次回からはステップ41ではYESと
判定されるようになる。ここで、バッファ変数iはRA
M12上に確保された2ブロック分のバッファエリアの
いずれか一方を選択するための変数であり、『0』と
『1』のいずれかの値となる。以下、RAM12上の2
ブロック分のバッファエリアをiBエリア(0Bエリア
と1Bエリア)として表す。
【0044】ステップ44:ハードディスク21上のこ
れから録音を開始する部分のファイルを準備する。例え
ば、ハードディスク21上のディレクトリ領域を確保
し、そこにファイル名やスタートクラスタ番号等を設定
する。 ステップ45:前のステップ44で準備されたファイル
の最初に録音するクラスタを確保し、そのクラスタ番号
をカレントクラスタレジスタCCに格納する。
れから録音を開始する部分のファイルを準備する。例え
ば、ハードディスク21上のディレクトリ領域を確保
し、そこにファイル名やスタートクラスタ番号等を設定
する。 ステップ45:前のステップ44で準備されたファイル
の最初に録音するクラスタを確保し、そのクラスタ番号
をカレントクラスタレジスタCCに格納する。
【0045】ステップ46:DMA18のチャンネルC
H0の録音転送をスタートさせる。すなわち、DMA1
8は、ADC17からRAM12へのデータ転送を行う
第1チャンネルCH0と、RAM12上のiBエリアと
ハードディスク21との間の相互データ転送を行う第2
チャンネルCH1との2のチャンネルで構成されている
ので、この第1チャンネルCH0に対してデータの録音
転送をスタートさせる。これによって、DAM18は図
12のように、ADC17から出力されるデータをRA
M12のバッファエリアに順次転送する。 ステップ47:表示器15に『録音中』と表示し、現在
録音状態であることを示し、図10のメインルーチンに
リターンする。
H0の録音転送をスタートさせる。すなわち、DMA1
8は、ADC17からRAM12へのデータ転送を行う
第1チャンネルCH0と、RAM12上のiBエリアと
ハードディスク21との間の相互データ転送を行う第2
チャンネルCH1との2のチャンネルで構成されている
ので、この第1チャンネルCH0に対してデータの録音
転送をスタートさせる。これによって、DAM18は図
12のように、ADC17から出力されるデータをRA
M12のバッファエリアに順次転送する。 ステップ47:表示器15に『録音中』と表示し、現在
録音状態であることを示し、図10のメインルーチンに
リターンする。
【0046】ステップ48:前のステップ41で録音状
態フラグRECが『1』と判定されたということは現在
録音中なので、録音ストップスイッチが操作されて、そ
のオンイベントが発生したかどうかを判定し、オンイベ
ントが発生している(YES)場合には次のステップ4
9に進み、そうでない(NO)場合にはリターンする。 ステップ49:録音状態フラグRECを『0』にリセッ
トする。このステップで録音状態フラグRECが『0』
にリセットされると、次回からはステップ41ではNO
と判定されるようになる。
態フラグRECが『1』と判定されたということは現在
録音中なので、録音ストップスイッチが操作されて、そ
のオンイベントが発生したかどうかを判定し、オンイベ
ントが発生している(YES)場合には次のステップ4
9に進み、そうでない(NO)場合にはリターンする。 ステップ49:録音状態フラグRECを『0』にリセッ
トする。このステップで録音状態フラグRECが『0』
にリセットされると、次回からはステップ41ではNO
と判定されるようになる。
【0047】ステップ4A:ステップ46で録音転送処
理を開始したDMA18の第1チャンネルCH0の録音
転送処理(図12のCH0の処理)をストップさせる。
これによって、DAM18の第1チャンネルCH0がA
DC17からRAM12のiBエリアに対してデータ転
送中であっても、データ転送処理は中断される。なお、
この時点では図13の第2チャンネルCH1の録音転送
処理は依然として継続して行われる。
理を開始したDMA18の第1チャンネルCH0の録音
転送処理(図12のCH0の処理)をストップさせる。
これによって、DAM18の第1チャンネルCH0がA
DC17からRAM12のiBエリアに対してデータ転
送中であっても、データ転送処理は中断される。なお、
この時点では図13の第2チャンネルCH1の録音転送
処理は依然として継続して行われる。
【0048】ステップ4B:RAM12のiBエリアに
一時的に格納されているデータ(サンプリングデータ)
をDMA18の第2チャンネルCH1によってハードデ
ィスク21に転送する。 ステップ4C:前ステップ4Bの第2チャンネルCH1
によるデータ転送が完了したかどうかを判定し、完了し
た(YES)場合には次のステップ4Dに進み、そうで
ない(NO)場合はデータ転送が完了するまでこのステ
ップを繰り返し実行して、データ転送が完了するまで待
つ。
一時的に格納されているデータ(サンプリングデータ)
をDMA18の第2チャンネルCH1によってハードデ
ィスク21に転送する。 ステップ4C:前ステップ4Bの第2チャンネルCH1
によるデータ転送が完了したかどうかを判定し、完了し
た(YES)場合には次のステップ4Dに進み、そうで
ない(NO)場合はデータ転送が完了するまでこのステ
ップを繰り返し実行して、データ転送が完了するまで待
つ。
【0049】ステップ4D:最終クラスタに関するデー
タを書き込む。すなわち、最終クラスタのFATにエン
ドデータ(END=FFFF)を格納し、DVTにその
最終クラスタのデータ容量を格納する。 ステップ4E:録音されたデータの全データ量、録音日
等の関連するデータを書き込む。 ステップ4F:表示器15に『録音終了』と表示し、現
在録音停止状態であることを示し、図10のメインルー
チンにリターンする。
タを書き込む。すなわち、最終クラスタのFATにエン
ドデータ(END=FFFF)を格納し、DVTにその
最終クラスタのデータ容量を格納する。 ステップ4E:録音されたデータの全データ量、録音日
等の関連するデータを書き込む。 ステップ4F:表示器15に『録音終了』と表示し、現
在録音停止状態であることを示し、図10のメインルー
チンにリターンする。
【0050】図12及び図13はDMA18が行うデー
タ転送処理の一例を示すフローチャート図であり、図1
2はDMA18の第1チャンネルCH0が行うデータ転
送処理であり、図13はDMA18の第2チャンネルC
H1が行うデータ転送処理である。以下、このDMA1
8が行うデータ転送処理をステップ順に説明する。
タ転送処理の一例を示すフローチャート図であり、図1
2はDMA18の第1チャンネルCH0が行うデータ転
送処理であり、図13はDMA18の第2チャンネルC
H1が行うデータ転送処理である。以下、このDMA1
8が行うデータ転送処理をステップ順に説明する。
【0051】ステップ51:サンプリングクロックが発
生したかどうかを判定し、発生した(YES)場合は次
のステップ52に進み、発生していない(NO)場合は
リターンする。 ステップ52:ADC17からRAM12のiBエリア
に1つのデータを転送する。 ステップ53:RAM12のiBエリアが満杯になった
かどうかを判定し、満杯(YES)の場合は次のステッ
プ54に進み、そうでない(NO)場合はリターンし
て、ステップ51〜53の処理を繰り返し実行し、サン
プリングクロック毎にADC17からRAM12へデー
タを転送する。
生したかどうかを判定し、発生した(YES)場合は次
のステップ52に進み、発生していない(NO)場合は
リターンする。 ステップ52:ADC17からRAM12のiBエリア
に1つのデータを転送する。 ステップ53:RAM12のiBエリアが満杯になった
かどうかを判定し、満杯(YES)の場合は次のステッ
プ54に進み、そうでない(NO)場合はリターンし
て、ステップ51〜53の処理を繰り返し実行し、サン
プリングクロック毎にADC17からRAM12へデー
タを転送する。
【0052】ステップ54:バッファ変数iを反転す
る。すなわち、バッファ変数iが『0』の場合には
『1』に、『1』の場合には『0』にする。これによっ
て、iBエリアは交互にデータが書き込まれるようにな
る。 ステップ55:DMA18の第2チャンネルCH1に対
してRAM12のiBエリアに格納されているデータを
ハードディスク21へ転送するように転送スタート指示
を出力する。なお、ここではこのステップの処理をDM
A18が内部で自動的に行う場合について示したが、こ
のステップの処理をCPU10に仲介させてもよい。
る。すなわち、バッファ変数iが『0』の場合には
『1』に、『1』の場合には『0』にする。これによっ
て、iBエリアは交互にデータが書き込まれるようにな
る。 ステップ55:DMA18の第2チャンネルCH1に対
してRAM12のiBエリアに格納されているデータを
ハードディスク21へ転送するように転送スタート指示
を出力する。なお、ここではこのステップの処理をDM
A18が内部で自動的に行う場合について示したが、こ
のステップの処理をCPU10に仲介させてもよい。
【0053】図13のステップ56〜5DはDMA18
の第2チャンネルCH1の行う処理であり、図12のス
テップ55の転送スタート指示を入力した時点で行う。 ステップ56:1データの書込みが完了すると、その時
点でハードディスク21から転送要求がDMA18に対
して出力されるので、このハードディスク21から転送
要求有りかどうかを判定し、転送要求有り(YES)の
場合は次のステップ57に進み、そうでない(NO)場
合はリターンする。
の第2チャンネルCH1の行う処理であり、図12のス
テップ55の転送スタート指示を入力した時点で行う。 ステップ56:1データの書込みが完了すると、その時
点でハードディスク21から転送要求がDMA18に対
して出力されるので、このハードディスク21から転送
要求有りかどうかを判定し、転送要求有り(YES)の
場合は次のステップ57に進み、そうでない(NO)場
合はリターンする。
【0054】ステップ57:RAM12のiBエリアか
らハードディスク21に対して次の1つのデータを転送
する。 ステップ58:データ転送中のクラスタすなわちカレン
トクラスタレジスタCCに対応するカレントクラスタの
記憶領域が満杯になったかどうかを判定し、YESの場
合は次のステップ59に進み、NOの場合はリターンす
る。
らハードディスク21に対して次の1つのデータを転送
する。 ステップ58:データ転送中のクラスタすなわちカレン
トクラスタレジスタCCに対応するカレントクラスタの
記憶領域が満杯になったかどうかを判定し、YESの場
合は次のステップ59に進み、NOの場合はリターンす
る。
【0055】ステップ59:前のステップ58でカレン
トクラスタの記憶領域が満杯になったと判定されたの
で、ここでは次のクラスタ(記憶領域の空いているも
の)をサーチして確保したら、そのクラスタ番号をクラ
スタ番号レジスタCNに格納する。なお、このステップ
で次のクラスタをサーチしなくても、予め一連の空きク
ラスタのチェーンを準備しておき、そのチェーンに基づ
いたクラスタ番号をクラスタ番号レジスタCNに格納し
てもよい。 ステップ5A:前のステップ59で確保された新たなク
ラスタ番号(クラスタ番号レジスタCNの値)をカレン
トクラスタのFAT(CC)に格納し、クラスタ記憶領
域が満杯であることを示すFULLをカレントクラスタ
のDVT(CC)に格納する。
トクラスタの記憶領域が満杯になったと判定されたの
で、ここでは次のクラスタ(記憶領域の空いているも
の)をサーチして確保したら、そのクラスタ番号をクラ
スタ番号レジスタCNに格納する。なお、このステップ
で次のクラスタをサーチしなくても、予め一連の空きク
ラスタのチェーンを準備しておき、そのチェーンに基づ
いたクラスタ番号をクラスタ番号レジスタCNに格納し
てもよい。 ステップ5A:前のステップ59で確保された新たなク
ラスタ番号(クラスタ番号レジスタCNの値)をカレン
トクラスタのFAT(CC)に格納し、クラスタ記憶領
域が満杯であることを示すFULLをカレントクラスタ
のDVT(CC)に格納する。
【0056】ステップ5B:前のステップ59で確保さ
れた新たなクラスタ番号すなわちクラスタ番号レジスタ
CNの格納値をカレントクラスタレジスタCCに格納す
る。 ステップ5C:iBエリアの全データの転送が完了した
かどうかを判定し、転送完了(YES)の場合は次のス
テップ5Dに進み、そうでない(NO)場合はリターン
して、iBエリアの全データの転送が完了するまで、ス
テップ56〜5Bの処理を繰り返し実行する。 ステップ5D:前のステップ5CでiBエリアの全デー
タの転送が完了したと判定されたので、DMA18の第
2チャンネルCH1に転送ストップを指示する。従っ
て、第2チャンネルCH1は、ステップ55の転送スタ
ート指示が出力されるまでの間、データ転送処理を停止
する。なお、ここでもこのステップの処理をDMA18
が内部で自動的に行う場合について示したが、このステ
ップの処理をCPU10に仲介させてもよい。
れた新たなクラスタ番号すなわちクラスタ番号レジスタ
CNの格納値をカレントクラスタレジスタCCに格納す
る。 ステップ5C:iBエリアの全データの転送が完了した
かどうかを判定し、転送完了(YES)の場合は次のス
テップ5Dに進み、そうでない(NO)場合はリターン
して、iBエリアの全データの転送が完了するまで、ス
テップ56〜5Bの処理を繰り返し実行する。 ステップ5D:前のステップ5CでiBエリアの全デー
タの転送が完了したと判定されたので、DMA18の第
2チャンネルCH1に転送ストップを指示する。従っ
て、第2チャンネルCH1は、ステップ55の転送スタ
ート指示が出力されるまでの間、データ転送処理を停止
する。なお、ここでもこのステップの処理をDMA18
が内部で自動的に行う場合について示したが、このステ
ップの処理をCPU10に仲介させてもよい。
【0057】図14はCPU10によって処理される図
10のその他の処理の中の一つの処理である再生処理の
一例を示すフローチャート図である。以下、このCPU
10が行う再生処理をステップ順に説明する。 ステップ61:再生状態フラグPLAYが『1』かどう
かを判定し、『1』(YES)の場合にはステップ6A
に進み、『0』(NO)の場合にはステップ62に進
む。再生状態フラグPLAYはパネルスイッチ14上の
再生スタートスイッチがオンされた場合に『1』にセッ
トされ、再生ストップスイッチがオンされた場合に
『0』にリセットされる。
10のその他の処理の中の一つの処理である再生処理の
一例を示すフローチャート図である。以下、このCPU
10が行う再生処理をステップ順に説明する。 ステップ61:再生状態フラグPLAYが『1』かどう
かを判定し、『1』(YES)の場合にはステップ6A
に進み、『0』(NO)の場合にはステップ62に進
む。再生状態フラグPLAYはパネルスイッチ14上の
再生スタートスイッチがオンされた場合に『1』にセッ
トされ、再生ストップスイッチがオンされた場合に
『0』にリセットされる。
【0058】ステップ62:前のステップ61で再生状
態フラグPLAYが『0』と判定されたので、再生スタ
ートスイッチが操作され、そのオンイベントが発生した
かどうかを判定し、オンイベント有り(YES)の場合
は次のステップ63に進み、そうでない(NO)場合は
図10のメインルーチンにリターンする。 ステップ63:再生状態フラグPLAYを『1』にセッ
トし、バッファ変数jを『0』にリセットする。ここ
で、バッファ変数jは音源回路16上に確保された2ブ
ロック分のバッファエリアのいずれか一方を選択するた
めの変数であり、『0』と『1』のいずれかの値とな
る。以下、音源回路16上の2ブロック分のバッファエ
リアをjBエリア(0Bエリアと1Bエリア)として表
す。このステップで再生状態フラグPLAYが『1』に
セットされると、次回からはステップ61ではYESと
判定され、ステップ6A〜6Dを処理するようになる。
態フラグPLAYが『0』と判定されたので、再生スタ
ートスイッチが操作され、そのオンイベントが発生した
かどうかを判定し、オンイベント有り(YES)の場合
は次のステップ63に進み、そうでない(NO)場合は
図10のメインルーチンにリターンする。 ステップ63:再生状態フラグPLAYを『1』にセッ
トし、バッファ変数jを『0』にリセットする。ここ
で、バッファ変数jは音源回路16上に確保された2ブ
ロック分のバッファエリアのいずれか一方を選択するた
めの変数であり、『0』と『1』のいずれかの値とな
る。以下、音源回路16上の2ブロック分のバッファエ
リアをjBエリア(0Bエリアと1Bエリア)として表
す。このステップで再生状態フラグPLAYが『1』に
セットされると、次回からはステップ61ではYESと
判定され、ステップ6A〜6Dを処理するようになる。
【0059】ステップ64:ファイルの再生準備処理を
行う。例えば、録音時のサンプリング周波数を音源回路
16に設定したり、再生するフェイル名に基づいて音色
名を表示したりする。 ステップ65:前のステップ64で準備されたファイル
の中から再生されるデータの最初の2ブロック分を音源
メモリのjBエリア(0Bエリア及び1Bエリア)に予
め記憶する。すなわち、音源回路16の音源メモリの0
Bエリアにハードディスク21からデータを転送し、次
に1Bエリアにデータを転送する。 ステップ66:次のブロックの最初のクラスタ番号をカ
レントクラスタレジスタCCに格納する。すなわち、前
のステップ65で2ブロック分のデータをRAM12上
のiBエリアに既に転送したので、次回以降の転送処理
で0Bエリアに最初に格納されるクラスタ番号を記憶し
ておくためである。
行う。例えば、録音時のサンプリング周波数を音源回路
16に設定したり、再生するフェイル名に基づいて音色
名を表示したりする。 ステップ65:前のステップ64で準備されたファイル
の中から再生されるデータの最初の2ブロック分を音源
メモリのjBエリア(0Bエリア及び1Bエリア)に予
め記憶する。すなわち、音源回路16の音源メモリの0
Bエリアにハードディスク21からデータを転送し、次
に1Bエリアにデータを転送する。 ステップ66:次のブロックの最初のクラスタ番号をカ
レントクラスタレジスタCCに格納する。すなわち、前
のステップ65で2ブロック分のデータをRAM12上
のiBエリアに既に転送したので、次回以降の転送処理
で0Bエリアに最初に格納されるクラスタ番号を記憶し
ておくためである。
【0060】ステップ67:カレントクラスタのDVT
(CC)に格納されているデータ容量を容量レジスタD
Vに格納する。 ステップ68:音源回路16に音源メモリの0Bエリア
の頭からデータを読出して、再生処理をスタートするよ
うに再生スタートを指示する。音源回路16はこの再生
スタート指示を入力することによって発音処理を開始す
る。 ステップ69:表示器15に『再生中』と表示し、現在
再生状態であることを示す。
(CC)に格納されているデータ容量を容量レジスタD
Vに格納する。 ステップ68:音源回路16に音源メモリの0Bエリア
の頭からデータを読出して、再生処理をスタートするよ
うに再生スタートを指示する。音源回路16はこの再生
スタート指示を入力することによって発音処理を開始す
る。 ステップ69:表示器15に『再生中』と表示し、現在
再生状態であることを示す。
【0061】ステップ6A:前のステップ61で再生状
態フラグPLAYが『1』と判定されたということは現
在再生中なので、このステップでは再生ストップスイッ
チのオンイベントが発生したかどうかを判定し、オンイ
ベントが発生している(YES)場合には次のステップ
6Bに進み、そうでない(NO)場合にはリターンす
る。 ステップ6B:再生状態フラグPLAYを『0』にリセ
ットする。このステップで再生状態フラグPLAYが
『0』にリセットされると、次回からはステップ61で
はNOと判定されるようになる。
態フラグPLAYが『1』と判定されたということは現
在再生中なので、このステップでは再生ストップスイッ
チのオンイベントが発生したかどうかを判定し、オンイ
ベントが発生している(YES)場合には次のステップ
6Bに進み、そうでない(NO)場合にはリターンす
る。 ステップ6B:再生状態フラグPLAYを『0』にリセ
ットする。このステップで再生状態フラグPLAYが
『0』にリセットされると、次回からはステップ61で
はNOと判定されるようになる。
【0062】ステップ6C:ステップ68で再生を開始
した音源回路16に対してその再生処理を停止するよう
に再生停止命令を音源回路16に出力する。音源回路1
6はこの再生停止命令を入力することによってその再生
処理を終了する。 ステップ6D:表示器15に『再生停止』と表示する。
これによって、操作者は現在再生停止中であることを認
識できる。
した音源回路16に対してその再生処理を停止するよう
に再生停止命令を音源回路16に出力する。音源回路1
6はこの再生停止命令を入力することによってその再生
処理を終了する。 ステップ6D:表示器15に『再生停止』と表示する。
これによって、操作者は現在再生停止中であることを認
識できる。
【0063】図15は、ステップ68の再生スタート指
示を入力した音源回路16が出力する音源転送要求割込
に応じてCPU10が行う音源転送要求割込処理の一例
を示す図である。図16はその時にDMA18の第2チ
ャンネルCH1が行う再生中CH1処理の一例を示す図
である。この音源転送要求割込処理と再生中CH1処理
は平行して実行される。以下、この音源転送要求割込処
理と、再生中CH1処理とをステップ順に説明する。
示を入力した音源回路16が出力する音源転送要求割込
に応じてCPU10が行う音源転送要求割込処理の一例
を示す図である。図16はその時にDMA18の第2チ
ャンネルCH1が行う再生中CH1処理の一例を示す図
である。この音源転送要求割込処理と再生中CH1処理
は平行して実行される。以下、この音源転送要求割込処
理と、再生中CH1処理とをステップ順に説明する。
【0064】ステップ71:ステップ68の再生スター
ト指示を入力した音源回路16は、音源メモリの0Bエ
リアからデータを読出して楽音を再生し、この0Bエリ
アのデータを全て読み出した時点で音源転送要求割込を
CPU10に出力する。すると、この時点で音源回路1
6は音源メモリの1Bエリアからデータを読み出してい
るので、バッファ変数jは『1』である。従って、この
ステップでは音源転送要求割込が発生した時点でバッフ
ァ変数jを反転する。
ト指示を入力した音源回路16は、音源メモリの0Bエ
リアからデータを読出して楽音を再生し、この0Bエリ
アのデータを全て読み出した時点で音源転送要求割込を
CPU10に出力する。すると、この時点で音源回路1
6は音源メモリの1Bエリアからデータを読み出してい
るので、バッファ変数jは『1』である。従って、この
ステップでは音源転送要求割込が発生した時点でバッフ
ァ変数jを反転する。
【0065】ステップ72:DMA18の第2チャンネ
ルCH1にハードディスク21から音源メモリのiBエ
リアへのデータ転送を開始するように指示する。これに
よって、音源メモリの1Bエリアからデータが読み出さ
れている間に、第2チャンネルCH1によって0Bエリ
アに新たにデータが書き込まれる。
ルCH1にハードディスク21から音源メモリのiBエ
リアへのデータ転送を開始するように指示する。これに
よって、音源メモリの1Bエリアからデータが読み出さ
れている間に、第2チャンネルCH1によって0Bエリ
アに新たにデータが書き込まれる。
【0066】ステップ73:ハードディスク21がデー
タレディ状態かどうかを判定し、データレディ状態(Y
ES)の場合は次のステップ74に進み、そうでない
(NO)場合はリターンする。
タレディ状態かどうかを判定し、データレディ状態(Y
ES)の場合は次のステップ74に進み、そうでない
(NO)場合はリターンする。
【0067】ステップ74:ハードディスク21から音
源メモリのjBエリアへ1つのデータを転送する。 ステップ75:データ転送中のクラスタすなわちカレン
トクラスタレジスタCCに対応するクラスタから容量レ
ジスタDVに対応するだけのデータの読出しが完了した
かどうかを判定し、読出完了(YES)の場合は次のス
テップ76に進み、完了していない場合はステップ78
にジャンプする。
源メモリのjBエリアへ1つのデータを転送する。 ステップ75:データ転送中のクラスタすなわちカレン
トクラスタレジスタCCに対応するクラスタから容量レ
ジスタDVに対応するだけのデータの読出しが完了した
かどうかを判定し、読出完了(YES)の場合は次のス
テップ76に進み、完了していない場合はステップ78
にジャンプする。
【0068】ステップ76:カレントクラスタの全デー
タの読出しが完了したので、次のクラスタを確保するた
めに、カレントクラスタのFAT(CC)に格納されて
いるクラスタ番号をカレントクラスタレジスタCCに格
納する。 ステップ77:前のステップ76で確保された新たなカ
レントクラスタのDVT(CC)に格納されているデー
タ容量値を容量レジスタDVに格納する。 ステップ78:jBエリアに対するデータ転送が完了し
たかどうかを判定し、転送完了(YES)の場合は次の
ステップ79に進み、そうでない(NO)場合はリター
ンする。
タの読出しが完了したので、次のクラスタを確保するた
めに、カレントクラスタのFAT(CC)に格納されて
いるクラスタ番号をカレントクラスタレジスタCCに格
納する。 ステップ77:前のステップ76で確保された新たなカ
レントクラスタのDVT(CC)に格納されているデー
タ容量値を容量レジスタDVに格納する。 ステップ78:jBエリアに対するデータ転送が完了し
たかどうかを判定し、転送完了(YES)の場合は次の
ステップ79に進み、そうでない(NO)場合はリター
ンする。
【0069】ステップ79:前のステップ78でjBエ
リアへのデータ転送が完了したと判定されたので、DM
A18の第2チャンネルCH1に転送ストップを指示す
る。従って、第2チャンネルCH1は、ステップ72の
転送スタート指示が出力されるまでの間、データ転送処
理を停止する。なお、ここでもこのステップの処理をD
MA18が内部で自動的に行う場合について示したが、
このステップの処理をCPU10に仲介させてもよい。
リアへのデータ転送が完了したと判定されたので、DM
A18の第2チャンネルCH1に転送ストップを指示す
る。従って、第2チャンネルCH1は、ステップ72の
転送スタート指示が出力されるまでの間、データ転送処
理を停止する。なお、ここでもこのステップの処理をD
MA18が内部で自動的に行う場合について示したが、
このステップの処理をCPU10に仲介させてもよい。
【0070】図17は、CPU10によって処理される
図10の波形エディット処理&加工処理の中のデータ削
除処理の一例を示すフローチャート図である。なお、こ
のデータ削除処理においてはデータの削除を行うに際し
て、削除されるクラスタの全データを一旦RAM12上
に転送し、このRAM12上でデータの削除を行った後
に、そのデータをハードディスク21に転送して記憶す
るようにしている。そして、このデータの削除を行うと
同時に、データボリュームテーブルDVTおよびファイ
ルアロケーションテーブルFATに対応するデータを書
き込むようにしている。以下、このデータ削除処理をス
テップ順に説明する。
図10の波形エディット処理&加工処理の中のデータ削
除処理の一例を示すフローチャート図である。なお、こ
のデータ削除処理においてはデータの削除を行うに際し
て、削除されるクラスタの全データを一旦RAM12上
に転送し、このRAM12上でデータの削除を行った後
に、そのデータをハードディスク21に転送して記憶す
るようにしている。そして、このデータの削除を行うと
同時に、データボリュームテーブルDVTおよびファイ
ルアロケーションテーブルFATに対応するデータを書
き込むようにしている。以下、このデータ削除処理をス
テップ順に説明する。
【0071】ステップ81:ハードディスク21内に記
憶してある複数個のファイルのうち、どのファイルのど
の範囲を削除したいかを指定する。 ステップ82:削除する範囲の先頭と末尾の属するクラ
スタを検出し、そのクラスタ番号を先頭クラスタレジス
タSC及び末尾クラスタレジスタECにそれぞれ格納す
る。 ステップ83:先頭クラスタレジスタSC及び末尾クラ
スタレジスタECに対応するクラスタのデータをRAM
12上に読み出す。 ステップ84:ステップ83でそれぞれ読み出されたデ
ータのうち、削除される範囲以外のデータすなわちデー
タとして有効な部分をメモリ上で接続する。
憶してある複数個のファイルのうち、どのファイルのど
の範囲を削除したいかを指定する。 ステップ82:削除する範囲の先頭と末尾の属するクラ
スタを検出し、そのクラスタ番号を先頭クラスタレジス
タSC及び末尾クラスタレジスタECにそれぞれ格納す
る。 ステップ83:先頭クラスタレジスタSC及び末尾クラ
スタレジスタECに対応するクラスタのデータをRAM
12上に読み出す。 ステップ84:ステップ83でそれぞれ読み出されたデ
ータのうち、削除される範囲以外のデータすなわちデー
タとして有効な部分をメモリ上で接続する。
【0072】ステップ85:ステップ84で接続された
データの大きさ(データサイズ)が1クラスタのデータ
容量以上かどうかを判定(ここでは1クラスタに格納可
能なデータ量を『1』として判定する)し、1クラスタ
のデータ容量以上(YES)の場合は次のステップ86
に進み、そうでない(NO)場合はステップ89に進
む。 ステップ86:前のステップ85でデータサイズが1ク
ラスタのデータ容量以上であると判定されたので、先頭
クラスタレジスタSCに対応するクラスタに1クラスタ
分のデータを書き込む。
データの大きさ(データサイズ)が1クラスタのデータ
容量以上かどうかを判定(ここでは1クラスタに格納可
能なデータ量を『1』として判定する)し、1クラスタ
のデータ容量以上(YES)の場合は次のステップ86
に進み、そうでない(NO)場合はステップ89に進
む。 ステップ86:前のステップ85でデータサイズが1ク
ラスタのデータ容量以上であると判定されたので、先頭
クラスタレジスタSCに対応するクラスタに1クラスタ
分のデータを書き込む。
【0073】ステップ87:前のステップ86で先頭ク
ラスタレジスタSCに対応するクラスタに1クラスタ分
のデータが書き込まれたので、ここではそのクラスタの
DVT(SC)に記憶領域が満杯であることを示すFU
LLを格納し、そのクラスタのFAT(SC)のクラス
タ番号を先頭クラスタレジスタSCに格納する。 ステップ88:前のステップ87で書き換えられた先頭
クラスタレジスタSCに対応するクラスタに残りのデー
タを書き込む。
ラスタレジスタSCに対応するクラスタに1クラスタ分
のデータが書き込まれたので、ここではそのクラスタの
DVT(SC)に記憶領域が満杯であることを示すFU
LLを格納し、そのクラスタのFAT(SC)のクラス
タ番号を先頭クラスタレジスタSCに格納する。 ステップ88:前のステップ87で書き換えられた先頭
クラスタレジスタSCに対応するクラスタに残りのデー
タを書き込む。
【0074】ステップ89:前のステップ85でデータ
サイズが1クラスタのデータ容量よりも小さいと判定さ
れたので、そのまま先頭クラスタレジスタSCに対応す
るクラスタに接続後のデータを書き込む。 ステップ8A:末尾クラスタレジスタECに対応するク
ラスタのFAT(EC)に格納されているクラスタ番号
を、先頭クラスタレジスタSCに対応するクラスタのF
AT(SC)に格納する。
サイズが1クラスタのデータ容量よりも小さいと判定さ
れたので、そのまま先頭クラスタレジスタSCに対応す
るクラスタに接続後のデータを書き込む。 ステップ8A:末尾クラスタレジスタECに対応するク
ラスタのFAT(EC)に格納されているクラスタ番号
を、先頭クラスタレジスタSCに対応するクラスタのF
AT(SC)に格納する。
【0075】ステップ8B:先頭クラスタレジスタSC
に対応するクラスタのデータ容量をそのクラスタのDV
T(SC)に書き込む。 ステップ8C:先頭クラスタレジスタSCと末尾クラス
タレジスタECとの間に存在するクラスタのFATを開
放するために、それぞれのクラスタのDVTに『00
0』を格納し、図10のメインルーチンにリターンす
る。これによって、削除されたクラスタはFATから解
除され、データとしては削除されたことになる。
に対応するクラスタのデータ容量をそのクラスタのDV
T(SC)に書き込む。 ステップ8C:先頭クラスタレジスタSCと末尾クラス
タレジスタECとの間に存在するクラスタのFATを開
放するために、それぞれのクラスタのDVTに『00
0』を格納し、図10のメインルーチンにリターンす
る。これによって、削除されたクラスタはFATから解
除され、データとしては削除されたことになる。
【0076】図18は、CPU10によって処理される
図10の波形エディット処理&加工処理の中のデータ挿
入処理の一例を示すフローチャート図である。なお、こ
のデータ挿入処理においてはデータの挿入を行うに際し
て、挿入されるクラスタの全データを一旦RAM12上
に転送し、このRAM12上でデータの挿入を行った後
に、そのデータをハードディスク21に転送して記憶す
るようにしている。そして、このデータの挿入を行うと
同時に、データボリュームテーブルDVTおよびファイ
ルアロケーションテーブルFATに対応するデータを書
き込むようにしている。以下、このデータ挿入処理をス
テップ順に説明する。
図10の波形エディット処理&加工処理の中のデータ挿
入処理の一例を示すフローチャート図である。なお、こ
のデータ挿入処理においてはデータの挿入を行うに際し
て、挿入されるクラスタの全データを一旦RAM12上
に転送し、このRAM12上でデータの挿入を行った後
に、そのデータをハードディスク21に転送して記憶す
るようにしている。そして、このデータの挿入を行うと
同時に、データボリュームテーブルDVTおよびファイ
ルアロケーションテーブルFATに対応するデータを書
き込むようにしている。以下、このデータ挿入処理をス
テップ順に説明する。
【0077】ステップ91:ハードディスク21内に記
憶してある複数個のファイルのうち、どのファイルのど
こへデータを挿入するのかを指定する。 ステップ92:挿入位置の属するクラスタ番号を挿入ク
ラスタレジスタICに格納する。 ステップ93:どのファイルのどの範囲のデータを挿入
するか指定する。 ステップ94:挿入する範囲の先頭と末尾の属するクラ
スタを検出し、そのクラスタ番号を先頭クラスタレジス
タSC及び末尾クラスタレジスタECにそれぞれ格納す
る。
憶してある複数個のファイルのうち、どのファイルのど
こへデータを挿入するのかを指定する。 ステップ92:挿入位置の属するクラスタ番号を挿入ク
ラスタレジスタICに格納する。 ステップ93:どのファイルのどの範囲のデータを挿入
するか指定する。 ステップ94:挿入する範囲の先頭と末尾の属するクラ
スタを検出し、そのクラスタ番号を先頭クラスタレジス
タSC及び末尾クラスタレジスタECにそれぞれ格納す
る。
【0078】ステップ95:挿入クラスタレジスタIC
に対応するクラスタのデータをRAM12上に読み出
す。 ステップ96:先頭クラスタレジスタSCに対応するク
ラスタから末尾クラスタレジスタECに対応するクラス
タまでの全データをRAM12上に読み出す。 ステップ97:前のステップ95及び96でそれぞれ読
み出されたデータをRAM12上で挿入合成する。な
お、挿入データが長い場合には、挿入クラスタレジスタ
ICと先頭クラスタレジスタSCと末尾クラタスレジス
タECに対応するクラタスのデータのみをRAM12上
に読み出し、それぞれ挿入部分の先頭と末尾1〜2クラ
スタずつを合成して書き込むようにしてもよい。そうす
れば、長い挿入部の全体をハードディスク21上で移動
させる必要がなくなる。
に対応するクラスタのデータをRAM12上に読み出
す。 ステップ96:先頭クラスタレジスタSCに対応するク
ラスタから末尾クラスタレジスタECに対応するクラス
タまでの全データをRAM12上に読み出す。 ステップ97:前のステップ95及び96でそれぞれ読
み出されたデータをRAM12上で挿入合成する。な
お、挿入データが長い場合には、挿入クラスタレジスタ
ICと先頭クラスタレジスタSCと末尾クラタスレジス
タECに対応するクラタスのデータのみをRAM12上
に読み出し、それぞれ挿入部分の先頭と末尾1〜2クラ
スタずつを合成して書き込むようにしてもよい。そうす
れば、長い挿入部の全体をハードディスク21上で移動
させる必要がなくなる。
【0079】ステップ98:それぞれ挿入クラスタレジ
スタICを先頭として順次空きクラスタを必要量だけサ
ーチしながら、RAM12上の挿入合成データを順次そ
の空きクラスタに書き込む。なお、途中のクラスタのD
VTには記憶領域が満杯であることを示すFULLを格
納する。 ステップ99:最後のクラスタすなわち前のステップ9
8で最後にデータの書き込まれたクラスタのFATに挿
入クラスタレジスタICに格納されているクラスタ番号
のクラスタのFAT(IC)を書き込む。 ステップ9A:最後のクラスタのデータ容量をそのクラ
スタのDVTに書き込み、図10のメインルーチンにリ
ターンする。
スタICを先頭として順次空きクラスタを必要量だけサ
ーチしながら、RAM12上の挿入合成データを順次そ
の空きクラスタに書き込む。なお、途中のクラスタのD
VTには記憶領域が満杯であることを示すFULLを格
納する。 ステップ99:最後のクラスタすなわち前のステップ9
8で最後にデータの書き込まれたクラスタのFATに挿
入クラスタレジスタICに格納されているクラスタ番号
のクラスタのFAT(IC)を書き込む。 ステップ9A:最後のクラスタのデータ容量をそのクラ
スタのDVTに書き込み、図10のメインルーチンにリ
ターンする。
【0080】なお、図14の再生処理では、ハードディ
スク21からデータを順次読み出しながら楽音を再生す
る場合について説明したが、以下説明するように鍵盤1
3の操作に応じて発生されるキーコードに対応した波形
データをハードディスク21から読み出して楽音再生を
行うようにしてもよい。なお、鍵盤13の操作に応じて
ハードディスク21から波形データを読み出していたの
では、波形データの読み出しが再生処理に間に合わない
ので、この実施例では、音源メモリ上に音色とキーコー
ドに対応したスタート波形データを複数個予め記憶して
おき、鍵盤13の操作に応じて、まずこのスタート波形
データを読み出して楽音を再生し、スタート波形データ
の読み出し中にハードディスク21から対応する波形デ
ータを音源メモリのjBエリアを交互に利用して、リア
ルタイムに波形データを読み出すようにしている。
スク21からデータを順次読み出しながら楽音を再生す
る場合について説明したが、以下説明するように鍵盤1
3の操作に応じて発生されるキーコードに対応した波形
データをハードディスク21から読み出して楽音再生を
行うようにしてもよい。なお、鍵盤13の操作に応じて
ハードディスク21から波形データを読み出していたの
では、波形データの読み出しが再生処理に間に合わない
ので、この実施例では、音源メモリ上に音色とキーコー
ドに対応したスタート波形データを複数個予め記憶して
おき、鍵盤13の操作に応じて、まずこのスタート波形
データを読み出して楽音を再生し、スタート波形データ
の読み出し中にハードディスク21から対応する波形デ
ータを音源メモリのjBエリアを交互に利用して、リア
ルタイムに波形データを読み出すようにしている。
【0081】以下、この楽音再生処理の一例を図19を
用いて説明する。まず、鍵盤13の操作に対応したキー
コードデータをキーコードレジスタKCDに格納する。
音色とキーコードレジスタKCDに対応したスタート波
形データを音源に設定する。すなわち、音色とキーコー
ドに対応したスタート波形データを音源メモリの中から
読み出す。そして、jBエリアをループ部として設定す
る。そして、音源にノートオンを指示する。jBエリア
に対するハードディスク21からの波形データ転送処理
をDMA18に指示する。これによって、DMA18
は、音源メモリのjBエリアを用いてハードディスク2
1から次々と波形データを読み出し、楽音再生処理を行
う。
用いて説明する。まず、鍵盤13の操作に対応したキー
コードデータをキーコードレジスタKCDに格納する。
音色とキーコードレジスタKCDに対応したスタート波
形データを音源に設定する。すなわち、音色とキーコー
ドに対応したスタート波形データを音源メモリの中から
読み出す。そして、jBエリアをループ部として設定す
る。そして、音源にノートオンを指示する。jBエリア
に対するハードディスク21からの波形データ転送処理
をDMA18に指示する。これによって、DMA18
は、音源メモリのjBエリアを用いてハードディスク2
1から次々と波形データを読み出し、楽音再生処理を行
う。
【0082】なお、上述の実施例では1クラスタのサイ
ズが512バイトで構成される場合について説明した
が、これは一例であり、これ以外のサイズで1クラスタ
を構成してもよいことはいうまでもない。例えば、DV
Tとして16ビットが割り当てられているので、1クラ
スタをこの16ビットで表現可能な範囲、すなわち64
キロバイト(KB)で構成してもよい。また、上述の実
施例では、1クラスタのサイズが512バイトなのに対
して、DVTは16ビット構成の場合について説明した
が、このDVTのビットサイズは1クラスタのサイズに
対応させるのがよい。すなわち、1クラスタのサイズが
512バイトの場合にはDVTは9ビット構成とし、1
クラスタのサイズが64KBの場合にはDVTを16ビ
ット構成とし、1クラスタのサイズに応じてDVTのビ
ット構成を適宜採用すればよい。
ズが512バイトで構成される場合について説明した
が、これは一例であり、これ以外のサイズで1クラスタ
を構成してもよいことはいうまでもない。例えば、DV
Tとして16ビットが割り当てられているので、1クラ
スタをこの16ビットで表現可能な範囲、すなわち64
キロバイト(KB)で構成してもよい。また、上述の実
施例では、1クラスタのサイズが512バイトなのに対
して、DVTは16ビット構成の場合について説明した
が、このDVTのビットサイズは1クラスタのサイズに
対応させるのがよい。すなわち、1クラスタのサイズが
512バイトの場合にはDVTは9ビット構成とし、1
クラスタのサイズが64KBの場合にはDVTを16ビ
ット構成とし、1クラスタのサイズに応じてDVTのビ
ット構成を適宜採用すればよい。
【0083】また、上述の実施例では、ハードディスク
21に対するデータの読み出し及び書込みを直接行う場
合について説明したが、これに限らず、キャッシュRA
M22を中間バッファとして使用し、1クラスタにおけ
る有効データの大きさが1クラスタのサイズとなった時
点で書換え処理を行うようにしてもよい。例えば、図6
(d)のような場合に、キャッシュRAM22上におい
て、クラスタ番号=0003の100バイトのデータ
(斜線網掛け部分)はそのままクラスタ番号=0003
のデータ記憶領域に残し、その後に約300バイトの挿
入データ(格子網掛け部分)と、200バイトの残りデ
ータ(横線網掛け部分)の内、112バイトをクラスタ
番号=0003の300バイトの挿入データ(格子網掛
け部分)の後に続けて記憶する。これによって、クラス
タ番号=0003における有効データの大きさは512
バイトとなるので、この時点で対応するハードディスク
21のクラスタの書換えを行う。そして、200バイト
の残りデータ(横線網掛け部分)の内、88バイトに関
してはクラスタ番号=0004に記憶する。これによっ
て、記憶領域の有効活用を図ることができる。なお、上
述の実施例ではクラスタに記憶可能なデータの大きさ
(余裕領域)をそのまま残した場合について説明した
が、挿入処理又は/及び削除処理の終了後に適宜この余
裕領域を除去するためにデータの書き換え処理を行って
もよい。さらに、この発明は、波形データのエディット
処理に限らず、例えばサンプル中の無音期間を検出して
無音コードで置き換えてデータ圧縮を図る場合等に適用
しても有効である。
21に対するデータの読み出し及び書込みを直接行う場
合について説明したが、これに限らず、キャッシュRA
M22を中間バッファとして使用し、1クラスタにおけ
る有効データの大きさが1クラスタのサイズとなった時
点で書換え処理を行うようにしてもよい。例えば、図6
(d)のような場合に、キャッシュRAM22上におい
て、クラスタ番号=0003の100バイトのデータ
(斜線網掛け部分)はそのままクラスタ番号=0003
のデータ記憶領域に残し、その後に約300バイトの挿
入データ(格子網掛け部分)と、200バイトの残りデ
ータ(横線網掛け部分)の内、112バイトをクラスタ
番号=0003の300バイトの挿入データ(格子網掛
け部分)の後に続けて記憶する。これによって、クラス
タ番号=0003における有効データの大きさは512
バイトとなるので、この時点で対応するハードディスク
21のクラスタの書換えを行う。そして、200バイト
の残りデータ(横線網掛け部分)の内、88バイトに関
してはクラスタ番号=0004に記憶する。これによっ
て、記憶領域の有効活用を図ることができる。なお、上
述の実施例ではクラスタに記憶可能なデータの大きさ
(余裕領域)をそのまま残した場合について説明した
が、挿入処理又は/及び削除処理の終了後に適宜この余
裕領域を除去するためにデータの書き換え処理を行って
もよい。さらに、この発明は、波形データのエディット
処理に限らず、例えばサンプル中の無音期間を検出して
無音コードで置き換えてデータ圧縮を図る場合等に適用
しても有効である。
【0084】尚、使用されているクラスタに記憶された
データの容量(DVTの値に対応する)に下限を設け、
ディスクからのデータの読出しスピードが遅くなりすぎ
ないように規制してもよい。この実施例の各ファイルの
複数のクラスタは、FATの管理により任意の順番で順
次連結可能になっている。従って、ハードディスク上の
離れた位置にあるクラスタが順次つなげられる可能性が
あり、前のクラスタから次のクラスタへの読出しの移行
にある程度の時間的猶予を考える必要がある。ここで
は、各クラスタのデータ容量の下限を設けて、単位時間
当たりのクラスタ間の読出しの移行回数を減らし、ディ
スクからの平均の読出しスピードの改善を図っている。
具体的には、この各クラスタの容量制限処理は、この実
施例の図17の削除処理のステップ85〜8Bのルーチ
ンや図18の挿入処理のステップ98〜99のルーチン
等で行われると良いであろう。
データの容量(DVTの値に対応する)に下限を設け、
ディスクからのデータの読出しスピードが遅くなりすぎ
ないように規制してもよい。この実施例の各ファイルの
複数のクラスタは、FATの管理により任意の順番で順
次連結可能になっている。従って、ハードディスク上の
離れた位置にあるクラスタが順次つなげられる可能性が
あり、前のクラスタから次のクラスタへの読出しの移行
にある程度の時間的猶予を考える必要がある。ここで
は、各クラスタのデータ容量の下限を設けて、単位時間
当たりのクラスタ間の読出しの移行回数を減らし、ディ
スクからの平均の読出しスピードの改善を図っている。
具体的には、この各クラスタの容量制限処理は、この実
施例の図17の削除処理のステップ85〜8Bのルーチ
ンや図18の挿入処理のステップ98〜99のルーチン
等で行われると良いであろう。
【0085】
【発明の効果】以上のようにこの発明によれば、演奏デ
ータ部分の大きさを記憶するようにし、1つの記憶単位
においてデータが満たされていなくてもいいようにした
ので、全データの書換えを行わなくても任意の長さの演
奏データを任意の位置に挿入したり又は削除したりする
ことができるという効果がある。
ータ部分の大きさを記憶するようにし、1つの記憶単位
においてデータが満たされていなくてもいいようにした
ので、全データの書換えを行わなくても任意の長さの演
奏データを任意の位置に挿入したり又は削除したりする
ことができるという効果がある。
【図1】 この発明に係る電子楽器のファイル管理シス
テムによってハードディスク上に記憶されている演奏デ
ータの構成を示す図である。
テムによってハードディスク上に記憶されている演奏デ
ータの構成を示す図である。
【図2】 この発明に係るファイル管理システムを内蔵
した電子楽器の全体構成を示すハードブロック図であ
る。
した電子楽器の全体構成を示すハードブロック図であ
る。
【図3】 データの挿入に応じて、この発明に係るファ
イル管理システムが書き換えた図1のFAT及びDVT
の内容の第1の例を示す図である。
イル管理システムが書き換えた図1のFAT及びDVT
の内容の第1の例を示す図である。
【図4】 データの挿入に応じて、この発明に係るファ
イル管理システムが書き換えた図1のFAT及びDVT
の内容の第2の例を示す図である。
イル管理システムが書き換えた図1のFAT及びDVT
の内容の第2の例を示す図である。
【図5】 データの挿入に応じて、この発明に係るファ
イル管理システムが書き換えた図1のFAT及びDVT
の内容の第3の例を示す図である。
イル管理システムが書き換えた図1のFAT及びDVT
の内容の第3の例を示す図である。
【図6】 図1、図3、図4及び図5のデータ記憶領域
における有効データの大きさを各クラスタ番号毎に棒グ
ラフ形式で示した概念図である。
における有効データの大きさを各クラスタ番号毎に棒グ
ラフ形式で示した概念図である。
【図7】 データの削除に応じて、この発明に係るファ
イル管理システムが書き換えた図1のFAT及びDVT
の内容の第1の例を示す図である。
イル管理システムが書き換えた図1のFAT及びDVT
の内容の第1の例を示す図である。
【図8】 データの削除に応じて、この発明に係るファ
イル管理システムが書き換えた図1のFAT及びDVT
の内容の第2の例を示す図である。
イル管理システムが書き換えた図1のFAT及びDVT
の内容の第2の例を示す図である。
【図9】 図1及び図7のデータ記憶領域における有効
データの大きさを各クラスタ番号毎に棒グラフ形式で示
した概念図である。
データの大きさを各クラスタ番号毎に棒グラフ形式で示
した概念図である。
【図10】 図2のCPUが処理するメインルーチンの
一例を示すフローチャート図である。
一例を示すフローチャート図である。
【図11】 図2のCPUによって処理される図10の
サンプリング処理の詳細を示すフローチャート図であ
る。
サンプリング処理の詳細を示すフローチャート図であ
る。
【図12】 図2のDMAの第1チャンネルが行うデー
タ転送処理の一例を示すフローチャート図である。
タ転送処理の一例を示すフローチャート図である。
【図13】 図2のDMAの第2チャンネルが行うデー
タ転送処理の一例を示すフローチャート図である。
タ転送処理の一例を示すフローチャート図である。
【図14】 図2のCPUによって処理される図10の
その他の処理の中の一つの処理である再生処理の一例を
示すフローチャート図である。
その他の処理の中の一つの処理である再生処理の一例を
示すフローチャート図である。
【図15】 図2のCPUが行う音源転送要求割込処理
の一例を示すフローチャート図である。
の一例を示すフローチャート図である。
【図16】 図2のDMAの第2チャンネルが行う再生
中CH1処理の一例を示すフローチャート図である。
中CH1処理の一例を示すフローチャート図である。
【図17】 図2のCPUによって処理される図10の
波形エディット処理&加工処理の中のデータ削除処理の
一例を示すフローチャート図である。
波形エディット処理&加工処理の中のデータ削除処理の
一例を示すフローチャート図である。
【図18】 図2のCPUによって処理される図10の
波形エディット処理&加工処理の中のデータ挿入処理の
一例を示すフローチャート図である。
波形エディット処理&加工処理の中のデータ挿入処理の
一例を示すフローチャート図である。
【図19】 図2の鍵盤の操作に応じてハードディスク
から波形データを読み出して楽音を発生する楽音発生処
理の一例を示すフローチャート図である。
から波形データを読み出して楽音を発生する楽音発生処
理の一例を示すフローチャート図である。
【符号の説明】 10…CPU、11…ROM、12…RAM、13…鍵
盤、14…パネルスイッチ、15…表示器、16…音源
回路、17…アナログ−デジタル変換器、18…DMA
装置、19…アドレス変換回路、20…インターフェイ
ス、21…ハードディスク、22…キャッシュRAM、
23…マイク、24…サウンドシステム、25…データ
及びアドレスバス
盤、14…パネルスイッチ、15…表示器、16…音源
回路、17…アナログ−デジタル変換器、18…DMA
装置、19…アドレス変換回路、20…インターフェイ
ス、21…ハードディスク、22…キャッシュRAM、
23…マイク、24…サウンドシステム、25…データ
及びアドレスバス
Claims (1)
- 【請求項1】 所定長のデータ領域からなる記憶単位の
複数個に1ファイル分の演奏データを分割して記憶する
と共に、前記各記憶単位に記憶されている前記演奏デー
タ部分の大きさをそれぞれ示すデータと前記各記憶単位
に記憶された前記演奏データ部分の連結順を示すデータ
とを記憶している記憶手段と、 この記憶手段に記憶されている前記演奏データに対して
データの挿入又は削除を指示する指示手段と、 この指示手段によって指示されたデータを挿入又は削除
するとともに前記演奏データ部分の大きさを示すデータ
及び前記連結順を示すデータを書き換えるファイル管理
手段と、 前記記憶手段に記憶された前記演奏データ部分の大きさ
を示すデータ及び前記連結順を示すデータに基づき前記
記憶手段に記憶された演奏データを読み出す読出手段と
を具えたことを特徴とする電子楽器のファイル管理シス
テム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5152638A JPH06203534A (ja) | 1992-11-12 | 1993-06-01 | 電子楽器のファイル管理システム |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4-326190 | 1992-11-12 | ||
| JP32619092 | 1992-11-12 | ||
| JP5152638A JPH06203534A (ja) | 1992-11-12 | 1993-06-01 | 電子楽器のファイル管理システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06203534A true JPH06203534A (ja) | 1994-07-22 |
Family
ID=26481497
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5152638A Pending JPH06203534A (ja) | 1992-11-12 | 1993-06-01 | 電子楽器のファイル管理システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06203534A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH11176083A (ja) * | 1997-12-12 | 1999-07-02 | Hitachi Ltd | 画像音声記録再生装置 |
| JP2000067587A (ja) * | 1998-08-18 | 2000-03-03 | Sharp Corp | 一括消去型メモリを用いた情報記録再生装置 |
| US6819862B1 (en) | 1998-01-21 | 2004-11-16 | Kabushiki Kaisha Toshiba | Video data recording medium, video data recording apparatus and video data playback apparatus |
| US7389038B1 (en) | 1998-09-09 | 2008-06-17 | Sharp Kabushiki Kaisha | Multimedia information recording device and method for recording multimedia information file on recording medium |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6216274A (ja) * | 1985-07-13 | 1987-01-24 | Nippon Telegr & Teleph Corp <Ntt> | レコ−ド内音声デ−タの平準化方式 |
-
1993
- 1993-06-01 JP JP5152638A patent/JPH06203534A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6216274A (ja) * | 1985-07-13 | 1987-01-24 | Nippon Telegr & Teleph Corp <Ntt> | レコ−ド内音声デ−タの平準化方式 |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH11176083A (ja) * | 1997-12-12 | 1999-07-02 | Hitachi Ltd | 画像音声記録再生装置 |
| US6819862B1 (en) | 1998-01-21 | 2004-11-16 | Kabushiki Kaisha Toshiba | Video data recording medium, video data recording apparatus and video data playback apparatus |
| US7155112B2 (en) | 1998-01-21 | 2006-12-26 | Kabushiki Kaisha Toshiba | Video data recording medium, video data recording apparatus and video playback apparatus |
| JP2000067587A (ja) * | 1998-08-18 | 2000-03-03 | Sharp Corp | 一括消去型メモリを用いた情報記録再生装置 |
| US7389038B1 (en) | 1998-09-09 | 2008-06-17 | Sharp Kabushiki Kaisha | Multimedia information recording device and method for recording multimedia information file on recording medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5717153A (en) | Tone information processing device for an electronic musical instrument for generating sounds | |
| JPH06308964A (ja) | 楽音形成装置 | |
| JP2684899B2 (ja) | 電子楽器用音源装置 | |
| JP3448928B2 (ja) | 楽譜認識装置 | |
| JP2819948B2 (ja) | 楽音信号記録再生装置 | |
| JPH04285765A (ja) | デジタルレコーダ | |
| JPH11175062A (ja) | 情報出力装置、情報編集装置、及び記録媒体 | |
| US5850050A (en) | Method and apparatus for generating musical tones, method and apparatus for processing music data, method and apparatus reproducing processed music data and storage media for practicing same | |
| JPH0766265B2 (ja) | 演奏情報処理装置の割込処理制御部 | |
| JP2798077B2 (ja) | 電子楽器用音源装置 | |
| JP3521165B2 (ja) | ファイル管理システム及び方法 | |
| JP2743808B2 (ja) | 自動演奏装置 | |
| JP2995629B2 (ja) | 演奏データ編集装置 | |
| JP3460524B2 (ja) | 曲データ加工方法、加工後曲データ再生方法および記憶媒体 | |
| JP2563807Y2 (ja) | 楽音情報記憶装置 | |
| JPS607671A (ja) | 自動演奏装置における演奏情報の記録方法 | |
| JP3029339B2 (ja) | 楽音波形に関するデータの処理装置及び処理方法 | |
| JP3045018B2 (ja) | 波形記録再生装置 | |
| JPH08185164A (ja) | 自動演奏制御装置及びそれに使用する楽曲データ記憶装置 | |
| JP3489236B2 (ja) | シーケンスデータのソート処理装置/方法 | |
| JP2000122668A (ja) | デジタル音声データ処理装置およびコンピュータシステム | |
| JPH02139598A (ja) | 楽音データ編集装置 | |
| JP2947150B2 (ja) | 自動演奏装置 | |
| JP2715833B2 (ja) | 楽音発生装置 | |
| JP3075155B2 (ja) | 処理装置 |