JPH1031486A - 演奏データ記憶再生方法および装置 - Google Patents
演奏データ記憶再生方法および装置Info
- Publication number
- JPH1031486A JPH1031486A JP8184375A JP18437596A JPH1031486A JP H1031486 A JPH1031486 A JP H1031486A JP 8184375 A JP8184375 A JP 8184375A JP 18437596 A JP18437596 A JP 18437596A JP H1031486 A JPH1031486 A JP H1031486A
- Authority
- JP
- Japan
- Prior art keywords
- data
- performance data
- note
- event
- stored
- 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)
Abstract
(57)【要約】
【課題】 従来よりも少ない記憶容量で従来と同等の演
奏データを記憶再生することができる演奏データ記憶再
生方法および装置を実現する。 【解決手段】 演奏データを記憶する際には、同時発音
される各音符間の発音間隔を表わすインターバル時間を
省略する一方、また、インターバル時間を省略した演奏
データをメモリから読み出す場合、時間長「0」のイン
ターバル時間を復元して再生するので、従来よりも少な
い記憶容量で従来と同等の演奏データを記憶再生するこ
とが可能になる。
奏データを記憶再生することができる演奏データ記憶再
生方法および装置を実現する。 【解決手段】 演奏データを記憶する際には、同時発音
される各音符間の発音間隔を表わすインターバル時間を
省略する一方、また、インターバル時間を省略した演奏
データをメモリから読み出す場合、時間長「0」のイン
ターバル時間を復元して再生するので、従来よりも少な
い記憶容量で従来と同等の演奏データを記憶再生するこ
とが可能になる。
Description
【0001】
【発明の属する技術分野】本発明は、例えば、シーケン
サ等の自動演奏装置に用いて好適な演奏データ記憶再生
方法および装置に関する。
サ等の自動演奏装置に用いて好適な演奏データ記憶再生
方法および装置に関する。
【0002】
【従来の技術】従来より、所望の楽曲の各音符につい
て、その音符の音高や発音タイミング等からなる演奏デ
ータを記憶しておき、これを指定テンポで順次読み出し
て自動的に演奏するシーケンサ(自動演奏装置)が知ら
れている。
て、その音符の音高や発音タイミング等からなる演奏デ
ータを記憶しておき、これを指定テンポで順次読み出し
て自動的に演奏するシーケンサ(自動演奏装置)が知ら
れている。
【0003】通常、シーケンサでは、図6に示す形態の
演奏データをメモリに格納している。この図に示す演奏
データは、所謂、相対時間方式と呼ばれる形式で記述さ
れており、ノートオン/ノートオフする各音符の音高
(キーコード)、ベロシティ(音量)、発音イベントあ
るいは消音イベントの間隔を表わすインターバル時間か
ら構成される。
演奏データをメモリに格納している。この図に示す演奏
データは、所謂、相対時間方式と呼ばれる形式で記述さ
れており、ノートオン/ノートオフする各音符の音高
(キーコード)、ベロシティ(音量)、発音イベントあ
るいは消音イベントの間隔を表わすインターバル時間か
ら構成される。
【0004】具体的には、図6に図示する通り、夫々1
バイト長1ワードのノートオンデータNON、ベロシテ
ィデータVLD、タイムデータTM、ノートオフデータ
NOFおよびタイム拡張コマンドTIMECOMからな
る。ノートオンデータNONは、ノートイベントを表わ
す識別子KYとキーコードKCとからなる。識別子KY
は、MSBを「1」とするデータ(80h(16進表
示))である。一方、ノートオフデータNOFは、上記
ノートオンデータNONと同様に、識別子KYとキーコ
ードKCとからなる。このノートオフデータNOFと上
記ノートオンデータNONとの相違は、ベロシティデー
タVLDが続いて付加されるか否かにある。
バイト長1ワードのノートオンデータNON、ベロシテ
ィデータVLD、タイムデータTM、ノートオフデータ
NOFおよびタイム拡張コマンドTIMECOMからな
る。ノートオンデータNONは、ノートイベントを表わ
す識別子KYとキーコードKCとからなる。識別子KY
は、MSBを「1」とするデータ(80h(16進表
示))である。一方、ノートオフデータNOFは、上記
ノートオンデータNONと同様に、識別子KYとキーコ
ードKCとからなる。このノートオフデータNOFと上
記ノートオンデータNONとの相違は、ベロシティデー
タVLDが続いて付加されるか否かにある。
【0005】つまり、ノートオンデータNONの場合に
は、次のワードに識別子VLDとベロシティ値とからな
るベロシティデータVLDが付加されるが、ノートオフ
データNOFの場合には、こうしたベロシティデータV
LDが付加されない。なお、識別子VLDは、MSBを
「1」とするデータ(80h(16進表示))である。
は、次のワードに識別子VLDとベロシティ値とからな
るベロシティデータVLDが付加されるが、ノートオフ
データNOFの場合には、こうしたベロシティデータV
LDが付加されない。なお、識別子VLDは、MSBを
「1」とするデータ(80h(16進表示))である。
【0006】タイムデータTMは、識別子TMとインタ
ーバル時間とからなる。識別子TMは、「00h(16
進表示)」とするデータである。このタイムデータTM
によって表わし切れないインターバル時間は、タイム拡
張コマンドTIMECOMで定義される。タイム拡張コ
マンドTIMECOMに連続する2ワードでインターバ
ル時間が表わされる。この図に示す一例の場合、タイム
拡張コマンドTIMECOMに連続する「FFh(下位
1バイト)」および「10h(上位1バイト)」がイン
ターバル時間となる。
ーバル時間とからなる。識別子TMは、「00h(16
進表示)」とするデータである。このタイムデータTM
によって表わし切れないインターバル時間は、タイム拡
張コマンドTIMECOMで定義される。タイム拡張コ
マンドTIMECOMに連続する2ワードでインターバ
ル時間が表わされる。この図に示す一例の場合、タイム
拡張コマンドTIMECOMに連続する「FFh(下位
1バイト)」および「10h(上位1バイト)」がイン
ターバル時間となる。
【0007】これらデータによって表現される図6の演
奏データは、所定のテンポに応じてアドレス順に各ワー
ドが順次読み出されて解釈実行される。例えば、図6に
示す一例では、「キーコードC5の音」を、「ベロシテ
ィ(7Fh)で発音」し、「インターバル時間(00
h)」で「キーコードE5の音」を、「ベロシティ(6
0h)で発音」し、「インターバル時間(00h)」で
「キーコードG5の音」を、「ベロシティ(7Fh)で
発音」し、「インターバル時間(00h)」で「続く
(FFh)および(10h)の2語長で表わされるイベ
ント時間経過後」に、「キーコードC5の音を消音」
し、「インターバル時間(00h)」で「キーコードE
5の音を消音」し、「インターバル時間(00h)」で
「キーコードG5の音を消音」し、・・・というシーケ
ンスが再生されて自動演奏がなされる。
奏データは、所定のテンポに応じてアドレス順に各ワー
ドが順次読み出されて解釈実行される。例えば、図6に
示す一例では、「キーコードC5の音」を、「ベロシテ
ィ(7Fh)で発音」し、「インターバル時間(00
h)」で「キーコードE5の音」を、「ベロシティ(6
0h)で発音」し、「インターバル時間(00h)」で
「キーコードG5の音」を、「ベロシティ(7Fh)で
発音」し、「インターバル時間(00h)」で「続く
(FFh)および(10h)の2語長で表わされるイベ
ント時間経過後」に、「キーコードC5の音を消音」
し、「インターバル時間(00h)」で「キーコードE
5の音を消音」し、「インターバル時間(00h)」で
「キーコードG5の音を消音」し、・・・というシーケ
ンスが再生されて自動演奏がなされる。
【0008】
【発明が解決しようとする課題】ところで、上述した演
奏データをメモリに記憶して再生する従来の記憶再生方
法では、単に楽曲の進行順にシーケンシャルに記憶し、
これを指定テンポに応じて読み出し再生するだけであ
る。このため、楽曲を構成する音符の数によってはデー
タ量が膨大になり、メモリに収納し切れなくなるという
問題や、限られたメモリ容量に出来るだけ多くの演奏デ
ータを記憶させたいという要望を満たすことが困難であ
った。つまり、換言すれば、従来の記憶再生方法では、
記憶時に演奏データの容量を減縮しておき、再生時にこ
れを復元することが叶わなかった。
奏データをメモリに記憶して再生する従来の記憶再生方
法では、単に楽曲の進行順にシーケンシャルに記憶し、
これを指定テンポに応じて読み出し再生するだけであ
る。このため、楽曲を構成する音符の数によってはデー
タ量が膨大になり、メモリに収納し切れなくなるという
問題や、限られたメモリ容量に出来るだけ多くの演奏デ
ータを記憶させたいという要望を満たすことが困難であ
った。つまり、換言すれば、従来の記憶再生方法では、
記憶時に演奏データの容量を減縮しておき、再生時にこ
れを復元することが叶わなかった。
【0009】そこで、本発明は、このような事情に鑑み
てなされたもので、従来よりも少ない記憶容量で従来と
同等の演奏データを記憶再生することができる演奏デー
タ記憶再生方法および装置を提供することを目的として
いる。
てなされたもので、従来よりも少ない記憶容量で従来と
同等の演奏データを記憶再生することができる演奏デー
タ記憶再生方法および装置を提供することを目的として
いる。
【0010】
【課題を解決するための手段】上記目的を達成するた
め、請求項1に記載の演奏データ記憶再生方法では、楽
曲の各音符の音高、音量およびイベント間隔を表わす演
奏データの内、ノートイベントが同時の複数音符間の各
イベント間隔のみを省略し、それ以外の演奏データを記
憶する記憶過程と、この記憶過程によって記憶された演
奏データを読み出して再生する際に、前記ノートイベン
トが同時の複数音符間にそれぞれ時間長が「0」のイベ
ント間隔を付加して再生する再生過程とからなることを
特徴とする。
め、請求項1に記載の演奏データ記憶再生方法では、楽
曲の各音符の音高、音量およびイベント間隔を表わす演
奏データの内、ノートイベントが同時の複数音符間の各
イベント間隔のみを省略し、それ以外の演奏データを記
憶する記憶過程と、この記憶過程によって記憶された演
奏データを読み出して再生する際に、前記ノートイベン
トが同時の複数音符間にそれぞれ時間長が「0」のイベ
ント間隔を付加して再生する再生過程とからなることを
特徴とする。
【0011】また、請求項2に記載の演奏データ記憶再
生装置では、楽曲の各音符の音高、音量およびイベント
間隔を表わす演奏データの内、ノートイベントが同時の
複数音符間の各イベント間隔のみを省略し、それ以外の
演奏データを記憶する記憶手段と、この記憶過程によっ
て記憶された演奏データを再生する際に、前記ノートイ
ベントが同時の複数音符間にそれぞれ時間長が「0」の
発音間隔を付加して再生する再生手段とを具備すること
を特徴としている。
生装置では、楽曲の各音符の音高、音量およびイベント
間隔を表わす演奏データの内、ノートイベントが同時の
複数音符間の各イベント間隔のみを省略し、それ以外の
演奏データを記憶する記憶手段と、この記憶過程によっ
て記憶された演奏データを再生する際に、前記ノートイ
ベントが同時の複数音符間にそれぞれ時間長が「0」の
発音間隔を付加して再生する再生手段とを具備すること
を特徴としている。
【0012】本発明では、演奏データを記憶する際に、
ノートイベントが同時の複数音符間の各イベント間隔の
みを省略し、再生時には省略した各イベント間隔を時間
長「0」のイベント間隔として付加する。これにより、
従来よりも少ない記憶容量で従来と同等の演奏データを
記憶し、再生することが可能になる。
ノートイベントが同時の複数音符間の各イベント間隔の
みを省略し、再生時には省略した各イベント間隔を時間
長「0」のイベント間隔として付加する。これにより、
従来よりも少ない記憶容量で従来と同等の演奏データを
記憶し、再生することが可能になる。
【0013】
【発明の実施の形態】本発明による演奏データ記憶再生
方法は、シーケンサ等の自動演奏装置の他、MIDI楽
器などに適用され得る。以下では、本発明の実施の形態
であるシーケンサを実施例として図面を参照して説明す
る。 A.実施例の構成 図1は、本発明の一実施例によるシーケンサの構成を示
すブロック図である。この図において、1はシーケンサ
各部を制御するCPUであり、その特徴的な動作、つま
り、演奏データを記憶再生する動作については後述す
る。2はCPU1にロードされる各種制御プログラムや
各種データテーブル等が記憶されるROMである。3は
CPU1のワークエリアとして使用されるRAMであ
り、各種レジスタ・フラグが一時記憶される。
方法は、シーケンサ等の自動演奏装置の他、MIDI楽
器などに適用され得る。以下では、本発明の実施の形態
であるシーケンサを実施例として図面を参照して説明す
る。 A.実施例の構成 図1は、本発明の一実施例によるシーケンサの構成を示
すブロック図である。この図において、1はシーケンサ
各部を制御するCPUであり、その特徴的な動作、つま
り、演奏データを記憶再生する動作については後述す
る。2はCPU1にロードされる各種制御プログラムや
各種データテーブル等が記憶されるROMである。3は
CPU1のワークエリアとして使用されるRAMであ
り、各種レジスタ・フラグが一時記憶される。
【0014】また、このRAM3には、自動演奏に用い
る演奏データを記憶する演奏データエリアも設けられて
いる。演奏データエリアは、MIDIインタフェース4
を介して外部MIDI楽器(図示略)からシリアル形式
で取込んだMIDIデータを一時記憶するバッファ領域
と、このバッファ領域に記憶されたMIDIデータを、
後述する演奏データ記憶処理によってデータ容量を削減
した演奏データに変換して格納するデータ格納領域とに
分れている。データ格納領域にストアされた演奏データ
は、後述の再生処理により復元再生されて自動演奏に使
用される。なお、ここで言うMIDIデータとは、例え
ば、リアルタイム演奏されるMIDI楽器から出力され
る演奏情報である。
る演奏データを記憶する演奏データエリアも設けられて
いる。演奏データエリアは、MIDIインタフェース4
を介して外部MIDI楽器(図示略)からシリアル形式
で取込んだMIDIデータを一時記憶するバッファ領域
と、このバッファ領域に記憶されたMIDIデータを、
後述する演奏データ記憶処理によってデータ容量を削減
した演奏データに変換して格納するデータ格納領域とに
分れている。データ格納領域にストアされた演奏データ
は、後述の再生処理により復元再生されて自動演奏に使
用される。なお、ここで言うMIDIデータとは、例え
ば、リアルタイム演奏されるMIDI楽器から出力され
る演奏情報である。
【0015】MIDIインタフェース4は、外部MID
I楽器からシリアル形式で供給されるMIDIデータ
を、CPU1の指示に応じて取込み、上記バッファ領域
へ転送したり、上記データ格納領域に記憶されている演
奏データを、後述の再生処理により復元再生したものを
外部MIDI楽器側へ送出する。5はデータメモリであ
り、各種音色の波形データの他、各音色に対応したエン
ベロープデータ等が記憶される。6は波形メモリ読み出
し方式で構成される音源である。この音源6は、CPU
1から供給される演奏データ(あるいはMIDIデー
タ)に応じて上記データメモリ5から対応する音色の波
形データあるいはエンベロープデータを読み出して楽音
合成し、これにより生成される楽音波形Wを出力する。
I楽器からシリアル形式で供給されるMIDIデータ
を、CPU1の指示に応じて取込み、上記バッファ領域
へ転送したり、上記データ格納領域に記憶されている演
奏データを、後述の再生処理により復元再生したものを
外部MIDI楽器側へ送出する。5はデータメモリであ
り、各種音色の波形データの他、各音色に対応したエン
ベロープデータ等が記憶される。6は波形メモリ読み出
し方式で構成される音源である。この音源6は、CPU
1から供給される演奏データ(あるいはMIDIデー
タ)に応じて上記データメモリ5から対応する音色の波
形データあるいはエンベロープデータを読み出して楽音
合成し、これにより生成される楽音波形Wを出力する。
【0016】7はD/A変換器であり、音源6から出力
されるディジタル信号形式の楽音波形Wをアナログの楽
音信号に変換して出力する。8はサウンドシステムであ
り、D/A変換器7から出力される楽音信号を増幅した
後、不要ノイズ等を除去するフィルタリングを施して次
段のスピーカSPより放音させる。
されるディジタル信号形式の楽音波形Wをアナログの楽
音信号に変換して出力する。8はサウンドシステムであ
り、D/A変換器7から出力される楽音信号を増幅した
後、不要ノイズ等を除去するフィルタリングを施して次
段のスピーカSPより放音させる。
【0017】このような構成によるシーケンサでは、M
IDIインタフェース4を介して外部MIDI楽器から
供給されるMIDIデータを、CPU1の指示に応じて
RAM3のバッファ領域に取込む一方、このバッファ領
域に取込んだMIDIデータを、後述する演奏データ記
憶処理によってデータ容量を削減した演奏データに変換
してRAM3のデータ格納領域にストアする。一方、デ
ータ格納領域にストアされた演奏データに基づき自動演
奏する場合には、後述の再生処理を行って演奏データを
復元して再生する。つまり、このシーケンサにおいて
は、演奏データをメモリに格納する際にはそのデータ容
量を削減し、一方、メモリから読み出す際にはこれを復
元して再生し得るようになっている。
IDIインタフェース4を介して外部MIDI楽器から
供給されるMIDIデータを、CPU1の指示に応じて
RAM3のバッファ領域に取込む一方、このバッファ領
域に取込んだMIDIデータを、後述する演奏データ記
憶処理によってデータ容量を削減した演奏データに変換
してRAM3のデータ格納領域にストアする。一方、デ
ータ格納領域にストアされた演奏データに基づき自動演
奏する場合には、後述の再生処理を行って演奏データを
復元して再生する。つまり、このシーケンサにおいて
は、演奏データをメモリに格納する際にはそのデータ容
量を削減し、一方、メモリから読み出す際にはこれを復
元して再生し得るようになっている。
【0018】B.実施例の動作 次に、上記構成によるシーケンサにて実行される演奏デ
ータ記憶処理および再生処理の動作について説明する。 (1)演奏データ記憶処理の動作 本実施例によるシーケンサが記憶モードに設定され、C
PU1の指示の下に、MIDIインタフェース4を介し
て外部MIDI楽器から供給されるMIDIデータを、
RAM3のバッファ領域に取込んだとする。そうする
と、CPU1は図2に示す記憶処理ルーチンを実行して
ステップSA1に処理を進め、取込んだMIDIデータ
がノートイベントに関するデータであるか否かを判断す
る。
ータ記憶処理および再生処理の動作について説明する。 (1)演奏データ記憶処理の動作 本実施例によるシーケンサが記憶モードに設定され、C
PU1の指示の下に、MIDIインタフェース4を介し
て外部MIDI楽器から供給されるMIDIデータを、
RAM3のバッファ領域に取込んだとする。そうする
と、CPU1は図2に示す記憶処理ルーチンを実行して
ステップSA1に処理を進め、取込んだMIDIデータ
がノートイベントに関するデータであるか否かを判断す
る。
【0019】ここで、ノートイベントに関するデータで
なければ、判断結果が「NO」となり、本ルーチンを一
旦終了する。この後、CPU1は次のMIDIデータを
RAM3のバッファ領域に取込んでから再度、本ルーチ
ンを実行する。そして、取込んだMIDIデータがノー
トイベントを表わすデータであると、ステップSA1の
判断結果が「YES」となり、次のステップSA2に処
理を進める。ステップSA2では、取込んだイベント
が”ノートオン”であるか否かを判断する。
なければ、判断結果が「NO」となり、本ルーチンを一
旦終了する。この後、CPU1は次のMIDIデータを
RAM3のバッファ領域に取込んでから再度、本ルーチ
ンを実行する。そして、取込んだMIDIデータがノー
トイベントを表わすデータであると、ステップSA1の
判断結果が「YES」となり、次のステップSA2に処
理を進める。ステップSA2では、取込んだイベント
が”ノートオン”であるか否かを判断する。
【0020】ノートオンの場合 取込んだイベントが”ノートオン”であると、上記ステ
ップSA2の判断結果が「YES」となり、ステップS
A3に進む。ステップSA3では、タイマレジスタWIn
tervaltimeが「0」、すなわち、イベント間隔が「0」
であるか否かを判断する。なお、このタイマレジスタW
Intervaltimeは、イベント検出時点からタイマ割り込み
により一定周期毎にインクリメントされるものである。
ップSA2の判断結果が「YES」となり、ステップS
A3に進む。ステップSA3では、タイマレジスタWIn
tervaltimeが「0」、すなわち、イベント間隔が「0」
であるか否かを判断する。なお、このタイマレジスタW
Intervaltimeは、イベント検出時点からタイマ割り込み
により一定周期毎にインクリメントされるものである。
【0021】さて、ここで、最初のノートオンイベント
もしくは和音演奏などのように複数のノートオンイベン
トが連続する時には、上記ステップSA3の判断結果は
「YES」となり、次のステップSA4に処理を進め、
そのイベントをそのままRAM3のデータ保持領域にス
トアする。したがって、例えば、図6に示す演奏データ
を、MIDIデータとして取込んだ場合には、インター
バル時間「0」を表わすタイムデータTMが削除され、
図3に図示するように、ベロシティデータVLDが付加
されたノートオンデータNONが連続して記録されるこ
とになる。そして、次のステップSA5に進むと、CP
U1は上記タイマレジスタWIntervaltimeをゼロリセッ
トした後、一旦、本ルーチンを完了する。
もしくは和音演奏などのように複数のノートオンイベン
トが連続する時には、上記ステップSA3の判断結果は
「YES」となり、次のステップSA4に処理を進め、
そのイベントをそのままRAM3のデータ保持領域にス
トアする。したがって、例えば、図6に示す演奏データ
を、MIDIデータとして取込んだ場合には、インター
バル時間「0」を表わすタイムデータTMが削除され、
図3に図示するように、ベロシティデータVLDが付加
されたノートオンデータNONが連続して記録されるこ
とになる。そして、次のステップSA5に進むと、CP
U1は上記タイマレジスタWIntervaltimeをゼロリセッ
トした後、一旦、本ルーチンを完了する。
【0022】ノートオフの場合 一方、取込んだイベントが”ノートオフ”であると、上
述のステップSA2の判断結果が「NO」となり、CP
U1の処理はステップSA6に進む。ステップSA6で
は、タイマレジスタWIntervaltimeの値が「7F(16
進表示)」以下であるか、つまり、タイムデータTMで
表わし切れるインターバル時間(イベント間隔)である
かどうかを判断する。
述のステップSA2の判断結果が「NO」となり、CP
U1の処理はステップSA6に進む。ステップSA6で
は、タイマレジスタWIntervaltimeの値が「7F(16
進表示)」以下であるか、つまり、タイムデータTMで
表わし切れるインターバル時間(イベント間隔)である
かどうかを判断する。
【0023】ここで、タイムデータTMによって表わし
切れるインターバル時間(イベント間隔)であれば、判
断結果が「YES」となり、ステップSA7に進む。ス
テップSA7では、タイマレジスタWIntervaltimeの下
位1バイトの内容を、インターバル時間とするタイムデ
ータTMを記憶する。一方、タイムデータTMで表わし
切れるインターバル時間ではない時には、判断結果が
「NO」となり、ステップSA8に進む。ステップSA
8では、タイム拡張コマンドTIMECOMに連続する
2ワードでインターバル時間を表現し、最初のワードに
タイマレジスタWIntervaltimeの下位1バイトの内容
を、次のワードにタイマレジスタWIntervaltimeの上位
1バイトの内容を記録する。
切れるインターバル時間(イベント間隔)であれば、判
断結果が「YES」となり、ステップSA7に進む。ス
テップSA7では、タイマレジスタWIntervaltimeの下
位1バイトの内容を、インターバル時間とするタイムデ
ータTMを記憶する。一方、タイムデータTMで表わし
切れるインターバル時間ではない時には、判断結果が
「NO」となり、ステップSA8に進む。ステップSA
8では、タイム拡張コマンドTIMECOMに連続する
2ワードでインターバル時間を表現し、最初のワードに
タイマレジスタWIntervaltimeの下位1バイトの内容
を、次のワードにタイマレジスタWIntervaltimeの上位
1バイトの内容を記録する。
【0024】このように、演奏データ記憶処理では、イ
ンターバル時間「0」を表わすタイムデータTMだけを
省略して記憶するから、従来よりもデータ容量を減縮す
ることが可能になっており、例えば、図6に示す従来の
演奏データについて上述の演奏データ記憶処理を施した
場合、図3に示すデータ構造に変換され、都合3バイト
分のデータ削減となる。こうした処理は、特に、伴奏パ
ターンのコード演奏等のように、複数同時押鍵する演奏
データにおいて最も顕著にデータ容量を減縮し得る。
ンターバル時間「0」を表わすタイムデータTMだけを
省略して記憶するから、従来よりもデータ容量を減縮す
ることが可能になっており、例えば、図6に示す従来の
演奏データについて上述の演奏データ記憶処理を施した
場合、図3に示すデータ構造に変換され、都合3バイト
分のデータ削減となる。こうした処理は、特に、伴奏パ
ターンのコード演奏等のように、複数同時押鍵する演奏
データにおいて最も顕著にデータ容量を減縮し得る。
【0025】(2)再生処理の動作 次に、上述の演奏データ記憶処理によってデータ減縮さ
れた演奏データを復元して再生する動作について図4〜
図5を参照して説明する。いま、本実施例によるMID
Iシーケンサが再生モードに設定されたとする。そうす
ると、CPU1は自動演奏を行うメインルーチンを起動
し、このメインルーチンの周回コールに応じて図4に示
す再生処理ルーチンを実行してステップSB1に処理を
進める。
れた演奏データを復元して再生する動作について図4〜
図5を参照して説明する。いま、本実施例によるMID
Iシーケンサが再生モードに設定されたとする。そうす
ると、CPU1は自動演奏を行うメインルーチンを起動
し、このメインルーチンの周回コールに応じて図4に示
す再生処理ルーチンを実行してステップSB1に処理を
進める。
【0026】まず、ステップSB1では、タイマレジス
タRIntervaltimeの値が「0」以下であるか、つまり、
RAM3のデータ格納領域から演奏データを読み出すタ
イミングであるかどうかを判断する。なお、このタイマ
レジスタRIntervaltimeには、イベント間隔を表わすイ
ンターバル時間がセットされるようになっており、セッ
トされた時間がタイマ割り込み処理(図示略)に基づき
所定周期毎に減算される。
タRIntervaltimeの値が「0」以下であるか、つまり、
RAM3のデータ格納領域から演奏データを読み出すタ
イミングであるかどうかを判断する。なお、このタイマ
レジスタRIntervaltimeには、イベント間隔を表わすイ
ンターバル時間がセットされるようになっており、セッ
トされた時間がタイマ割り込み処理(図示略)に基づき
所定周期毎に減算される。
【0027】ここで、タイマレジスタRIntervaltimeの
値が「0」以下でない場合は、RAM3のデータ格納領
域から演奏データを読み出すタイミング下にないので、
判断結果が「NO」となり、一旦、本ルーチンを完了し
て図示されていないメインルーチンへ処理を戻す。一
方、タイマレジスタRIntervaltimeの値が「0」以下と
なり、RAM3のデータ格納領域から演奏データを読み
出すタイミングになると、判断結果が「YES」とな
り、次のステップSB2に処理を進める。
値が「0」以下でない場合は、RAM3のデータ格納領
域から演奏データを読み出すタイミング下にないので、
判断結果が「NO」となり、一旦、本ルーチンを完了し
て図示されていないメインルーチンへ処理を戻す。一
方、タイマレジスタRIntervaltimeの値が「0」以下と
なり、RAM3のデータ格納領域から演奏データを読み
出すタイミングになると、判断結果が「YES」とな
り、次のステップSB2に処理を進める。
【0028】ステップSB2に進むと、CPU1はレジ
スタTIMEdata0,TIMEdata1をゼロリ
セットする。これら両レジスタTIMEdata0,T
IMEdata1は、インターバル時間の下位1バイト
および上位1バイトがストアされるテンポラリバッファ
である。次いで、ステップSB3では、RAM3のデー
タ格納領域の先頭アドレスから1バイト長の演奏データ
を読み出してレジスタData0にストアすると共に、
読み出しアドレスポインタを1インクリメントして歩進
する。
スタTIMEdata0,TIMEdata1をゼロリ
セットする。これら両レジスタTIMEdata0,T
IMEdata1は、インターバル時間の下位1バイト
および上位1バイトがストアされるテンポラリバッファ
である。次いで、ステップSB3では、RAM3のデー
タ格納領域の先頭アドレスから1バイト長の演奏データ
を読み出してレジスタData0にストアすると共に、
読み出しアドレスポインタを1インクリメントして歩進
する。
【0029】そして、ステップSB4では、レジスタD
ata0にストアした演奏データと、80h(16進表
示)との論理積を求め、それが前述した識別子KYと一
致するか否かを判断する。つまり、読み出した演奏デー
タのMSBが「1」であるか否かを判断する。以下、読
み出した演奏データのMSBが「1」の場合と、「0」
の場合とに分けて説明を進める。
ata0にストアした演奏データと、80h(16進表
示)との論理積を求め、それが前述した識別子KYと一
致するか否かを判断する。つまり、読み出した演奏デー
タのMSBが「1」であるか否かを判断する。以下、読
み出した演奏データのMSBが「1」の場合と、「0」
の場合とに分けて説明を進める。
【0030】読み出した演奏データのMSBが「1」
の場合 この場合、演奏データはノートオンデータNON、ベロ
シティデータVLDおよびノートオフデータNOFのい
ずれかであり、これらを識別すべくステップSB5以降
に処理を進める。ステップSB5では、先に歩進された
読み出しアドレスポインタに対応して次の演奏データを
読み出してレジスタData1にストアすると共に、読
み出しアドレスポインタを更に1インクリメントして歩
進させる。
の場合 この場合、演奏データはノートオンデータNON、ベロ
シティデータVLDおよびノートオフデータNOFのい
ずれかであり、これらを識別すべくステップSB5以降
に処理を進める。ステップSB5では、先に歩進された
読み出しアドレスポインタに対応して次の演奏データを
読み出してレジスタData1にストアすると共に、読
み出しアドレスポインタを更に1インクリメントして歩
進させる。
【0031】次に、ステップSB6では、レジスタDa
ta1にストアした演奏データと、80h(16進表
示)との論理積を求め、それが前述した識別子VLと一
致するか否かを判断する。つまり、読み出した演奏デー
タのMSBが「1」であれば、ベロシティデータVLD
であり、レジスタData0に格納されている演奏デー
タが”ノートオンデータNON”と判断される。一方、
読み出した演奏データのMSBが「0」であれば、レジ
スタData0に格納されている演奏データが”ノート
オフデータNOF”と判断される。
ta1にストアした演奏データと、80h(16進表
示)との論理積を求め、それが前述した識別子VLと一
致するか否かを判断する。つまり、読み出した演奏デー
タのMSBが「1」であれば、ベロシティデータVLD
であり、レジスタData0に格納されている演奏デー
タが”ノートオンデータNON”と判断される。一方、
読み出した演奏データのMSBが「0」であれば、レジ
スタData0に格納されている演奏データが”ノート
オフデータNOF”と判断される。
【0032】(a)ノートオンデータNONの場合 上記ステップSB6の判断が「YES」となり、読み出
した演奏データがノートオンデータNONと判断された
時には、図5に示すステップSB7に進む。ステップS
B7では、先に歩進された読み出しアドレスポインタに
従って演奏データを読み出してレジスタData2にス
トアすると共に、読み出しアドレスポインタを1インク
リメントして歩進する。
した演奏データがノートオンデータNONと判断された
時には、図5に示すステップSB7に進む。ステップS
B7では、先に歩進された読み出しアドレスポインタに
従って演奏データを読み出してレジスタData2にス
トアすると共に、読み出しアドレスポインタを1インク
リメントして歩進する。
【0033】次いで、ステップSB8では、レジスタD
ata2にストアした演奏データと、80h(16進表
示)との論理積を求め、それが識別子KYと一致するか
否かを判断する。つまり、読み出した演奏データのMS
Bが「1」であれば、インターバル時間「0」のタイム
データTMが省略された次のノートオンデータNONを
読み込んだことになるから、この場合、判断結果を「Y
ES」として次のステップSB9に処理を進め、読み出
しアドレスポインタを1つ戻す。
ata2にストアした演奏データと、80h(16進表
示)との論理積を求め、それが識別子KYと一致するか
否かを判断する。つまり、読み出した演奏データのMS
Bが「1」であれば、インターバル時間「0」のタイム
データTMが省略された次のノートオンデータNONを
読み込んだことになるから、この場合、判断結果を「Y
ES」として次のステップSB9に処理を進め、読み出
しアドレスポインタを1つ戻す。
【0034】そして、ステップSB10に進むと、CP
U1はレジスタData0にストアしたノートオンデー
タNONと、レジスタData1にストアしたベロシテ
ィデータVLDとを音源6側に供給する。これにより、
音源6はノートオンデータNONのキーコードKCを、
ベロシティデータVLDのベロシティ値で発音するノー
トオン処理を行う。
U1はレジスタData0にストアしたノートオンデー
タNONと、レジスタData1にストアしたベロシテ
ィデータVLDとを音源6側に供給する。これにより、
音源6はノートオンデータNONのキーコードKCを、
ベロシティデータVLDのベロシティ値で発音するノー
トオン処理を行う。
【0035】これに対し、読み出した演奏データのMS
Bが「0」の場合、つまり、タイムデータTMを読み出
した時には、上記ステップSB8の判断結果が「NO」
となり、ステップSB11に処理を進める。ステップS
B11では、レジスタData2に格納したタイムデー
タTMからインターバル時間を抽出してレジスタTIM
Edata0にセットした後、上述したステップSB9
を介してステップSB10に進み、ノートオン処理を行
う。次いで、CPU1はステップSB12に進み、レジ
スタTIMEdata0に格納した1バイトのインター
バル時間を、前述のタイマレジスタRIntervaltimeに加
算する。この後、CPU1はステップSB1に処理を戻
し、次の演奏データ読み出しタイミングを判定する。
Bが「0」の場合、つまり、タイムデータTMを読み出
した時には、上記ステップSB8の判断結果が「NO」
となり、ステップSB11に処理を進める。ステップS
B11では、レジスタData2に格納したタイムデー
タTMからインターバル時間を抽出してレジスタTIM
Edata0にセットした後、上述したステップSB9
を介してステップSB10に進み、ノートオン処理を行
う。次いで、CPU1はステップSB12に進み、レジ
スタTIMEdata0に格納した1バイトのインター
バル時間を、前述のタイマレジスタRIntervaltimeに加
算する。この後、CPU1はステップSB1に処理を戻
し、次の演奏データ読み出しタイミングを判定する。
【0036】(b)ノートオフデータNOFの場合 さて、上述したステップSB6の判断が「NO」とな
り、読み出した演奏データがノートオフデータNOFと
判断された時には、図5のステップSB13に進む。ス
テップSB13では、レジスタData1に格納したタ
イムデータTMからインターバル時間を抽出してレジス
タTIMEdata0にセットした後、ステップSB1
4に処理を進め、レジスタData0に格納されるノー
トオフデータNOFが表わすキーコードKCの音を消音
させるノートオフ処理を実行する。次いで、CPU1は
ステップSB12に進み、レジスタTIMEdata0
に格納したインターバル時間を、タイマレジスタRInte
rvaltimeに加算した後、ステップSB1に処理を戻し、
次の演奏データ読み出しタイミングを判定する。
り、読み出した演奏データがノートオフデータNOFと
判断された時には、図5のステップSB13に進む。ス
テップSB13では、レジスタData1に格納したタ
イムデータTMからインターバル時間を抽出してレジス
タTIMEdata0にセットした後、ステップSB1
4に処理を進め、レジスタData0に格納されるノー
トオフデータNOFが表わすキーコードKCの音を消音
させるノートオフ処理を実行する。次いで、CPU1は
ステップSB12に進み、レジスタTIMEdata0
に格納したインターバル時間を、タイマレジスタRInte
rvaltimeに加算した後、ステップSB1に処理を戻し、
次の演奏データ読み出しタイミングを判定する。
【0037】読み出した演奏データのMSBが「0」
の場合 次に、レジスタData0に格納した演奏データのMS
Bが「0」の場合について述べる。この場合、上述した
ステップSB4の判断結果が「NO」となり、ステップ
SB15に処理を進める。ステップSB15に進むと、
CPU1はレジスタData0に格納した演奏データが
タイム拡張コマンドTIMECOMであるか否かを判断
する。
の場合 次に、レジスタData0に格納した演奏データのMS
Bが「0」の場合について述べる。この場合、上述した
ステップSB4の判断結果が「NO」となり、ステップ
SB15に処理を進める。ステップSB15に進むと、
CPU1はレジスタData0に格納した演奏データが
タイム拡張コマンドTIMECOMであるか否かを判断
する。
【0038】ここで、タイム拡張コマンドTIMECO
Mであれば、判断結果が「YES」となり、図5のステ
ップSB16に進む。ステップSB16では、前述のス
テップSB3にて歩進された読み出しアドレスポインタ
に従い、タイム拡張コマンドTIMECOMに続く、下
位1バイトのインターバル時間を読み出してレジスタT
IMEdata0にストアする一方、読み出しアドレス
ポインタを1インクリメントして歩進する。
Mであれば、判断結果が「YES」となり、図5のステ
ップSB16に進む。ステップSB16では、前述のス
テップSB3にて歩進された読み出しアドレスポインタ
に従い、タイム拡張コマンドTIMECOMに続く、下
位1バイトのインターバル時間を読み出してレジスタT
IMEdata0にストアする一方、読み出しアドレス
ポインタを1インクリメントして歩進する。
【0039】続いて、ステップSB17では、歩進され
たアドレスポインタに基づき、上位1バイトのインター
バル時間を読み出してレジスタTIMEdata1にス
トアする一方、読み出しアドレスポインタを1インクリ
メントして歩進する。次いで、ステップSB12では、
レジスタTIMEdata0,TIMEdata1に格
納した2バイトのインターバル時間を、タイマレジスタ
RIntervaltimeに加算した後、ステップSB1に処理を
戻し、次の演奏データ読み出しタイミングを判定する。
たアドレスポインタに基づき、上位1バイトのインター
バル時間を読み出してレジスタTIMEdata1にス
トアする一方、読み出しアドレスポインタを1インクリ
メントして歩進する。次いで、ステップSB12では、
レジスタTIMEdata0,TIMEdata1に格
納した2バイトのインターバル時間を、タイマレジスタ
RIntervaltimeに加算した後、ステップSB1に処理を
戻し、次の演奏データ読み出しタイミングを判定する。
【0040】ところで、上述したステップSB15の判
断結果が「NO」の場合、つまり、レジスタData0
に格納した演奏データがタイム拡張コマンドTIMEC
OM以外である時には、ステップSB18に処理を進
め、その他のコマンド処理に必要なデータを読み出して
アドレスポインタを歩進させるようにしている。ここで
言うその他のコマンド処理とは、例えば、ベンダ処理や
プログラムチェンジ処理等を指す。
断結果が「NO」の場合、つまり、レジスタData0
に格納した演奏データがタイム拡張コマンドTIMEC
OM以外である時には、ステップSB18に処理を進
め、その他のコマンド処理に必要なデータを読み出して
アドレスポインタを歩進させるようにしている。ここで
言うその他のコマンド処理とは、例えば、ベンダ処理や
プログラムチェンジ処理等を指す。
【0041】以上説明したように、再生処理ルーチンで
は、前述した演奏データ記憶処理ルーチンによってイン
ターバル時間「0」を表わすタイムデータTMが省略さ
れた演奏データを、従来と同じデータ形式の演奏データ
に復元して再生する。つまり、演奏データ記憶処理ルー
チンによって作成された図3のデータ構造の演奏データ
を、図6に示す従来の演奏データに戻して自動演奏させ
る訳である。
は、前述した演奏データ記憶処理ルーチンによってイン
ターバル時間「0」を表わすタイムデータTMが省略さ
れた演奏データを、従来と同じデータ形式の演奏データ
に復元して再生する。つまり、演奏データ記憶処理ルー
チンによって作成された図3のデータ構造の演奏データ
を、図6に示す従来の演奏データに戻して自動演奏させ
る訳である。
【0042】以上のように、本実施例によれば、楽曲の
各音符の音高や発音タイミング等を表わす演奏データに
おいて、同時発音される各音符間の発音間隔を表わすイ
ンターバル時間を省略する一方、また、インターバル時
間を省略した演奏データをメモリから読み出す場合、時
間長「0」のインターバル時間を復元して再生するの
で、従来よりも少ない記憶容量で従来と同等の演奏デー
タを記憶再生することが可能になる。
各音符の音高や発音タイミング等を表わす演奏データに
おいて、同時発音される各音符間の発音間隔を表わすイ
ンターバル時間を省略する一方、また、インターバル時
間を省略した演奏データをメモリから読み出す場合、時
間長「0」のインターバル時間を復元して再生するの
で、従来よりも少ない記憶容量で従来と同等の演奏デー
タを記憶再生することが可能になる。
【0043】なお、本実施例では、同時発音される各音
符間の発音間隔を表わすインターバル時間だけを省略す
るようにしたが、これに加えて、同時消音される各音符
間の消音間隔を表わすインターバル時間も省略する態様
も可能である。そのようにすれば、一層、データ削減が
進み、より少ない記憶容量で演奏データをメモリに格納
しておくことが可能になる。
符間の発音間隔を表わすインターバル時間だけを省略す
るようにしたが、これに加えて、同時消音される各音符
間の消音間隔を表わすインターバル時間も省略する態様
も可能である。そのようにすれば、一層、データ削減が
進み、より少ない記憶容量で演奏データをメモリに格納
しておくことが可能になる。
【0044】また、この実施例では、ノートオンとノー
トオフとの区別をベロシティデータVLDが続くか否か
で判断しているが、これに替えて、ノートオン・ノート
オフを区別するデータを用いるようにしても良く、同時
消音される各音符間の消音間隔を表わすインターバル時
間も省略する態様とする場合には、ノートオン・ノート
オフを区別するデータが必須となる。つまり、ノートオ
フデータの間に時間長「0」のインターバル時間が存在
する時には、一意的にこれを省略して記憶し、再生時に
は連続するノートオフデータの間に時間長「0」のイン
ターバル時間を表わすタイムデータTMを挿入してやれ
ば良い。
トオフとの区別をベロシティデータVLDが続くか否か
で判断しているが、これに替えて、ノートオン・ノート
オフを区別するデータを用いるようにしても良く、同時
消音される各音符間の消音間隔を表わすインターバル時
間も省略する態様とする場合には、ノートオン・ノート
オフを区別するデータが必須となる。つまり、ノートオ
フデータの間に時間長「0」のインターバル時間が存在
する時には、一意的にこれを省略して記憶し、再生時に
は連続するノートオフデータの間に時間長「0」のイン
ターバル時間を表わすタイムデータTMを挿入してやれ
ば良い。
【0045】
【発明の効果】本発明によれば、演奏データを記憶する
際に、ノートイベントが同時の複数音符間の各イベント
間隔のみを省略し、一方、再生時には省略した各イベン
ト間隔を、時間長「0」のイベント間隔として付加する
ので、従来よりも少ない記憶容量で従来と同等の演奏デ
ータを記憶再生することができる。
際に、ノートイベントが同時の複数音符間の各イベント
間隔のみを省略し、一方、再生時には省略した各イベン
ト間隔を、時間長「0」のイベント間隔として付加する
ので、従来よりも少ない記憶容量で従来と同等の演奏デ
ータを記憶再生することができる。
【図1】本発明による一実施例の構成を示すブロック図
である。
である。
【図2】演奏データ記憶処理ルーチンの動作を示すフロ
ーチャートである。
ーチャートである。
【図3】演奏データ記憶処理ルーチンによりデータ容量
が減縮された演奏データの一例を示す図である。
が減縮された演奏データの一例を示す図である。
【図4】再生処理ルーチンの動作を示すフローチャート
である。
である。
【図5】再生処理ルーチンの動作を示すフローチャート
である。
である。
【図6】従来の演奏データのデータ構造の一例を示す図
である。
である。
1 CPU 2 ROM 3 RAM 4 MIDIインタフェース回路 5 データメモリ 6 音源 7 D/A変換器 8 サウンドシテム
Claims (2)
- 【請求項1】 楽曲の各音符の音高、音量およびイベン
ト間隔を表わす演奏データの内、ノートイベントが同時
の複数音符間の各イベント間隔のみを省略し、それ以外
の演奏データを記憶する記憶過程と、 この記憶過程によって記憶された演奏データを読み出し
て再生する際に、前記ノートイベントが同時の複数音符
間にそれぞれ時間長が「0」のイベント間隔を付加して
再生する再生過程とからなることを特徴とする演奏デー
タ記憶再生方法。 - 【請求項2】 楽曲の各音符の音高、音量およびイベン
ト間隔を表わす演奏データの内、ノートイベントが同時
の複数音符間の各イベント間隔のみを省略し、それ以外
の演奏データを記憶する記憶手段と、 この記憶過程によって記憶された演奏データを再生する
際に、前記ノートイベントが同時の複数音符間にそれぞ
れ時間長が「0」の発音間隔を付加して再生する再生手
段とを具備することを特徴とする演奏データ記憶再生装
置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8184375A JPH1031486A (ja) | 1996-07-15 | 1996-07-15 | 演奏データ記憶再生方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8184375A JPH1031486A (ja) | 1996-07-15 | 1996-07-15 | 演奏データ記憶再生方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1031486A true JPH1031486A (ja) | 1998-02-03 |
Family
ID=16152115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8184375A Pending JPH1031486A (ja) | 1996-07-15 | 1996-07-15 | 演奏データ記憶再生方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH1031486A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1251488A1 (en) * | 1999-10-08 | 2002-10-23 | Yamaha Corporation | Contents data distributing method and telephone terminal device |
WO2006043790A1 (en) * | 2004-10-22 | 2006-04-27 | Lg Electronics, Inc. | Apparatus and method for reproducing midi file |
WO2006046817A1 (en) * | 2004-10-27 | 2006-05-04 | Lg Electronics, Inc. | Apparatus and method for reproducing midi file |
-
1996
- 1996-07-15 JP JP8184375A patent/JPH1031486A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1251488A1 (en) * | 1999-10-08 | 2002-10-23 | Yamaha Corporation | Contents data distributing method and telephone terminal device |
EP1251488A4 (en) * | 1999-10-08 | 2007-12-05 | Yamaha Corp | TABLE OF CONTENTS AND TELEPHONE TERMINAL |
WO2006043790A1 (en) * | 2004-10-22 | 2006-04-27 | Lg Electronics, Inc. | Apparatus and method for reproducing midi file |
WO2006046817A1 (en) * | 2004-10-27 | 2006-05-04 | Lg Electronics, Inc. | Apparatus and method for reproducing midi file |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0830284A (ja) | カラオケ装置 | |
JP2684899B2 (ja) | 電子楽器用音源装置 | |
JP2595800B2 (ja) | 自動演奏装置 | |
JPH1031486A (ja) | 演奏データ記憶再生方法および装置 | |
JP2001022350A (ja) | 波形再生装置 | |
JP2002091443A (ja) | 自動演奏装置 | |
JP2773648B2 (ja) | 電子楽器及び自動演奏装置 | |
JP2798077B2 (ja) | 電子楽器用音源装置 | |
JP2000242265A (ja) | 自動演奏装置 | |
JP4802947B2 (ja) | 奏法決定装置及びプログラム | |
JP3407563B2 (ja) | 自動演奏装置及び自動演奏方法 | |
JP3757664B2 (ja) | 演奏情報再生装置および演奏情報再生プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP3407625B2 (ja) | 自動演奏装置、自動演奏方法及びプログラムを記録した媒体 | |
JP4048639B2 (ja) | 音源装置 | |
JP3178176B2 (ja) | 自動伴奏装置 | |
JP2751772B2 (ja) | データ記憶装置 | |
JP3142434B2 (ja) | 電子楽器のシーケンサ | |
JP4120979B2 (ja) | 波形再生装置 | |
JP2003099039A (ja) | 楽曲データ編集装置及びプログラム | |
JPH08129394A (ja) | カラオケ装置 | |
JP3660379B2 (ja) | 音源制御情報の記憶方法及び音源制御装置 | |
JP3859139B2 (ja) | 編曲装置および編曲方法 | |
JPH04257895A (ja) | 自動伴奏システムのコードステップレコーディング装置及び方法 | |
JP3758267B2 (ja) | 音源回路設定方法、該方法によって設定される音源回路を備えたカラオケ装置、および記録媒体 | |
JP3098352B2 (ja) | 自動演奏装置 |