JP2000056759A - シーケンスデータ処理装置、及びコンピュータ読み取り可能な記録媒体 - Google Patents

シーケンスデータ処理装置、及びコンピュータ読み取り可能な記録媒体

Info

Publication number
JP2000056759A
JP2000056759A JP10220058A JP22005898A JP2000056759A JP 2000056759 A JP2000056759 A JP 2000056759A JP 10220058 A JP10220058 A JP 10220058A JP 22005898 A JP22005898 A JP 22005898A JP 2000056759 A JP2000056759 A JP 2000056759A
Authority
JP
Japan
Prior art keywords
data
sequence data
event
event data
sequence
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.)
Withdrawn
Application number
JP10220058A
Other languages
English (en)
Inventor
Yoshinori Yashiro
義徳 矢代
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP10220058A priority Critical patent/JP2000056759A/ja
Publication of JP2000056759A publication Critical patent/JP2000056759A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】 シーケンスデータの形式の変換を適正に行え
るようにする。 【解決手段】 ユーザがスイッチ群104を介してシー
ケンスデータの変換を指示した場合、CPU101は、
ICカード読取装置107にICカード110の変換対
象のシーケンスデータを読み取らせ、それをRAM10
3に格納する。変換は、変換対象のシーケンスデータを
構成するイベントデータをRAM103から順次読み出
しながら、それが演奏全体に関係するか否か判定するこ
とで、少なくとも2つのグループに分類して行い、変換
が終了したイベントデータはRAM103に確保した領
域に格納する。その後、グループ単位でイベントデータ
間の間隔を調べ、それが所定の間隔よりも大きければダ
ミーのイベントデータを挿入して、その間隔を所定の間
隔以下にする。これをCPU101はROM102のプ
ログラムを実行することで実現させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、自動演奏用のシー
ケンスデータをその形式とは異なる他の形式に変換する
ための技術に関する。
【0002】
【従来の技術】現在では、シーケンスデータを処理する
ことで自動演奏を行う機能(自動演奏機能)は電子楽器
等の楽音生成装置に広く搭載されていることもあって、
一般的な機能(装置)となっている。シーケンスデータ
処理装置は、そのような楽音生成装置に、ユーザがシー
ケンスデータの編集等を行うために搭載される装置であ
る。
【0003】上記シーケンスデータは、普通、演奏上の
イベントの内容を表すイベントデータに、それを処理す
べきタイミングを表す時間データが付加されて構成され
る。しかし、その形式(フォーマット)は様々である。
これに対し、自動演奏を行うために処理できる形式は普
通は限られている。現在では、スタンダードMIDIフ
ァイル(以降、SMFと呼ぶ)等の形でシーケンスデー
タは多数市販されている。これらのことから、シーケン
スデータ処理装置には、編集機能の一つとして、或る形
式のシーケンスデータを取り扱うことのできるその形式
とは異なる他の形式(以降、ローカルフォーマットとも
呼ぶことにする)のシーケンスデータに変換、即ち或る
形式のシーケンスデータから他の形式(ローカルフォー
マット)のシーケンスデータを生成する機能が搭載され
ることが多くなっている。
【0004】上記形式の変換内容は、演奏上のイベント
の内容を表すイベントデータの記述方法に関わるもの
(以降、イベント記述方法と呼ぶ)と、そのイベントデ
ータを処理するタイミングの管理方法に関わるもの(以
降、時間管理方法と呼ぶ)、更には、イベントデータの
編成に関わるもの(以降、編成方法と呼ぶ)、の計3種
類に大別することができる。
【0005】1番目のイベント記述方法における形式の
変換の内容としては、イベントの内容を表す識別子の変
更や、1イベントとして表現する範囲の変更等を挙げる
ことができる。
【0006】MIDIでは、ノートオンイベントやノー
トオフイベント等の演奏操作上の1イベントはそのまま
1イベントとして取り扱われる。しかし、ノートオンさ
れている時間(ゲートタイム)をパラメータ(項目)と
して付加すれば、楽音の発音に着目した形となって、ノ
ートオンイベントとノートオフイベントを1イベントと
して取り扱えるようになる。MIDIでは2つのイベン
トとして表現されていた楽音の発音が1つのイベントと
して取り扱えるようになる。1イベントとして表現する
範囲の変更とは、1イベントデータで表される演奏操作
上のイベント数の変更のことである。
【0007】2番目の時間管理方法における形式の変換
の内容としては、分解能の違いの調整や時間系の変更
(絶対時間系から相対時間系への変更、或いはその逆)
等を挙げることができる。
【0008】MIDIでは、イベントデータ(チャンネ
ルメッセージデータ)を基に発音させる楽音はチャンネ
ル単位で管理されている。しかし、イベントデータはチ
ャンネル単位で分けられているわけではなく、混在して
いる。イベントデータは、処理順序に従って並べたよう
に編成されている。これに対し、イベントデータは、楽
音の音色やパート等に着目して、複数のグループに分類
して編成することがある。3番目の編成方法における形
式の変換は、イベントデータをまとめるグループの種類
や数等を変更することである。そのようなグループにイ
ベントデータを分類した場合には、イベントデータはグ
ループ単位で編集や再生等の処理が行われる。なお、以
降、イベントデータをまとめる単位であるグループをト
ラックと呼ぶことにする。
【0009】上記したように、シーケンスデータの形式
は様々である。上述した3種類の変換のうちで行うべき
種類は、変換の前後におけるシーケンスデータの形式の
違いによって変化する。このため、シーケンスデータの
形式の変換は、変換の前後の形式の違いに応じて行われ
る。
【0010】
【発明が解決しようとする課題】上記形式の変換を行っ
た際にイベントデータを複数のトラックにまとめると、
1トラック分のイベントデータの数は小さくなり、イベ
ントデータ間の時間間隔が全体的に長くなる。相対時間
系の時間管理では、イベント間の時間間隔が短いことか
ら、絶対時間系のそれと比較して、時間データに割り当
てるビット数は少ない。表現できる時間は短くなってい
る。このため、イベントデータをトラック別に分類する
と、イベントデータ間の時間間隔が時間データに割り当
てたビット数で表現できなくなることがあるという問題
点があった。
【0011】なお、上記問題点は、時間データに割り当
てるビット数を増やすことで回避することができる。し
かし、そのようにすると、シーケンスデータ全体のデー
タ量を増大させるので望ましくない。このことから、上
記問題点は、時間データに割り当てるビット数を増やす
ことなく回避させることが要請されていた。
【0012】イベントデータには、楽音の発音に直接的
に関わるものだけでなく、例えばテンポ値の変更を指示
するといったように、演奏全体に関わるもの(以降、シ
ステムイベントデータと呼ぶことにする。そうでないイ
ベントデータは、演奏イベントデータと呼ぶことにす
る)もある。従来の形式の変換では、そのようなシステ
ムイベントデータを考慮することなく複数のトラックの
うちの何れかに分類していた。このため、或るトラック
だけを処理する場合にも、それを適正に処理するために
は他のトラックを広く参照(サーチ)しなければならな
かった。それにより、処理を効率的に行うことができな
いという問題点を生じさせていた。
【0013】従来におけるシーケンスデータの形式の変
換では、上記した以外の問題点も生じさせていた。この
ため、それらを含めて、形式の変換を行った際に生じて
いた問題点を回避できるように、形式の変換を適正に行
えるようにすることが強く望まれていた。
【0014】本発明の課題は、シーケンスデータの形式
の変換を適正に行えるようにすることにある。
【0015】
【課題を解決するための手段】本発明の第1〜第4の態
様のシーケンスデータ処理装置は、演奏上のイベントの
内容を表すイベントデータにそれを処理すべきタイミン
グを表す時間データを付加して構成されたシーケンスデ
ータを対象に処理を行うことを前提とする。第1、第3
及び第4の態様のシーケンスデータ処理装置は、演奏上
のイベントの内容を表すイベントデータにそれを処理す
べきタイミングを表す時間データを付加して構成された
第1のシーケンスデータから、該第1のシーケンスデー
タの形式とは異なる他の形式の第2のシーケンスデータ
を生成する処理を行うことも前提とする。それら各態様
のシーケンスデータ処理装置は、各々以下の手段を具備
している。
【0016】第1の態様のシーケンスデータ処理装置
は、第1のシーケンスデータを取得するシーケンスデー
タ取得手段と、シーケンスデータ取得手段が取得した第
1のシーケンスデータを基に、第2のシーケンスデータ
を生成するシーケンスデータ生成手段と、シーケンスデ
ータ生成手段が生成する第2のシーケンスデータ中に、
所定のイベントデータを挿入して配置するイベント挿入
手段と、を具備する。
【0017】なお、上記の構成において、シーケンスデ
ータ生成手段は、イベントデータを複数のグループに分
類して第2のシーケンスデータを生成する場合、個々の
楽音の発音に関わらないイベントデータを一つのグルー
プにまとめる、ことが望ましい。
【0018】第2の態様のシーケンスデータ処理装置
は、シーケンスデータを取得するシーケンスデータ取得
手段と、シーケンスデータ取得手段が取得したシーケン
スデータ中に、所定のイベントデータを挿入して配置す
るイベント挿入手段と、を具備する。
【0019】なお、上記第1、或いは第2の態様の構成
において、イベント挿入手段は、時間データで表される
時間間隔に基づいて、所定のイベントデータを挿入す
る、ことが望ましい。
【0020】第3の態様のシーケンスデータ処理装置
は、第1のシーケンスデータを取得するシーケンスデー
タ取得手段と、シーケンスデータ取得手段が取得した第
1のシーケンスデータを構成するイベントデータのなか
で個々の楽音の発音に関わらないイベントデータを一つ
のグループにまとめて第2のシーケンスデータを生成す
るシーケンスデータ生成手段と、を具備する。
【0021】第4の態様のシーケンスデータ処理装置
は、第1のシーケンスデータを取得するシーケンスデー
タ取得手段と、シーケンスデータ取得手段が取得した第
1のシーケンスデータを構成している所定のイベントデ
ータが処理されるタイミングを時間データから特定し
て、該特定したタイミングが予め定めた基準となるタイ
ミングと一致していない所定のイベントデータを削除、
或いは処理のタイミングを変更しつつ、該第1のシーケ
ンスデータから第2のシーケンスデータを生成するシー
ケンスデータ生成手段と、を具備する。
【0022】なお、上記の構成において、所定の種類の
イベントデータは、演奏の拍子の指定に関する情報を保
持するイベントデータであり、予め定めた基準となるタ
イミングは、小節の先頭のタイミングである、ことが望
ましい。
【0023】本発明の第1〜第4の態様の記録媒体は、
コンピュータが読み取り可能なものである。各態様の記
録媒体は、以下のようなプログラムを記録している。第
1の態様の記録媒体は、演奏上のイベントの内容を表す
イベントデータにそれを処理すべきタイミングを表す時
間データを付加して構成された第1のシーケンスデータ
を取得する手段と、取得する手段により取得された第1
のシーケンスデータから、該第1のシーケンスデータの
形式とは異なる他の形式の第2のシーケンスデータを生
成する手段と、生成する手段により生成される第2のシ
ーケンスデータ中に、所定のイベントデータを挿入して
配置する手段と、を実現させるためのプログラムを記録
している。
【0024】第2の態様の記録媒体は、演奏上のイベン
トの内容を表すイベントデータにそれを処理すべきタイ
ミングを表す時間データを付加して構成されたシーケン
スデータを取得する手段と、取得する手段により取得さ
れたシーケンスデータ中に、所定のイベントデータを挿
入して配置する手段と、を実現させるためのプログラム
を記録している。
【0025】第3の態様の記録媒体は、演奏上のイベン
トの内容を表すイベントデータにそれを処理すべきタイ
ミングを表す時間データを付加して構成された第1のシ
ーケンスデータを取得する手段と、取得する手段により
取得された第1のシーケンスデータを構成するイベント
データのなかで個々の楽音の発音に関わらないイベント
データを一つのグループにまとめて、該第1のシーケン
スデータの形式とは異なる他の形式の第2のシーケンス
データを生成する手段と、を実現させるためのプログラ
ムを記録している。
【0026】第4の態様の記録媒体は、演奏上のイベン
トの内容を表すイベントデータにそれを処理すべきタイ
ミングを表す時間データを付加して構成された第1のシ
ーケンスデータを取得する手段と、取得する手段により
取得された第1のシーケンスデータを構成している所定
のイベントデータが処理されるタイミングを時間データ
から特定して、該特定したタイミングが予め定めた基準
となるタイミングと一致していない所定のイベントデー
タを削除、或いは処理のタイミングを変更しつつ、該第
1のシーケンスデータから該第1のシーケンスデータの
形式とは異なる他の形式の第2のシーケンスデータを生
成する手段と、を実現させるためのプログラムを記録し
ている。
【0027】本発明では、シーケンスデータ中に、例え
ば時間データに基づいて所定のイベントデータを挿入す
る。その所定のイベントデータは、例えば自動演奏の内
容に影響しない種類のイベントデータである。そのよう
なイベントデータを挿入することで、イベントデータ間
の時間間隔が短くなり、より少ないビット数でイベント
データの処理タイミングを表せるようになる。
【0028】本発明では、シーケンスデータを構成する
イベントデータが演奏全体に影響するものか否か判定
し、その判定結果に従って分類して形式の変換を行う。
それにより、特定の種類のイベントデータを1つ、或い
は複数の予め定めたグループに分類する。その結果、特
定の種類のイベントデータの参照(サーチ)が容易、且
つ迅速に行えるようになり、処理効率を向上させられる
ようになる。
【0029】本発明では、シーケンスデータを構成する
所定のイベントデータが処理されるタイミングを時間デ
ータから特定し、特定したタイミングが予め定めた基準
となるタイミングと一致していない所定のイベントデー
タを削除、或いは処理のタイミングを変更して、シーケ
ンスデータの形式の変換を行う。それにより、所定のイ
ベントデータの処理タイミングが基準となるタイミング
と一致していないことで生じる悪影響(編集作業やシー
ケンスデータの表示等において生じる)は確実に回避さ
れることになる。
【0030】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しながら詳細に説明する。 <第1の実施の形態>図1は、本実施の形態によるシー
ケンスデータ処理装置を搭載した電子楽器の構成図であ
る。
【0031】図1に示すように、電子楽器100は、楽
器100全体の制御を行うCPU101と、プログラム
や各種制御用データ、及び複数のシーケンスデータ等を
格納したROM102と、CPU101が作業に用いる
RAM103と、各種のモードや機能の設定等をユーザ
が行うためのスイッチ群104と、CPU101の指示
に従って楽音を発音するサウンドシステム105と、特
には図示しない外部機器との間でMIDIデータの送受
信を行うMIDIインターフェイス106と、ICカー
ド110に格納されたシーケンスデータを読み取るIC
カード読取装置107と、ユーザによって操作される鍵
盤108と、CPU109の指示に従って各種の画像や
情報を表示する表示装置109と、を備えて構成されて
いる。
【0032】上記スイッチ群102は、例えば各種スイ
ッチと、それらのスイッチを走査(スキャン)してその
操作状態を検出する検出部とから構成されている。その
検出部は、例えばCPU101の指示に応じて各種スイ
ッチの走査を行い、それによって得たそれらの操作状態
を表す情報(以降、便宜的にスイッチ情報と呼ぶ)をC
PU101に送出する。
【0033】各種スイッチとしては、特に図示しない
が、自動演奏モードや編集モード等の各種モードの設
定、及びその解除を行うためのモードスイッチ、自動演
奏のスタート/ストップを指示するためのスタート/ス
トップスイッチ、リズムや音色、テンポ、或いはシーケ
ンスデータを対象に行う編集処理の内容等を指定するた
めの置数キー群、等が設けられている。
【0034】以上の構成において、その動作を説明す
る。不図示の電源スイッチがオンされると、CPU10
1は、ROM102に記憶されているプログラムを読み
出し、それを実行することで楽器100全体の制御を開
始する。
【0035】鍵盤装置108は、例えばユーザが操作す
る鍵盤と、その鍵盤を走査(スキャン)して各鍵の状態
の変化を検出し、その検出結果を鍵盤の操作情報として
出力する検出部とを備えたものである。その検出部は、
例えばCPU101の指示を受けて鍵盤の走査を行い、
それにより得た操作情報(検出結果)をCPU101に
出力する。CPU101は、その操作情報からサウンド
システム105、更にはMIDIインターフェイス10
6に出力すべき制御コマンドを生成して出力する。
【0036】サウンドシステム105は、例えばPCM
音源方式を採用したマルチ音源装置、その音源装置が出
力した波形データをD/A変換するD/Aコンバータ、
及びD/Aコンバータが出力するアナログのオーディオ
信号を入力して音声を放音するスピーカを備えたもので
ある。
【0037】CPU101は、鍵盤108から送られた
操作情報の他に、ICカード読取装置107から送られ
たシーケンスデータやROM102或いはRAM103
に格納したシーケンスデータ、更には、MIDIインタ
ーフェイス106が受信したMIDIデータに基づい
て、サウンドシステム105のマルチ音源装置に出力す
べき制御コマンドを生成する。MIDIインターフェイ
ス106の図示しないMIDI OUT端子にケーブル
が接続されている場合には、MIDIデータを生成し
て、それをMIDI OUT端子から外部に出力させ
る。
【0038】マルチ音源装置は、CPU101から送ら
れた制御コマンドに従って波形データを生成してD/A
コンバータに出力する。それにより、鍵盤108への操
作に応じて、シーケンスデータに従って、或いは受信し
たMIDIデータに従って、楽音がサウンドシステム1
05から発音される。
【0039】CPU101は、スイッチ群104に行っ
たユーザの操作内容を認識するために、その検出部に各
種スイッチの走査を行わせて、それらの操作状態を表す
スイッチ情報を受け取る。そのスイッチ情報を受け取る
と、それを前回に受け取ったスイッチ情報と比較するこ
とで、ユーザが新たに操作したスイッチを判別(特定)
し、その判別したスイッチに割り当てた機能に応じた設
定、或いは処理を行う。また、必要に応じて、ROM1
02から画像データを読み出して表示装置109に送
り、それの表示を指示する。それにより、モードや音
色、或いはテンポ等の設定が変更され、自動演奏は現在
のテンポの設定値で行われることになる。表示装置10
9は、ユーザに通知するべき情報を画像として表示する
ことになる。なお、上記テンポの設定値については、1
分間当たりの4分音符数で表すことにする。
【0040】図2は、上記ROM102に格納されてい
るシーケンスデータの構成例を説明する図である。図2
に示すように、シーケンスデータは、ソング(楽曲)別
に分けて格納されている。第1の実施の形態では、ソン
グ1〜10の計10個のソングのシーケンスデータをR
OM102に格納させている。各ソングのシーケンスデ
ータは、トラック1〜17の計17個のトラックに分割
され、各トラックには最低1個のイベントデータが格納
されている。トラック17には、演奏全体に関わるシス
テムイベントデータを格納させている。
【0041】図3は、シーケンスデータを構成するイベ
ントデータの構成図である。イベントデータは、上記シ
ステムイベントデータと、個々の楽音の発音に関わる演
奏イベントデータの2種類に大別することができる。図
3では、同図(a)に演奏イベントデータ、同図(b)
にシステムイベントデータの構成をそれぞれ分けて示し
ている。それら各イベントデータは、種類に関わらず8
バイトの固定長としている。
【0042】なお、ここでは、以降、特に断らない限
り、イベントデータは、それを処理すべきタイミングを
表す時間データ(後述する相対ステップ)を含んでいる
意味で用いることにする。
【0043】図3(a)に示すように、演奏イベントデ
ータは、直前のイベントデータとの間の相対的な時間差
(デルタタイム)を表す相対ステップ、イベントの種類
を表す識別子であり、且つ発音させる楽音の音高を表す
ノート番号、発音開始時の速度を表すノートオンベロシ
ティ、発音終了時の速度を表すノートオフベロシティ、
及び発音開始から発音終了までの時間を表すゲートタイ
ムの各項目のデータから構成されている。相対ステップ
には2バイト、ノート番号(イベントの識別子)、ノー
トオンベロシティ、及びノートオフベロシティには各々
1バイト、ゲートタイムには3バイトを割り当ててい
る。
【0044】相対ステップ、及びゲートタイムには、時
間管理上の最小単位であるステップ(クロック)の数で
表される時間が格納される。そのステップの幅は、周知
のように、分解能(4分音符あたりのステップ(クロッ
ク)数)とテンポ(の値)によって変化する。ここで
は、混乱を避けて理解を容易とするために、分解能は1
92と仮定して説明する。
【0045】他方のシステムイベントデータは、図3
(b)に示すように、相対ステップ、イベントの種類を
表す識別子であるコマンドID、及びコマンドIDで指
定されたイベントの処理を行うためのパラメータの各項
目のデータから構成されている。相対ステップには2バ
イト、コマンドIDには1バイト、パラメータには5バ
イトを各々割り当てている。
【0046】演奏イベントデータのノート番号には、1
27D(Dは十進数を表す)までの数値を格納するよう
にしている。そのため、コマンドIDとして格納する数
値は、128D以上としている。
【0047】第1の実施の形態では、基本的に、上述し
た形式(ローカルフォーマット)のシーケンスデータを
対象に自動演奏を行うようにしている。そのローカルフ
ォーマットとは異なる他のフォーマットのシーケンスデ
ータは、CPU101が以下のようにして、そのフォー
マットをローカルフォーマットに変換させる。
【0048】なお、その変換は、例えばユーザが他のフ
ォーマットのシーケンスデータが格納されたICカード
110をICカード読取装置107に装着させた後、ス
イッチ群104に対する操作を行い、ICカード100
に格納されたシーケンスデータの変換を指示することで
開始する。ここでは、理解を容易とするために、変換の
対象はSMFの形式のシーケンスデータとして説明する
ことにする。
【0049】MIDIでは、楽音の発音はチャンネル単
位で管理している。チャンネル数は16である。このこ
とから、チャンネルをトラックと対応づけしてMIDI
データ(チャンネルメッセージデータ)を分類してい
る。システムメッセージデータは、MIDIシステム全
体で共通に利用される。このため、それは、チャンネル
メッセージデータを分類するトラックとは別に用意した
トラックに分類している。そのようにイベントデータ
(MIDIデータ)を分類することから、トラック数を
17としている(図2参照)。システムメッセージデー
タ(システムイベントデータ)は、トラック17に分類
している。以降は、トラック17をシステムトラックと
も呼ぶことにする。
【0050】上記のようにイベントデータを分類する
と、或るトラックのみを対象に処理(自動演奏や編集
等)を行うとしても、システムトラックを更に参照(サ
ーチ)するだけでその処理を適正に行えるようになる。
また、他のトラックを参照する必要がなくなることか
ら、処理時間も短縮されることになる。これらのような
効果が得られることにより、処理効率を向上させること
ができる。
【0051】CPU101は、フォーマットの変換の開
始に先だって、変換後のデータを格納させる領域をRA
M103内に確保する。その領域は、トラック単位で分
けて確保する。変換対象のシーケンスデータ(SMF)
も、ICカード読取装置107を介してICカード11
0から読み出し、RAM103に格納させる。その後
は、変換の対象とするトラックを順次変更しながら、S
MFを構成するMIDIデータを先頭からそれが現在対
象としているトラックに分類すべきか否か判定してい
き、その判定結果に従ってMIDIデータ単位の分類と
変換を行う。例えば、そのMIDIデータが該当するト
ラックに分類すべきと判定した場合、その記述内容を変
換後のローカルフォーマットに合わせて変更し、RAM
103内の対応するトラックの領域に書き込む。それが
終了した後、次のMIDIデータの処理に移行する。そ
うでないと判定した場合には、そのMIDIデータの変
更は行わずに次のMIDIデータの処理に移行する。
【0052】このようにして、CPU101は、フォー
マットを変換したシーケンスデータをRAM103に格
納する。それにより、RAM103には、図2に示すよ
うに、シーケンスデータが格納されることになる。
【0053】ところで、SMFでは、MIDIデータは
チャンネル毎に分類されていない。様々なチャンネルの
MIDIデータが混在している。それをトラック(チャ
ンネル)単位で分類すると、イベント間の時間間隔が長
くなって、時間データ(相対ステップ)に割り当てたビ
ット数(ここでは16ビット)で表すことができなくな
ることが有り得る。そのようなことが起こったトラック
では、適正な処理を行うことができない。第1の実施の
形態では、それを以下のようにして回避させている。
【0054】先ず、変換では、相対ステップに2バイト
よりも大きいバイト数を割り当てることにより、イベン
トデータをトラックに分類しても、イベント間の時間間
隔を確実に表すことができるようにしている。そのよう
にして、フォーマットの変換を行った後、各トラック別
に、イベントの先頭から、2バイトで表すことのできる
時間間隔で所定のイベントデータを挿入・配置させてい
る。その挿入に合わせて、相対ステップの値を必要に応
じて修正している。その修正により、全イベントデータ
の相対ステップには、前のイベントからの時間間隔を2
バイトで表すことのできる値が格納されることになる。
そのため、イベントデータの配置を行いながら、相対ス
テップに割り当てるバイト数も2バイトに減らしてい
る。そのバイト数の低減を行うことで、形式変換を完了
させている。
【0055】上記所定のイベントデータは、演奏に実質
的に影響しないものである。そのようなイベントデータ
を挿入することにより、相対ステップ(時間データ)に
割り当てるビット数を小さく抑えることができる。それ
により、シーケンスデータ全体のデータ量もより小さく
抑えることができる。
【0056】図4は、形式変換完了後の1トラックのデ
ータ構成例を示す図である。図4に示すように、そのト
ラックは、ノート番号が60と65の2個の演奏イベン
トデータ(図中、ノートイベントデータ)から構成され
ている。コマンドIDが241の第2のイベントデータ
は、上記所定のイベントデータとして挿入された、ダミ
ーとしてのみ用いられるイベントデータ(以降、それを
NOPイベントデータと呼ぶ)である。パラメータとな
るデータは存在しない。コマンドIDが240の第4の
イベントデータは、トラックの最終イベントデータであ
ることを表すイベントデータ(以降、EOT(エンド・
オブ・トラック)イベントデータと呼ぶ)である。
【0057】上記したように、ここでは分解能を192
と仮定している。拍子を4/4と仮定すると、1小節を
表すステップ数は768(=192×4)となる。その
ため、2バイトで表すことのできる時間を小節に換算す
ると、85.3(=65536/768)小節となる。
これは、言い換えれば、それ以上のイベントデータの間
隔を2バイトでは表すことができないということであ
る。
【0058】このようなことから、本実施の形態では、
NOPイベントデータを、そのトラックのイベントの先
頭から、50小節(38400ステップ数)に相当する
間隔毎に挿入・配置するようにしている。第2のイベン
トデータであるNOPイベントデータの相対ステップの
値が37632となっているのは、その直前の第1のイ
ベントデータの相対ステップの値が768(=3840
0−37632)であるためである。
【0059】なお、本実施の形態では、トラックの先頭
から予め定めた時間間隔(50小節に対応する時間)毎
にダミーのイベントデータ(NOPイベントデータ)を
配置しているが、イベント間がその時間間隔より大きく
なる場合にのみダミーのイベントデータを配置するよう
にしても良い。そのダミーのイベントデータについて
は、必ずしも新たに用意する必要はなく、演奏に影響を
及ぼさないものであれば任意に用いることができる。
【0060】次に、上述したCPU101の制御動作に
ついて、図5、及び図6に示す各種動作フローチャート
を参照して、より詳細に説明する。ここでは、本発明に
特に関わる形式変換時に行う処理についてのみ説明す
る。
【0061】図5は、SMFをローカルフォーマットに
変換するフォーマット変換処理の動作フローチャートで
ある。この図5を参照して、始めにフォーマット変換処
理について詳細に説明する。
【0062】なお、そのフォーマット変換処理は、例え
ばユーザが他のフォーマットのシーケンスデータが格納
されたICカード110をICカード読取装置107に
装着させた後、スイッチ群104を介してSMF(シー
ケンスデータ)の変換を指示した場合にCPU101が
実行する処理である。
【0063】先ず、ステップ501では、イニシャライ
ズを行う。具体的には、RAM103へのSMFの格納
や領域の確保を始め、その領域にデータを書き込む位置
を管理するための変数であるポインタ(以降、書き込み
ポインタと呼ぶ)、及び対象とするトラックを管理する
ための変数byTrackへの初期値の代入等を行う。
このとき、変数byTrackには0を代入している。
【0064】ステップ501に続くステップ502で
は、変数byTrackの値が17か否か判定する。ロ
ーカルフォーマットにおけるトラック数は17であり、
変数byTrackの値は順次インクリメントするよう
になっている。このことから、SMFのフォーマット変
換が終了した場合、その判定はYESとなって一連の処
理を終了する。そうでない場合には、その判定はNOと
なってステップ503に移行する。
【0065】ステップ503では、RAM103に格納
したSMFからMIDIデータを読み出す位置を管理す
るための変数であるポインタ(以降、読み出しポインタ
と呼ぶ)に初期値を代入する。その初期値は、SMFの
なかで先頭のMIDIデータが格納されている位置の一
つ前を示す値である。それが終了した後、ステップ50
4に移行する。
【0066】ステップ504では、変数byTrack
の値が指定するトラックに分類するMIDIデータ(イ
ベントデータ)を全て読み出したか否か判定する。例え
ばSMFを構成する全てのMIDIデータ(イベントデ
ータ)の読み出しが終了した場合、その判定はYESと
なってステップ505に移行する。そうでない場合に
は、その判定はNOとなってステップ507に移行す
る。
【0067】ステップ505では、1トラック分の変換
が終了したとして、EOTイベントデータを書き込みポ
インタが指示する位置に書き込み、その書き込みポイン
タの値を更新する。その更新により、次の処理対象とす
るトラックに割り当てた領域内の位置を表す値を書き込
みポインタに代入する。
【0068】ステップ505に続くステップ506で
は、変数byTrackの値のインクリメントを行う。
それが終了した後、上記ステップ502に戻る。変数b
yTrackの値が指定するトラックの変換が完了して
いない場合、ステップ504の判定がNOとなってステ
ップ507に移行する。そのステップ507以降の処理
を実行することで、SMFを構成するMIDIデータ
(イベントデータ)が読み出だされ、MIDIデータ
(イベントデータ)単位の変換が行われる。
【0069】先ず、ステップ507では、読み出しポイ
ンタの値を更新、例えばインクリメントした後、その更
新後の値で指定されるMIDIデータをSMFから読み
出す。続くステップ508では、変数byTrackの
値が16か否か、即ち現在変換の対象としているトラッ
クがシステムトラックか否か判定する。現在システムト
ラックを変換対象としている場合、その判定はYESと
なってステップ513に移行する。そうでない場合に
は、その判定はNOとなってステップ509に移行す
る。
【0070】ステップ509では、ステップ507で読
み出したMIDIデータが変換対象か否か判定する。本
実施の形態では、システムメッセージデータはシステム
トラックに分類するようにしている。このため、ステッ
プ507で読み出したMIDIデータがチャンネルメッ
セージデータであった場合、その判定はYESとなって
ステップ510に移行する。そうでない場合には、その
判定はNOとなってステップ504に戻る。
【0071】ステップ510では、そのチャンネルメッ
セージデータが変数byTrackの値が指定するトラ
ックに対応するか否か判定する。本実施の形態では、チ
ャンネルをトラックと対応づけしている。このため、そ
れのステータスバイト中のチャンネル番号が変数byT
rackの値と等しい場合、その判定はYESとなって
ステップ511に移行する。そうでない場合には、その
判定はNOとなってステップ504に戻る。
【0072】ステップ511では、ステップ507で読
み出したMIDIデータ(チャンネルメッセージデー
タ)のフォーマットを、ローカルフォーマットに合わせ
て変換する。続くステップ512では、変換することで
得たイベントデータを、書き込みポインタの値が指定す
る位置に書き込み、その後に書き込みポインタの値の更
新を行う。それが終了すると、上記ステップ504に移
行する。
【0073】なお、MIDIでは、楽音を発音させてい
る期間をノートオンイベントとノートオフイベントで管
理しているのに対し、ローカルフォーマットでは、その
期間をゲートタイムで管理している。このことから、特
に詳細な説明は省略するが、例えばステップ511で
は、変換対象がチャンネルメッセージデータであった場
合、ノートオンイベントのチャンネルメッセージデータ
だけを対象にして変換を行うようになっている。ゲート
タイムは、その音高データと一致するノートオフイベン
トのチャンネルメッセージデータを検索してそれらの間
の時間間隔を求め、求めた時間間隔から算出している。
【0074】上記ステップ508の判定がYES、即ち
現在変換の対象としているトラックがシステムトラック
であった場合に移行するステップ513では、ステップ
507で読み出したMIDIデータが変換対象であるシ
ステムメッセージデータか否か判定する。そのMIDI
データがシステムメッセージデータであった場合、その
判定はYESとなってステップ511に移行する。そう
でない場合には、その判定はNOとなって上記ステップ
504に戻る。
【0075】上述したように、シーケンス変換処理で
は、対象とするトラックを順次変更しながら、SMFか
ら読み出したMIDIデータを分類すべきトラックに分
類して変換を行うようになっている。システムメッセー
ジデータはシステムトラックに分類して変換を行うよう
になっている。それにより、システムイベントデータが
様々なトラックに分類されるようなことを確実に回避さ
せている。
【0076】図6は、イベントデータ挿入処理の動作フ
ローチャートである。この挿入処理は、トラック毎に、
その先頭から予め定めた時間間隔(ここでは50小節に
対応する間隔)毎にNOPイベントデータを挿入(配
置)しつつ、その挿入に合わせて相対ステップの値の必
要に応じた変更やそれに割り当てたバイト数の削減を行
うための処理である。上述のフォーマット変換処理に続
けて実行される。次に、図6を参照して、イベントデー
タ挿入処理について詳細に説明する。
【0077】なお、図6に示すイベントデータ挿入処理
は、1トラックのみに着目してその処理動作の流れを表
したものである。実際には、NOPイベントデータの挿
入の対象とするトラックを順次変更しつつ、トラック単
位でNOPイベントデータの挿入を行うようになってい
る。
【0078】先ず、ステップ601では、イベントデー
タを順次読み出していくために用いる変数pEvent
に、現在NOPイベントデータの挿入(配置)の対象と
しているトラックの先頭イベントデータのアドレスの値
を代入する。続くステップ602では、NOPイベント
データの挿入位置を管理するために用いる変数dwSt
epSumに0を代入する。その後は、ステップ603
に移行する。
【0079】ステップ603では、変数pEventの
値によって指定されるイベントデータを読み出してその
中の相対ステップ数を変数wStepに代入するととも
に、相対ステップ数に割り当てたバイト数を2バイトに
減らす。それにより、1イベントデータを8バイトにす
る。ステップ604にはその後に移行する。
【0080】NOPイベントデータの挿入位置を示す値
(ここでは38400である)は変数dwInsSte
pに保持させている。ステップ604では、変数dwS
tepSumの値に変数wStepの値を加算した値が
変数dwInsStepの値より大きいか否か判定す
る。先頭イベントデータ、或いは前回に挿入したNOP
イベントデータとステップ603で相対ステップ数を読
み出したイベントデータの間が50小節に対応する時間
よりも長い場合、その判定はYESとなってステップ6
08に移行する。そうでない場合には、その判定はNO
となってステップ605に移行する。
【0081】ステップ605では、変数dwStepS
umの値に、変数wStepの値を累算する。即ち、そ
れまで保持していた値に変数wStepの値を加算して
得られる値を変数dwStepSumに新たに代入す
る。その後、ステップ606に移行する。
【0082】ステップ606では、ステップ603で読
み出したイベントデータがEOTイベントデータか否か
判定する。そのイベントデータ中のコマンドIDの値が
240であった場合(図4参照)、その判定はYESと
なって一連の処理を終了する。そうでない場合には、そ
の判定はNOとなってステップ607に移行し、変数p
Eventの値をインクリメントした後、ステップ60
3に戻る。それにより、処理対象を次のイベントデータ
に移す。
【0083】ステップ604の判定がYES、即ちNO
Pイベントデータを挿入すべき状況となって移行するス
テップ608以降では、NOPイベントデータの挿入に
関わる一連の処理が行われる。
【0084】先ずステップ608では、変数pEven
tの値で指定されるイベントデータを含むそれ以降に続
いているイベントデータを1個分だけ後方に移動させ
る。例えば変数pEventの値が10で指定されるイ
ベントデータは、その値が11のときに指定されるよう
にする。それが終了すると、次にステップ609で、変
数pEventの値に1を加算した値で指定されるイベ
ントデータ、即ちステップ603で読み出したイベント
データの相対ステップ数を修正する。後述するように、
NOPイベントデータは、変数pEventの値で指定
される位置(アドレス)に挿入する。その修正は、変数
dwStepSumの値に変数wStepの値を加算し
た値から変数dwInsStepの値を減算して得られ
る値、即ち挿入するNOPイベントデータからの時間間
隔を表すステップ数を新たな相対ステップ数として格納
することで行う。
【0085】ステップ609に続くステップ610で
は、変数pEventの値で指定される位置にNOPイ
ベントデータを挿入する(書き込む)。続くステップ6
11では、新たに挿入したNOPイベントデータの相対
ステップ数を修正する。その修正は、変数dwInsS
tepの値から変数dwStepSumの値を減算して
得られる値、即ち50小節に対応するステップ数から、
直前のイベントデータと先頭イベントデータとの間、或
いは直前のNOPイベントデータとの間の総ステップ数
を減算して得られる値を相対ステップ数として格納する
ことで行う。それが終了した後、ステップ612に移行
する。
【0086】ステップ611が終了した時点で、変数p
Eventの値に1を加算して得られる値で指定される
イベントデータまで処理が完了したことになる。そのた
め、ステップ612では、それまでの値に2を加算して
得られる値を変数pEventに代入する。続くステッ
プ613では、NOPイベントデータの挿入に合わせ
て、変数dwStepSumの値の更新を行う。具体的
には、変数dwStepSumに、ステップ609でイ
ベントデータに格納した相対ステップ数を代入する。直
前のNOPイベントデータからの時間間隔を表すステッ
プ数を変数dwStepSumに代入することで、ステ
ップ数の累算を行う基準位置を変更する。その後、ステ
ップ603に戻る。
【0087】上述したようにして、NOPイベントデー
タの挿入、イベントデータのバイト数の削減が行われ
る。それにより、イベントデータは、図3に示す構成と
なり、図4に示すようなイベントデータ(イベントデー
タ列)の構成が実現されることになる。
【0088】なお、第1の実施の形態では、フォーマッ
ト変換処理を行った後、イベント挿入処理を行うように
しているが、フォーマットの変換とダミーのイベントデ
ータの挿入を一つの処理で行うようにしても良い。結果
として、フォーマット変換後のシーケンスデータ中に挿
入すべきイベントデータを挿入させていることが重要で
あり、処理手順は任意で良い。
【0089】イベントデータ挿入処理は、フォーマット
変換処理と対にした形で実行させているが、フォーマッ
トの変換を行っていないシーケンスデータを対象に実行
させるようにしても良い。言い換えれば、時間データに
割り当てるビット数を少なくさせることによるデータ量
の低減のために実行させるようにしても良い。イベント
データ挿入処理は行わずに、フォーマット変換処理のみ
を行うようにしても良い。 <第2の実施の形態>システムイベントデータには、様
々な種類がある。MIDIでは、エクスクルーシブメッ
セージが用意されており、そのメッセージを用いた場合
には、更に種類を増やすことができる。
【0090】そのようなシステムイベントデータのなか
には、それが他のイベントデータの処理タイミングに直
接的、或いは間接的に影響するものがある。例えばテン
ポを変更するもの(以降、テンポイベントデータと呼
ぶ)や拍子を変更するもの(以降、拍子イベントデータ
と呼ぶ)である。
【0091】テンポイベントデータは、演奏速度を変更
させることから直接的に影響する。拍子イベントデータ
は、自動演奏には直接的に影響はしないが、小節の区切
りを変更することから、ユーザのシーケンスデータの編
集作業に影響を及ぼす。これは、普通、編集作業は小節
を単位にして、言い換えれば拍子イベントデータの位置
を基準にして行うことから、その位置がずれると、それ
以降のイベントデータも全てそのずれが影響してしまう
ことが殆どだからである。その結果、イベントデータの
処理タイミングに間接的に影響を及ぼすことになる。シ
ーケンスデータを表示させる場合には、拍子イベントデ
ータのずれはイベントデータの表示位置(処理タイミン
グに対応する)を大きく変化させてしまうこともある。
【0092】このようなことから、第2の実施の形態
は、システムイベントデータのなかで位置のずれが他に
大きく影響するものを対象に、その位置が適正か否か判
定し、その判定結果に従って位置の修正を行うようにし
たものである。
【0093】第2の実施の形態の構成は、第1の実施の
形態のそれと基本的に同じである。また、動作も、第1
の実施の形態のそれと基本的な流れは同じである。この
ため、第1の実施の形態で付した符号を用いて、第1の
実施の形態から異なる部分のみ説明する。
【0094】フォーマットの変換には、変換の前後で分
解能が異なっていればその調整も含まれる。それを行っ
て得られる値が相対ステップ数となる。しかし、分解能
が異なっていると、それらの数値の関係によっては変換
の前後で処理タイミングが微妙にずれることがある。例
えば変換後の分解能のほうが変換前の分解能よりも小さ
ければ、普通、数値の切り捨て、或いは切り上げといっ
た操作が必要となり、ずれが生じる。このことから、第
2の実施の形態では、フォーマット変換処理を実行した
際に、予め定めた種類のシステムイベントデータの位置
修正を合わせて行うようにしている。
【0095】図7は、第2の実施の形態によるフォーマ
ット変換処理の動作フローチャートである。第2の実施
の形態では、この図7を参照して、フォーマット変換処
理についてのみ説明する。
【0096】なお、このフォーマット変換処理も第1の
実施の形態と同様に、例えばユーザが他のフォーマット
のシーケンスデータが格納されたICカード110をI
Cカード読取装置107に装着させた後、スイッチ群1
04を介してSMF(シーケンスデータ)の変換を指示
した場合にCPU101が実行する処理である。
【0097】先ず、ステップ701では、イニシャライ
ズを行う。具体的には、RAM103へのSMFの格納
や領域の確保を始め、その領域にデータを書き込む位置
を管理するための書き込みポインタ、及び対象とするト
ラックを管理するための変数byTrackへの初期値
の代入等を行う。このとき、変数byTrackには0
を代入する。
【0098】ステップ701に続くステップ702で
は、変数byTrackの値が17か否か判定する。ロ
ーカルフォーマットにおけるトラック数は17であり、
変数byTrackの値は順次インクリメントするよう
になっている。このことから、SMFのフォーマット変
換が終了した場合、その判定はYESとなって一連の処
理を終了する。そうでない場合には、その判定はNOと
なってステップ703に移行する。
【0099】ステップ703では、RAM103に格納
したSMFからMIDIデータを読み出す位置を管理す
るための変数であるポインタ(以降、読み出しポインタ
と呼ぶ)に初期値を代入する。その初期値は、SMFの
なかで先頭のMIDIデータが格納されている位置の一
つ前を示す値である。それが終了した後、ステップ70
4に移行する。
【0100】ステップ704では、変数byTrack
の値が指定するトラックに分類するMIDIデータ(イ
ベントデータ)を全て読み出したか否か判定する。例え
ばSMFを構成する全てのMIDIデータ(イベントデ
ータ)の読み出しが終了した場合、その判定はYESと
なってステップ705に移行する。そうでない場合に
は、その判定はNOとなってステップ707に移行す
る。
【0101】ステップ705では、1トラック分の変換
が終了したとして、EOTイベントデータを書き込みポ
インタが指示する位置に書き込み、その書き込みポイン
タの値を更新する。その更新により、次の処理対象とす
るトラックに割り当てた領域内の位置を表す値を書き込
みポインタに代入する。
【0102】ステップ705に続くステップ706で
は、変数byTrackの値のインクリメントを行う。
それが終了した後、上記ステップ702に戻る。変数b
yTrackの値が指定するトラックの変換が完了して
いない場合、ステップ704の判定がNOとなってステ
ップ707に移行する。そのステップ707以降の処理
を実行することで、SMFを構成するMIDIデータ
(イベントデータ)が読み出だされ、MIDIデータ
(イベントデータ)単位の変換が行われる一方、所定の
システムイベントデータに対してはその位置修正も合わ
せて行われる。
【0103】先ず、ステップ707では、読み出しポイ
ンタの値を更新、例えばインクリメントした後、その更
新後の値で指定されるMIDIデータをSMFから読み
出す。続くステップ708では、変数byTrackの
値が16か否か、即ち現在変換の対象としているトラッ
クがシステムトラックか否か判定する。現在システムト
ラックを変換対象としている場合、その判定はYESと
なってステップ713に移行する。そうでない場合に
は、その判定はNOとなってステップ709に移行す
る。
【0104】ステップ709では、ステップ707で読
み出したMIDIデータが変換対象か否か判定する。ス
テップ707で読み出したMIDIデータがチャンネル
メッセージデータであった場合、その判定はYESとな
ってステップ710に移行する。そうでない場合には、
その判定はNOとなってステップ704に戻る。
【0105】ステップ710では、そのチャンネルメッ
セージデータが変数byTrackの値が指定するトラ
ックに対応するか否か判定する。本実施の形態では、チ
ャンネルをトラックと対応づけしている。このため、そ
れのステータスバイト中のチャンネル番号が変数byT
rackの値と等しい場合、その判定はYESとなって
ステップ711に移行する。そうでない場合には、その
判定はNOとなってステップ704に戻る。
【0106】ステップ711では、ステップ507で読
み出したMIDIデータ(チャンネルメッセージデー
タ)のフォーマットを、ローカルフォーマットに合わせ
て変換する。続くステップ712では、変換することで
得たイベントデータを、書き込みポインタの値が指定す
る位置に書き込み、その後に書き込みポインタの値の更
新を行う。それが終了すると、上記ステップ704に移
行する。
【0107】なお、MIDIでは、楽音を発音させてい
る期間をノートオンイベントとノートオフイベントで管
理しているのに対し、ローカルフォーマットでは、その
期間をゲートタイムで管理している。このことから、特
に詳細な説明は省略するが、例えばステップ711で
は、変換対象がチャンネルメッセージデータであった場
合、ノートオンイベントのチャンネルメッセージデータ
だけを対象にして変換を行うようになっている。ゲート
タイムは、その音高データと一致するノートオフイベン
トのチャンネルメッセージデータを検索してそれらの間
の時間間隔を求め、求めた時間間隔から算出している。
【0108】上記ステップ708の判定がYES、即ち
現在変換の対象としているトラックがシステムトラック
であった場合に移行するステップ713では、ステップ
707で読み出したMIDIデータが変換対象であるシ
ステムメッセージデータか否か判定する。そのMIDI
データがシステムメッセージデータであった場合、その
判定はYESとなってステップ714に移行する。そう
でない場合には、その判定はNOとなって上記ステップ
704に戻る。
【0109】第2の実施の形態では、拍子イベントデー
タのみを対象として位置修正を行うようにしている。こ
のことから、ステップ714では、ステップ707で読
み出したイベントデータが拍子イベントデータか否か判
定する。そのイベントデータのコマンドIDが拍子イベ
ントデータを表す値であった場合、その判定はYESと
なってステップ715に移行する。そうでない場合に
は、その判定はNOとなってステップ711に移行す
る。ステップ711に移行した場合には、位置修正を行
うことなく、システムイベントデータはフォーマットが
変換されることになる。
【0110】一方、ステップ715では、位置(ここで
は相対ステップ数)修正を含む拍子イベントデータのフ
ォーマットの変換を行う。その後、ステップ712に移
行する。
【0111】拍子イベントデータは小節の先頭に位置し
ているのが殆どである。このことから、第2の実施の形
態では、拍子イベントデータは小節の先頭に位置させる
べきとして、位置の修正を行っている。拍子イベントデ
ータの位置がずれの有無は、例えばシーケンスデータの
先頭イベントデータ、或いは直前の拍子イベントデータ
から現在対象としている拍子イベントデータまでの総相
対ステップ数が1小節に対応するステップ数の整数倍と
なっているか否かから判定する。位置修正は、それが整
数倍となっていないと判定した場合に行う。その修正
は、拍子イベントデータが最も近い小節の先頭に位置さ
せるように行う。このようなことが、上記ステップ71
5で行われる。
【0112】上記のようにして、拍子イベントデータは
予め定めた基準のタイミング(ここでは、小節の先頭位
置)で処理されるようにしている。それにより、その位
置がずれることによって生じる悪影響は確実に回避され
ることになる。上述したフォーマット変換処理が終了し
た後は、図6に示すイベントデータ挿入処理が続けて実
行される。
【0113】なお、第2の実施の形態では、拍子イベン
トデータのみを対象に位置修正を行うようにしている
が、位置修正の対象はそれに限定されるものではない。
拍子イベントデータに加える形で、或いはそれを省く形
で、他のシステムイベントデータ(例えばテンポイベン
トデータ)を位置修正の対象としても良い。位置修正の
基準となるタイミングも、小節の先頭位置に限定される
わけではなく、他のタイミングであっても良い。基準の
タイミングをユーザが指定できるようにしても良い。
【0114】拍子イベントデータの位置修正について
は、それを行わずに、変換しないようにしても良い。即
ち削除しても良い。その位置が基準のタイミングから離
れている度合いに応じて、位置修正と削除の何れかを選
択し、その選択結果に従って位置修正、或いは削除を行
うようにしても良い。その場合には、例えば基準のタイ
ミングから比較的に大きく離れているものは削除し、そ
れが比較的に小さければ位置修正を行うようにすること
が考えられる。位置修正か削除かをユーザが選択できる
ようにしても良い。 <第3の実施の形態>直前のイベントデータとの間が大
きく離れている位置に何らかのイベントデータを挿入す
る編集をユーザが行いたい場合に、割り当てられている
ビット数でイベント間の時間間隔を表せなくなることも
考えられる。第3の実施の形態は、そのような編集作業
における不具合の発生を回避できるようにしたものであ
る。
【0115】第3の実施の形態の構成は、第1の実施の
形態のそれと基本的に同じである。また、動作も、第
1、或いは第2の実施の形態のそれと基本的な流れは同
じである。このため、第1の実施の形態で付した符号を
用いて、第1の実施の形態から異なる部分のみ説明す
る。
【0116】編集作業は、スイッチ群104中のモード
スイッチを操作して編集モードを設定することで行える
ようになる。CPU101は、編集モードを設定する
と、ユーザが指定している編集対象のシーケンスデータ
の内容を表示装置109に表示させる。それにより、ユ
ーザが表示装置109を見ながら編集作業を行えるよう
にさせている。
【0117】図8は、イベントデータ挿入編集処理の動
作フローチャートである。この処理は、編集モード設定
時に、1個のイベントデータをシーケンスデータ中の目
的位置に挿入させることをユーザが指示した場合にCP
U101が実行するものである。第3の実施の形態で
は、この図8を参照して、イベントデータ挿入編集処理
についてのみ説明する。
【0118】なお、特に詳細な説明は省略するが、イベ
ントデータを挿入させるために、ユーザは、イベントデ
ータの内容や挿入するトラック番号、及び挿入位置を入
力(指定)するようになっている。イベントデータ挿入
編集処理は、それら入力された内容に応じて行われる。
挿入位置は、シーケンスデータ(楽曲)の先頭から挿入
位置までのステップ数で指定するようになっている。
【0119】第3の実施の形態では、ユーザが編集対象
とできるのをRAM103に格納されているシーケンス
データだけとしている。ユーザが指定したイベントデー
タは、そのシーケンスデータ中に挿入させている。この
ことから、先ず、ステップ801では、そのシーケンス
データ用に割り当てた領域に1個分のイベントデータを
格納できる空きがあるか否か判定する。そのような空き
がある場合、その判定はYESとなってステップ803
に移行する。そうでない場合には、その判定はNOとな
ってステップ802に移行する。
【0120】イベントデータを挿入(追加)できる空き
がなくては挿入を行うことができない。そのため、ステ
ップ802では、空きがない旨を警告する情報を表示装
置109に表示させる。それが終了した後、一連の処理
を終了する。なお、その情報の表示は、例えばCPU1
01が、ROM102からそれに必要な画像データを読
み出して表示装置109に出力し表示を指示することで
行われる。
【0121】他方のステップ803では、イベントデー
タを順次読み出していくために用いる変数pEvent
に、イベントデータの挿入(配置)の対象としているト
ラックの先頭イベントデータのアドレスの値を代入す
る。続くステップ804では、先頭イベントデータ以降
の相対ステップ数を累算するために用いる変数dwSt
epSumに0を代入する。その後は、ステップ805
に移行する。
【0122】ステップ805では、変数pEventの
値によって指定されるイベントデータを読み出してその
中の相対ステップ数を変数wStepに代入する。ステ
ップ806にはそれが終了した後に移行する。
【0123】ユーザが指定した挿入位置を示すステップ
数は、変数dwInsStepに代入することで保持さ
せている。ステップ806では、その変数dwInsS
tepの値が、変数dwStepSumの値に変数wS
tepの値を加算した値以下か否か判定する。ステップ
805で読み出したイベントデータが挿入位置の後に位
置していた場合、その判定はYESとなってステップ8
21に移行する。そうでない場合には、その判定はNO
となってステップ807に移行する。
【0124】ステップ807では、変数dwStepS
umの値に、変数wStepの値を累算する。即ち、そ
れまで保持していた値に変数wStepの値を加算して
得られる値を変数dwStepSumに新たに代入す
る。その後、ステップ808に移行する。
【0125】ステップ808では、ステップ805で読
み出したイベントデータがEOTイベントデータか否か
判定する。そのイベントデータ中のコマンドIDの値が
240であった場合(図4参照)、その判定はYESと
なってステップ810に移行する。そうでない場合に
は、その判定はNOとなってステップ809に移行し、
変数pEventの値をインクリメントした後、ステッ
プ805に戻る。
【0126】ステップ805〜809は処理ループを形
成しており、その処理ループはステップ806或いは8
08の判定がYESとなるまで繰り返し行われる。それ
により、ユーザが指定したイベントデータを挿入させる
シーケンスデータ中の位置をサーチしている。
【0127】ステップ808の判定がYESとなるとい
うことは、ユーザは挿入位置としてトラックの最終イベ
ントデータより後を指定したことを意味する。ステップ
810〜820は、そのことに対応してイベントデータ
を挿入するための一連の処理である。
【0128】上記したように、イベント間は2バイトで
表すことのできる時間間隔でなければならない。しか
し、2バイトで表せない程離れた位置にイベントデータ
を挿入させることをユーザが指示しないとは限らない。
このことから、第3の実施の形態では、トラックの最終
イベントデータ(EOTイベントデータを除いたもので
ある)以降に、図6のイベントデータ挿入処理と同様に
して、50小節に対応する時間間隔毎にNOPイベント
データを挿入するようにしている。
【0129】先ず、ステップ810では、挿入が必要な
NOPイベントデータ数を算出して、それを変数wNO
PNumに代入する。必要なNOPイベントデータ数w
NopNumは、NOPイベントデータの挿入間隔のス
テップ数(38400Dである)をNOP_INTER
VALとすると、wNopNum=(dwInsSte
p/NOP_INTERVAL)−(dwStepSu
m/NOP_INTERVAL)となる。wNopNu
mは小数点以下を切り捨てた整数である。
【0130】ステップ810に続くステップ811で
は、変数wNopNumの値が0か否か判定する。NO
Pイベントデータの挿入が必要ない場合、その判定はY
ESとなってステップ820に移行する。そうでない場
合には、その判定はNOとなってステップ812に移行
する。
【0131】ステップ812では、変数wNopNum
の値に1(これは、ユーザが挿入を指示したイベントデ
ータ分である)を加算して得られる数のイベントデータ
を格納できる空きがあるか否か判定する。その空きがな
い場合、その判定はNOとなって上記ステップ802に
移行して警告表示を行う。そうでない場合には、即ち空
きがある場合には、その判定はYESとなってステップ
813に移行する。
【0132】ステップ813では、NOPイベントデー
タやユーザが指示したイベントデータを挿入するため
に、変数wNopNumの値に1を加算して得られる値
の分だけEOTイベントデータを後方に移動させる。例
えば変数wNopNumの値が3であれば、32(=4
×8)バイトだけ格納位置をずらす。その後はステップ
814に移行する。
【0133】ステップ814では、変数pEventの
値によって指定される位置から、変数wNopNumの
値の分だけNOPイベントデータを挿入(書き込む)す
る。このとき、各NOPイベントデータは、相対ステッ
プ数をNOP_INTERVAL(38400D)とし
て挿入する。続くステップ815では、ステップ814
で挿入した(書き込んだ)NOPイベントデータのうち
で先頭に位置するNOPイベントデータの相対ステップ
数を修正する。その修正は、修正後のステップ数をNo
pIntとすると、NopInt=NOP_INTER
VAL−(dwStepSum%NOP_INTERV
AL)(式中の「%」は剰余演算子を表す)で求められ
る値を新たに相対ステップ数として書き込むことで行
う。この修正を行うことで、先頭NOPイベントデータ
は、シーケンスデータ(楽曲)の先頭から50×m(m
は整数)小節離れた位置に挿入されることになる。
【0134】ステップ815が終了した後に移行するス
テップ816では、変数dwStepSumの値を修正
する。その修正は、ステップ815で新たに書き込んだ
相対ステップ数に、変数wNopNumの値にNOP_
INTERVALを乗算した値を加算することで得られ
る値を、変数dwStepSumに新たに代入すること
で行う。
【0135】次のステップ817では、NOPイベント
データの挿入に合わせて、変数pEventの値の更新
を行う。その更新は、それまでの値に変数wNopNu
mの値を加算して得られる値を新たに代入することで行
う。それが終了すると、ステップ818に移行する。
【0136】ステップ818では、変数pEventの
値が指定する位置に、ユーザが指示したイベントデータ
を挿入する。続くステップ819では、そのイベントデ
ータの相対ステップ数の修正を行う。その修正は、変数
dwInsStepの値から変数dwStepSumの
値を減算して得られる値を相対ステップ数として新たに
書き込むことで行う。このとき、そのようにして書き込
まれる値は、直前のNOPイベントデータとの間のステ
ップ数である。ステップ819を終了した後に一連の処
理を終了する。
【0137】一方、ステップ811の判定がYES、即
ちNOPイベントデータを納入する必要がない場合に移
行するステップ820では、EOTイベントデータを1
個分後方に移動する。EOTイベントデータをそれまで
の位置から8バイトだけずれた位置に格納する。その後
は、ステップ818に移行して、ユーザが指示したイベ
ントデータの挿入を行う。
【0138】上述したようにして、第3の実施の形態で
は、ユーザが指示したイベントデータの挿入位置とそれ
の直前のイベントデータとの間の間隔に応じて、ダミー
であるNOPイベントデータを挿入している。このた
め、相対ステップ数に割り当てるビット数を増やすこと
なく、任意の位置にイベントデータを挿入する編集をユ
ーザに行わせることができる。
【0139】ステップ806の判定がYES、即ちユー
ザが指示したイベントデータの挿入位置がEOTイベン
トデータよりも前に位置していた場合、各イベントデー
タ間はNOPイベントデータの挿入間隔よりも短い間隔
であることから、NOPイベントデータを挿入する必要
はないことになる。このことから、ステップ821で
は、変数pEventの値が指定するイベントデータ以
降のイベントデータを1個分だけ後方に移動させる。
【0140】例えば変数pEventの値が10で指定
されるイベントデータは、その値が11のときに指定さ
れるようにする。それが終了すると、次にステップ82
2で、変数pEventの値に1を加算した値で指定さ
れるイベントデータ、即ちステップ805で読み出した
イベントデータの相対ステップ数を修正する。その修正
は、変数dwStepSumの値に変数wStepの値
を加算した値から変数dwInsStepの値を減算し
て得られる値、即ちユーザが指示したイベントデータの
挿入位置からの時間間隔を表すステップ数を新たな相対
ステップ数として書き込むことで行う。それの終了後、
上述したステップ818に移行する。
【0141】なお、第3の実施の形態では、シーケンス
データ(楽曲)の先頭を基準にしてNOPイベントデー
タを挿入するようにしているが、最終イベントデータを
基準にしてNOPイベントデータを挿入するようにして
も良い。ユーザが指示したイベントデータの挿入位置が
最終イベントデータより後であれば、その旨をユーザに
通知するようにしても良い。
【0142】本実施の形態(第1〜第3の実施の形態)
によるシーケンスデータ処理装置は、電子楽器100に
搭載されたものであるが、搭載可能な装置は電子楽器に
限定されるものではない。シーケンサ装置やシンセサイ
ザ等の他の楽音生成装置にも広く搭載できる。上記した
動作を実現させるためのプログラムを用意した場合に
は、コンピュータに適用させることもできる。そのプロ
グラムは、フロッピーディスクやCD−ROM、或いは
光磁気ディスク等の記録媒体に記録して配布しても良
く、所定のネットワークを介して配信するようにしても
良い。
【0143】
【発明の効果】以上、説明したように本発明は、シーケ
ンスデータ中に、例えば時間データに基づいて所定のイ
ベントデータを挿入する。そのため、イベントデータ間
の時間間隔を短くさせて、より少ないビット数でイベン
トデータの処理タイミングを表せるようにすることがで
きる。それにより、シーケンスデータ全体のデータ量を
低減させることもできる。
【0144】また、本発明は、シーケンスデータを構成
するイベントデータが演奏全体に影響するものか否か判
定し、その判定結果に従って分類して形式の変換を行
う。それにより、特定の種類のイベントデータを1つ、
或いは複数の予め定めたグループに分類するため、特定
の種類のイベントデータの参照(サーチ)を容易、且つ
迅速に行うことができる。その結果、処理効率も向上す
ることになる。
【0145】また、本発明は、シーケンスデータを構成
する所定のイベントデータが処理されるタイミングを時
間データから特定し、特定したタイミングが予め定めた
基準となるタイミングと一致していない所定のイベント
データを削除、或いは処理のタイミングを変更して、シ
ーケンスデータの形式の変換を行う。そのため、所定の
イベントデータの処理タイミングが基準となるタイミン
グと一致していないことで生じる悪影響を確実に回避さ
せることができる。
【0146】上記各発明を組み合わせた場合には、各発
明が有する効果をそれぞれ得ることができる。
【図面の簡単な説明】
【図1】本実施の形態によるシーケンスデータ処理装置
を搭載した電子楽器の構成図である。
【図2】ROMに格納されているシーケンスデータの構
成例を説明する図である。
【図3】イベントデータの構成図である。
【図4】形式変換完了後の1トラックのデータ構成例を
示す図である。
【図5】フォーマット変換処理の動作フローチャートで
ある。
【図6】イベントデータ挿入処理の動作フローチャート
である。
【図7】フォーマット変換処理の動作フローチャートで
ある(第2の実施の形態)。
【図8】イベントデータ挿入編集処理の動作フローチャ
ートである(第3の実施の形態)。
【符号の説明】
100 電子楽器 101 CPU 102 ROM 103 RAM 104 スイッチ群 105 サウンドシステム 106 MIDIインターフェイス 107 ICカード読取装置 108 鍵盤 109 表示装置 110 ICカード

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 演奏上のイベントの内容を表すイベント
    データにそれを処理すべきタイミングを表す時間データ
    を付加して構成された第1のシーケンスデータから、該
    第1のシーケンスデータの形式とは異なる他の形式の第
    2のシーケンスデータを生成する処理を行う装置であっ
    て、 前記第1のシーケンスデータを取得するシーケンスデー
    タ取得手段と、 前記シーケンスデータ取得手段が取得した第1のシーケ
    ンスデータを基に、第2のシーケンスデータを生成する
    シーケンスデータ生成手段と、 前記シーケンスデータ生成手段が生成する前記第2のシ
    ーケンスデータ中に、所定のイベントデータを挿入して
    配置するイベント挿入手段と、 を具備したことを特徴とするシーケンスデータ処理装
    置。
  2. 【請求項2】 前記シーケンスデータ生成手段は、前記
    イベントデータを複数のグループに分類して前記第2の
    シーケンスデータを生成する場合、個々の楽音の発音に
    関わらないイベントデータを一つのグループにまとめ
    る、 ことを特徴とする請求項1記載のシーケンスデータ処理
    装置。
  3. 【請求項3】 演奏上のイベントの内容を表すイベント
    データにそれを処理すべきタイミングを表す時間データ
    を付加して構成されたシーケンスデータを対象に処理を
    行う装置であって、 前記シーケンスデータを取得するシーケンスデータ取得
    手段と、 前記シーケンスデータ取得手段が取得したシーケンスデ
    ータ中に、所定のイベントデータを挿入して配置するイ
    ベント挿入手段と、 を具備したことを特徴とするシーケンスデータ処理装
    置。
  4. 【請求項4】 前記イベント挿入手段は、前記時間デー
    タで表される時間間隔に基づいて、前記所定のイベント
    データを挿入する、 ことを特徴とする請求項1、または3記載のシーケンス
    データ処理装置。
  5. 【請求項5】 演奏上のイベントの内容を表すイベント
    データにそれを処理すべきタイミングを表す時間データ
    を付加して構成された第1のシーケンスデータから、該
    第1のシーケンスデータの形式とは異なる他の形式の第
    2のシーケンスデータを生成する処理を行う装置であっ
    て、 前記第1のシーケンスデータを取得するシーケンスデー
    タ取得手段と、 前記シーケンスデータ取得手段が取得した第1のシーケ
    ンスデータを構成するイベントデータのなかで個々の楽
    音の発音に関わらないイベントデータを一つのグループ
    にまとめて前記第2のシーケンスデータを生成するシー
    ケンスデータ生成手段と、 を具備したことを特徴とするシーケンスデータ処理装
    置。
  6. 【請求項6】 演奏上のイベントの内容を表すイベント
    データにそれを処理すべきタイミングを表す時間データ
    を付加して構成された第1のシーケンスデータから、該
    第1のシーケンスデータの形式とは異なる他の形式の第
    2のシーケンスデータを生成する処理を行う装置であっ
    て、 前記第1のシーケンスデータを取得するシーケンスデー
    タ取得手段と、 前記シーケンスデータ取得手段が取得した第1のシーケ
    ンスデータを構成している所定のイベントデータが処理
    されるタイミングを前記時間データから特定して、該特
    定したタイミングが予め定めた基準となるタイミングと
    一致していない前記所定のイベントデータを削除、或い
    は処理のタイミングを変更しつつ、該第1のシーケンス
    データから前記第2のシーケンスデータを生成するシー
    ケンスデータ生成手段と、 を具備したことを特徴とするシーケンスデータ処理装
    置。
  7. 【請求項7】 前記所定の種類のイベントデータは、演
    奏の拍子の指定に関する情報を保持するイベントデータ
    であり、 前記予め定めた基準となるタイミングは、小節の先頭の
    タイミングである、 ことを特徴とする請求項6記載のシーケンスデータ処理
    装置。
  8. 【請求項8】 演奏上のイベントの内容を表すイベント
    データにそれを処理すべきタイミングを表す時間データ
    を付加して構成された第1のシーケンスデータを取得す
    る手段と、 前記取得する手段により取得された第1のシーケンスデ
    ータから、該第1のシーケンスデータの形式とは異なる
    他の形式の第2のシーケンスデータを生成する手段と、 前記生成する手段により生成される前記第2のシーケン
    スデータ中に、所定のイベントデータを挿入して配置す
    る手段と、 を実現させるためのプログラムを記録したコンピュータ
    読み取り可能な記録媒体。
  9. 【請求項9】 演奏上のイベントの内容を表すイベント
    データにそれを処理すべきタイミングを表す時間データ
    を付加して構成されたシーケンスデータを取得する手段
    と、 前記取得する手段により取得されたシーケンスデータ中
    に、所定のイベントデータを挿入して配置する手段と、 を実現させるためのプログラムを記録したコンピュータ
    読み取り可能な記録媒体。
  10. 【請求項10】 演奏上のイベントの内容を表すイベン
    トデータにそれを処理すべきタイミングを表す時間デー
    タを付加して構成された第1のシーケンスデータを取得
    する手段と、 前記取得する手段により取得された第1のシーケンスデ
    ータを構成するイベントデータのなかで個々の楽音の発
    音に関わらないイベントデータを一つのグループにまと
    めて、該第1のシーケンスデータの形式とは異なる他の
    形式の第2のシーケンスデータを生成する手段と、 を実現させるためのプログラムを記録したコンピュータ
    読み取り可能な記録媒体。
  11. 【請求項11】 演奏上のイベントの内容を表すイベン
    トデータにそれを処理すべきタイミングを表す時間デー
    タを付加して構成された第1のシーケンスデータを取得
    する手段と、 前記取得する手段により取得された第1のシーケンスデ
    ータを構成している所定のイベントデータが処理される
    タイミングを前記時間データから特定して、該特定した
    タイミングが予め定めた基準となるタイミングと一致し
    ていない前記所定のイベントデータを削除、或いは処理
    のタイミングを変更しつつ、該第1のシーケンスデータ
    から該第1のシーケンスデータの形式とは異なる他の形
    式の第2のシーケンスデータを生成する手段と、 を実現させるためのプログラムを記録したコンピュータ
    読み取り可能な記録媒体。
JP10220058A 1998-08-04 1998-08-04 シーケンスデータ処理装置、及びコンピュータ読み取り可能な記録媒体 Withdrawn JP2000056759A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10220058A JP2000056759A (ja) 1998-08-04 1998-08-04 シーケンスデータ処理装置、及びコンピュータ読み取り可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10220058A JP2000056759A (ja) 1998-08-04 1998-08-04 シーケンスデータ処理装置、及びコンピュータ読み取り可能な記録媒体

Publications (1)

Publication Number Publication Date
JP2000056759A true JP2000056759A (ja) 2000-02-25

Family

ID=16745287

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10220058A Withdrawn JP2000056759A (ja) 1998-08-04 1998-08-04 シーケンスデータ処理装置、及びコンピュータ読み取り可能な記録媒体

Country Status (1)

Country Link
JP (1) JP2000056759A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004538496A (ja) * 1999-12-20 2004-12-24 ハンセウルソフト カンパニー リミテッド ネットワーク基盤の音楽演奏/歌の伴奏サービスシステム及びその方法
US7102070B2 (en) 2001-05-25 2006-09-05 Yamaha Corporation Musical tone reproducing apparatus and method and portable terminal apparatus
CN106383448A (zh) * 2016-10-27 2017-02-08 广东格兰仕集团有限公司 智能家电多设备联动演奏音乐系统及其控制方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004538496A (ja) * 1999-12-20 2004-12-24 ハンセウルソフト カンパニー リミテッド ネットワーク基盤の音楽演奏/歌の伴奏サービスシステム及びその方法
US7102070B2 (en) 2001-05-25 2006-09-05 Yamaha Corporation Musical tone reproducing apparatus and method and portable terminal apparatus
CN106383448A (zh) * 2016-10-27 2017-02-08 广东格兰仕集团有限公司 智能家电多设备联动演奏音乐系统及其控制方法
CN106383448B (zh) * 2016-10-27 2019-04-19 广东格兰仕集团有限公司 智能家电多设备联动演奏音乐系统的控制方法

Similar Documents

Publication Publication Date Title
JP2000056773A (ja) 波形形成装置及び方法
US6313387B1 (en) Apparatus and method for editing a music score based on an intermediate data set including note data and sign data
US7094960B2 (en) Musical score display apparatus
JP2001092464A (ja) 楽音生成方法、楽音生成用データ記録方法および楽音生成用データを記録した記録媒体
US6570081B1 (en) Method and apparatus for editing performance data using icons of musical symbols
US5672837A (en) Automatic performance control apparatus and musical data storing device
US6762358B2 (en) Waveform reproduction apparatus
US5616878A (en) Video-song accompaniment apparatus for reproducing accompaniment sound of particular instrument and method therefor
JP2000056759A (ja) シーケンスデータ処理装置、及びコンピュータ読み取り可能な記録媒体
JP3120675B2 (ja) 演奏情報圧縮装置
JP4175208B2 (ja) 楽譜表示装置及びプログラム
US6956161B2 (en) Musical performance data search system
JPH1031495A (ja) カラオケ装置
US5672838A (en) Accompaniment data format and video-song accompaniment apparatus adopting the same
JPH11305772A (ja) 電子楽器
JP5338312B2 (ja) 自動演奏同期装置、自動演奏鍵盤楽器およびプログラム
JP3322763B2 (ja) 演奏情報圧縮方法
JP3219150B2 (ja) 演奏情報圧縮方法
JP2000056760A (ja) シーケンスデータ処理装置、及びコンピュータ読み取り可能な記録媒体
JP4692056B2 (ja) 音波形生成装置、及び、音波形の波形生成データのデータ構造
JP3758267B2 (ja) 音源回路設定方法、該方法によって設定される音源回路を備えたカラオケ装置、および記録媒体
JP3818296B2 (ja) 和音検出装置
JP3407563B2 (ja) 自動演奏装置及び自動演奏方法
JP5678343B2 (ja) フレーズデータ検索装置及びプログラム
JP3580259B2 (ja) 演奏データ編集装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20051004