JPH0981131A - シーケンスデータのクウォンタイズ方法、及びシーケンスデータのタイミング処理装置 - Google Patents

シーケンスデータのクウォンタイズ方法、及びシーケンスデータのタイミング処理装置

Info

Publication number
JPH0981131A
JPH0981131A JP7234525A JP23452595A JPH0981131A JP H0981131 A JPH0981131 A JP H0981131A JP 7234525 A JP7234525 A JP 7234525A JP 23452595 A JP23452595 A JP 23452595A JP H0981131 A JPH0981131 A JP H0981131A
Authority
JP
Japan
Prior art keywords
bar
event data
data
sequence data
value
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.)
Abandoned
Application number
JP7234525A
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 JP7234525A priority Critical patent/JPH0981131A/ja
Publication of JPH0981131A publication Critical patent/JPH0981131A/ja
Abandoned legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】 その再生が適正に行われるように、シーケン
スデータの発音タイミングを管理する。 【解決手段】 電子楽器100は、楽曲データを記憶し
たRAMを有し、テレビ110の画面上に、イベントデ
ータ、及びカーソル(図示せず)を表示させる。ユーザ
は、スイッチSW6〜SW9を操作してカーソルを任意
のイベントデータ上に移動させた後、スイッチSW1を
1回オンする指定操作を2回繰り返すことで、クウォン
タイズさせる範囲を指定する。範囲を指定した後、スイ
ッチSW1をオンすると、電子楽器100はクウォンタ
イズ処理を開始する。クウォンタイズ処理は、指定され
た範囲内の小節を、各小節毎に、各イベントデータの小
節先頭からのクロックを、それが属する小節の拍子に基
づいて変更していくことで行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、シーケンスデータ
により発音される楽音の発音タイミングを制御するため
の技術に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】近年、
異なる装置間で音楽情報を伝達するための規格であるM
IDI(Musical Instrument Digital Interface)規格
が制定されたことから、自動演奏の分野は大きな発展を
遂げている。自動演奏を行うシーケンサー装置(以降、
単にシーケンサーと記す)も数多く商品化され、また、
その機能であるシーケンサー機能も様々な装置に搭載さ
れている。
【0003】シーケンサー機能としては、楽曲データ
(シーケンスデータ)の記録/編集/再生がその主な機
能である。このシーケンサー機能を搭載することで、例
えば外部機器から送られた楽曲データを記録し、この記
録した楽曲データを任意にアレンジし、このアレンジし
た楽曲データを再生させることができる。
【0004】楽曲データ(シーケンスデータ)の編集機
能により、音色、エフェクトといった楽音の発音形態に
関わる音源パラメータの設定内容の変更を含め、楽音の
音高やその発音タイミングの変更、発音させる楽音の追
加等、様々なことを行うことができる。上記発音タイミ
ングは、発音開始タイミング、及びその開始タイミング
から発音が持続する期間を含めた意味である。発音開始
タイミングの変更においては、そのタイミングのズレを
自動的に修正するクウォンタイズという機能も広く搭載
されている。
【0005】上記のように、ユーザは編集機能を用いて
楽曲データを自由に編集することができる。しかし、以
下のような編集を行った場合、楽曲データが適正に再生
されないということが発生していた。
【0006】最初の例としては、例えば小節の拍子を変
更した後、クウォンタイズ機能により発音開始タイミン
グのズレを修正させた場合である。クウォンタイズは、
指定された範囲を均等割し、その範囲内で発音される各
音符の発音開始タイミングを、均等割したタイミングに
それぞれ変更することを基本としている。このため、指
定した範囲内の小節の拍子を変更すると、それが全体の
クウォンタイズに影響する。これにより、例えば本来は
小節の先頭で発音させるべき音符が、その小節の前の小
節で発音されたり、或いは同じ小節内でも他のところで
発音されたりする。このように、ユーザが意図していな
い形でクウォンタイズされることがあるという問題点が
あった。
【0007】次の例は、音符の発音開始タイミングを、
それが属している小節外としてしまった場合である。シ
ーケンスデータの時間管理としては、前の音符との間隔
で各音符の発音開始タイミングを管理するデルタタイム
管理方法と、小節内で発音される音符の発音開始タイミ
ングを、その小節の先頭からの間隔により管理する相対
時間管理方法が広く用いられている。後者の方法では、
音符を消去してもそれが他の音符に影響しないことか
ら、前者の方法と比較すると、シーケンスデータの編集
が容易であるという利点がある。
【0008】シーケンサー機能により、上記相対時間管
理方法で作成されたシーケンスデータを編集する場合、
ユーザは小節内の音符の発音開始タイミングを任意に変
更することができた。しかし、そのシーケンスデータを
再生する自動演奏装置は、基本的に、各音符の発音を小
節毎に管理することから、音符の発音開始タイミングを
それが属する小節の外に変更してしまうと、その音符が
発音されないといった発音異常が発生することがあっ
た。また、その変更を行ったことで、シーケンスデータ
が正常に表示されなくなることもあった。
【0009】本発明の課題は、その再生が適正に行われ
るように、シーケンスデータの発音タイミングを管理す
ることにある。
【0010】
【課題を解決するための手段】本発明のシーケンスデー
タのクウォンタイズ方法は、指定範囲内に存在するシー
ケンスデータの発音開始タイミングを変更することを前
提とし、指定範囲として複数の小節にまたがる範囲が指
定されたとき、小節を処理単位として、各小節毎に、シ
ーケンスデータの発音開始タイミングを、それが属する
小節の拍子に基づいて変更していく、ことでクウォンタ
イズを行う。
【0011】本発明の第1の態様のシーケンスデータの
タイミング処理装置は、シーケンスデータの発音開始タ
イミングを制御することを前提とし、シーケンスデータ
の発音開始タイミングを変更させる範囲を指定するため
の指定手段と、指定手段により、複数の小節にまたがる
範囲が指定されたとき、小節を処理単位として、各小節
毎に、シーケンスデータの発音開始タイミングを、それ
が属する小節の拍子に基づいて変更する制御手段と、を
具備する。
【0012】上記の発明においては、小節を処理単位と
したことで、その小節の演奏時間等を変更しても、その
変更が他の小節に影響することなく、クウォンタイズが
行われる。
【0013】本発明の第2の態様のシーケンスデータの
タイミング処理装置は、シーケンスデータの発音開始タ
イミングを制御することを前提とし、シーケンスデータ
の発音開始タイミングを指定するための指定手段と、指
定手段により指定されたシーケンスデータの発音開始タ
イミングが、該シーケンスデータが属する小節内である
か否か判定する判定手段と、シーケンスデータの発音開
始タイミングが、該シーケンスデータが属する小節内で
はないと判定手段が判定したとき、指定手段による指定
を無効とする制御手段と、を具備する。
【0014】これにより、シーケンスデータの発音開始
タイミングに対する変更において、それが属する小節外
となる変更が禁止され、ある小節に属しているシーケン
スデータは、その小節内で発音を確実に開始することに
なる。
【0015】
【発明の実施の形態】以下、本発明を適用した実施の形
態について、図面を参照しながら詳細に説明する。
【0016】図1は、第1の実施の形態が適用されたシ
ステムの外観を示す図である。第1の実施の形態は、電
子楽器100として実現されている。電子楽器100
は、発音させる楽音の指定に用いられる鍵盤101と、
図示しているスイッチSW1〜SW9、及び特には図示
していない他の複数のスイッチからなるスイッチ群10
2とを備えている。この電子楽器100は、マルチ音源
として動作する機能、シーケンサー機能等を備えた、G
M(ジェネラルMIDI)対応機種である。
【0017】この電子楽器100には、テレビ110が
接続されている。電子楽器100は、テレビ110の画
面上に、音符データ(イベントデータ)や、現在設定さ
れている音源パラメータ等の表示を行う。なお、ユーザ
は、テレビ110に表示させる内容を、スイッチ群10
2の所定のスイッチに対する操作によって指定すること
ができる。
【0018】電子楽器100には、シーケンサー等の外
部機器と接続するための端子が設けられている。外部機
器とは、例えばMIDIデータで音楽情報をやりとりす
る。電子楽器100は、例えば接続されたシーケンサー
からMIDIデータが送られてくると、そのMIDIデ
ータを解析し、その解析結果に従って楽音の発音や、音
源パラメータの設定等を行うとともに、そのMIDIデ
ータの内容をテレビ110に表示させる処理等を行う。
【0019】図2は、上記電子楽器100の構成のブロ
ック図である。図2に示すように、この電子楽器100
は、楽器(及びシステム)全体の制御を行うCPU20
1と、各種プログラムや制御用データを記憶したROM
202と、主にCPU201がワーク領域として用いる
RAM203と、上述した鍵盤101、及びスイッチ群
102と、テレビ110の画面上に画像を表示させるた
めの画像データを出力する画像データ出力部204と、
CPU201から送られた発音コマンドに従って楽音を
発音するサウンドシステム205と、外部機器とのMI
DIデータの授受を行うMIDIインターフェイス20
6とを備えて構成されている。
【0020】上記の構成において、その概略動作を説明
する。CPU201は、ROM202に記憶されている
制御プログラムに基づいて、楽器100全体の動作を制
御し、これにより、図1に示すシステム全体の動作を制
御する。
【0021】ユーザが鍵盤101を操作すると、CPU
201は、操作された鍵を特定するとともに、その鍵が
操作されたときの速さ(ベロシティ)を求めて、ユーザ
の操作内容に応じて発音コマンドを生成し、これをサウ
ンドシステム205に出力する。
【0022】このサウンドシステム205は、特には図
示しないが、例えば各種の楽音波形データを格納した波
形ROM、この波形ROMから波形データを読み出す音
源部、音源部が読み出した波形データに音響効果等を付
加するエフェクタ、エフェクタから出力されたデジタル
の波形データをD/A変換し、アナログの波形(楽音)
信号を出力するD/Aコンバータ、D/Aコンバータが
出力した波形信号により楽音を発音するスピーカからな
る。CPU201から入力した発音コマンドに従って楽
音を発音することにより、ユーザが鍵盤101に対して
行った操作に応じて楽音が発音されることになる。
【0023】CPU201は、このサウンドシステム2
05に発音コマンドを出力する他に、発音される楽音を
特徴づける音源パラメータの設定を行う。音源パラメー
タの設定は、ユーザがスイッチ群102の所定のスイッ
チを操作したとき、或いは外部機器から音響パラメータ
を指定するMIDIデータをMIDIインターフェイス
206が受け取ったときに行う。なお、音源パラメータ
とは、波形ROMから読み出す波形データ(音色に相当
する)の種類、エフェクタが付加する音響効果の種類、
及びその深さ、ボリューム、パン等のことである。
【0024】MIDIインターフェイス206がMID
Iデータを受け取った場合、CPU102は、そのMI
DIデータの内容に従って発音コマンドの生成、及びそ
れのサウンドシステム205への出力、音響パラメータ
の設定の他に、ユーザの指定に応じて、そのMIDIデ
ータの内容のテレビ110への表示や、MIDIデータ
のRAM203への記録を行う。
【0025】テレビ110への画像の表示は、以下のよ
うにして行われる。例えば、上記したように、MIDI
インターフェイス206が受信したMIDIデータを表
示させる場合、CPU201は、このMIDIデータを
解析し、その内容を表示させるために必要な画像データ
を特定する。その後、特定した画像データをROM20
2から読み出し、必要があればこれを加工して画像デー
タ出力部204に出力する。また、CPU201は、こ
の画像データの他に、その画像データを表示させる位置
を指定する座標データを画像データ出力部204に出力
する。
【0026】画像データ出力部204は、上記座標デー
タが示す表示位置に画像データを表示させるように、テ
レビ110に画像データを出力する。この画像データ
は、テレビ110の画面表示の方式に対応させて、1操
作ライン毎の、NTSC方式に基づくビデオコンポジッ
ト信号の形でテレビ110に出力する。これにより、テ
レビ110の表示画面上にMIDIデータが予め設定さ
れた表示形式で表示される。
【0027】一方、受信したMIDIデータのRAM2
03への記録は以下のようにして行われる。RAM20
3には、楽曲データを記録する記録領域(楽曲データ記
憶領域)が割り当てられ、この記録領域は、複数の記録
対象トラックに分割されている。記録対象トラックは、
ユーザが予めスイッチ群102を操作して指定する。M
IDIデータのRAM203への記録は、ユーザが指定
したRAM203の楽曲データ記録領域上の記録対象ト
ラックに、MIDIデータにおいてチャンネルメッセー
ジとして送られるイベントデータを、その入力タイミン
グとともに順次書き込むことで行われる。
【0028】また、RAM203に記録された楽曲(イ
ベント)データは、編集することができる。CPU20
1は、ユーザがスイッチ群102において指定した内容
に従って、RAM203の楽曲データ記録領域上の所望
のトラックに記録されている楽曲データ(イベントデー
タ)を読み出して、例えば図7に示すように、そのデー
タを演奏順に表形式でテレビ110に表示させる。ユー
ザは、スイッチ群102を用いて、テレビ110に表示
されている楽曲(イベント)データに対して、楽曲(イ
ベント)データの挿入、削除、移動、複写などを行うこ
とができる。
【0029】上記のようにして、ユーザが編集した結
果、及び音響パラメータを変更させた結果は、RAM2
03の楽曲データ記録領域の楽曲データの内容、或いは
受信中のMIDIデータによる自動演奏に反映される。
【0030】RAM203の楽曲データ記録領域の楽曲
データの再生は、CPU201が、その記憶領域上の再
生対象トラックからイベントデータを順次読み出し、読
み出したイベントデータで楽音を発音させる発音コマン
ドを作成して、それをサウンドシステム205に出力す
ることで行われる。これにより、MIDIデータの受信
時と同様に、自動演奏が行われる。
【0031】以上が電子楽器100の構成、及び各部の
概略動作である。次に図3〜図6を参照して、RAM2
03に記憶される楽曲データのデータフォーマットにつ
いて説明する。
【0032】第1の実施の形態では、楽曲データは、各
小節のイベントデータと、連続する128小節分のイベ
ントデータを単位とする小節ブロックと、最大で8個の
小節ブロックを含むトラック、16トラックを単位とす
る楽曲という各単位を用いて、階層的に管理される点が
特徴である。
【0033】まず、図3に示されるトラック使用状況デ
ータSNG_TRK_USEは、16ビットのデータで
あって、各楽曲毎に設定される。各データには、トラッ
ク0〜15の各トラックが楽曲の自動演奏において使用
されるか否かが、“1”又は“0”のフラグによって設
定される。このデータの、最下位ビットがトラック0に
対応し、最上位ビットがトラック15に対応する。
【0034】図4(a) に示される配列SNG_BAR_
TBLには、楽曲毎及び各楽曲内のトラック毎に、第0
小節〜第1023小節の1024小節を128小節ずつ
分割して得られる8つの小節ブロックのそれぞれに対応
する、図4(b) に示される配列SNG_BAR_PTR
内の128個ずつの配列データ群の各先頭要素情報が記
憶される。配列SNG_BAR_PTRに定義可能な小
節ブロックの数は、例えば最大で32である。その場
合、配列SNG_BAR_TBLには、小節ブロック先
頭要素情報として、0x00〜0x1f(10進数の0
〜31に対応)の何れかの値が記憶される。この小節ブ
ロック先頭要素情報の値を128倍して得られる値が、
その小節ブロックに対応する配列SNG_BAR_PT
R内の128個の配列データ群の先頭要素番号となる。
但し、未使用のトラックのそれぞれの小節ブロックの先
頭要素情報及び使用トラック内の未使用の小節ブロック
の先頭要素情報としては、値0xffが設定される。
【0035】図4(b) に示される配列SNG_BAR_
PTRには、上述の小節ブロック毎に、各小節ブロック
内の128小節のそれぞれに対応する、図4(c) に示さ
れる配列SNG_SONG内のイベントデータ群の各先
頭要素番号が記憶される。配列SNG_SONGに定義
可能なイベントデータの数は、例えば最大で16384
イベントである。その場合、配列SNG_BAR_PT
Rには、各小節に対応するイベントデータ群の先頭要素
番号として、0x0000〜0x4000(10進数の
0〜16383に対応)の何れかの値が記憶される。但
し、全休符の小節に対応する先頭要素番号としては、値
0xffffが設定される。
【0036】図4(c) に示される配列SNG_SONG
には、上述したように小節単位で連続したイベントデー
タが記憶される。1つのイベントデータは、後述するよ
うに3ワードのデータとして構成される。但し、配列S
NG_SONGは、512個のイベントデータを単位と
する32個のイベントデータブロック(16384イベ
ントデータ分)に分割される。ここで、1つの小節内の
イベントデータ群が2つのイベントデータブロックに分
割される場合には、第1番目のイベントデータブロック
の末尾に後述するジャンプイベントデータが記憶され、
また、第2番目のイベントデータブロックの先頭に後述
するジャンプソースイベントデータが記憶される。
【0037】図5は、図4(c) の配列SNG_SONG
に記憶されるイベントデータ群を構成するノートイベン
トデータとコントロールイベントデータのデータフォー
マットを示す図であり、各イベントデータは3ワードの
データとして構成される。
【0038】図5(a) に示されるノートイベントデータ
は、楽譜の音符に対応するものであり、単音の発音処理
に必要な複数の情報を含む。即ち、ノートイベントデー
タの第1ワードは、上位7ビットが音高番号、下位7ビ
ットがベロシティを表わす。ノートイベントデータの第
2ワードは、そのノートイベントデータに対応する音符
について、それが含まれる小節の先頭からの時間位置
を、適当な単位(第1の実施の形態では480分の1拍
のクロック)でカウントした値である。そして、ノート
イベントデータの第3ワードは、そのノートイベントデ
ータに対応する音符の発音時間を前述の適当な単位でカ
ウントしたゲートタイムである。
【0039】図5(b) に示されるコントロールイベント
データは、楽曲の再生を制御するために必要な、上述の
ノートイベントデータ以外のイベントデータであり、第
1ワードの最上位ビットが1であることによって、ノー
トイベントデータと区別される。このコントロールイベ
ントデータは、更に、メタイベントデータ群、ジャンプ
イベントデータ群、及びコマンドイベントデータ群の3
つに分類される。メタイベントデータ群は、楽曲全体の
テンポ、拍子、調に関する情報を含む。ジャンプイベン
トデータ群は、図6で後述するように、トラック終了、
小節終了、次処理データへのジャンプ等の、イベントデ
ータの位置制御に関する情報を含む。更に、コマンドイ
ベントデータ群は、音量、プログラムチェンジ(音
色)、ベンダー等の、楽音に対する修飾的な効果を付加
するための情報を含む。コントロールイベントデータの
第1ワードの下位7ビットはコントロールコードを示
し、このコードによって制御内容が決定される。例え
ば、メタイベントデータ群のテンポイベントデータに対
応する第1ワードの値は0xff00、ジャンプイベン
トデータ群の小節終了イベントデータに対応する第1ワ
ードの値は0xff11(図6(b) 参照)、コマンドイ
ベントデータ群のプログラムチェンジイベントデータに
対応する第1ワードの値は0xff20となる。コント
ロールイベントデータの第2ワードは、そのコントロー
ルイベントデータに対応する制御が実行される小節の先
頭からの時間位置を、前述した適当な単位でカウントし
た値である。コントロールイベントデータの第3ワード
には、コントロールコード以外に必要なコントロール値
が格納される。例えばメタイベントデータ群のテンポイ
ベントデータの第3ワードにはテンポ番号、ジャンプイ
ベントデータ群のジャンプイベントデータの第3ワード
には配列SNG_SONG(図4(c) )内でのジャンプ
先のイベントデータの要素番号、コマンドイベントデー
タ群のプログラムチェンジイベントデータの第3ワード
には音色番号が格納される。
【0040】次に、上述したコントロールイベントデー
タのうちのジャンプイベントデータ群を構成する4種類
のイベントデータについて説明する。図6は、これら4
種類のイベントデータのそれぞれのデータフォーマット
を示す図である。
【0041】まず、図6(a) のトラック終了イベントデ
ータは、各トラックのイベントデータ群の終了位置にそ
のトラックの最終のイベントデータとして挿入される。
次に、図6(b) の小節終了イベントデータは、各小節の
イベントデータ群の終了位置にその小節の最終イベント
データとして挿入される。
【0042】更に、図6(c) のジャンプイベントデータ
と図6(d) のジャンプソースイベントデータは、図4
(c) の配列SNG_SONGにおいて、1つの小節内の
イベントデータ群が512イベントずつの2つのイベン
トデータブロックに分割される場合に、それぞれ、第1
番目のイベントデータブロックの末尾と第2番目のイベ
ントデータブロックの先頭に記憶される。この場合、ジ
ャンプイベントデータの第3ワードには配列SNG_S
ONG内でのジャンプ先のイベントデータの要素番号が
格納され、ジャンプソースイベントデータの第3ワード
には同じくジャンプ元のイベントデータの要素番号が格
納される。
【0043】なお、図6(a) 〜(d) に示される4種類の
イベントデータについて、イベントデータの編集処理及
び再生処理においては、第1ワードにより現在処理イベ
ントデータがジャンプイベントデータ群に属するイベン
トであることが認識された時点で、各々のイベントデー
タに対応した処理が即座に実行される。従って、これら
各イベントデータの第2ワードは任意の値でよい。ま
た、トラック終了イベントデータと小節終了イベントデ
ータの第3ワードも任意の値でよい。
【0044】以上説明した図3〜図6の楽曲データのデ
ータフォーマットが採用されることにより、自動演奏に
関する制御を非常に効率的に実行することが可能とな
る。なお、ここでは、自動演奏全体のデータを主に意図
する場合に楽曲データの表現を用いており、この楽曲デ
ータがシーケンスデータに対応する。
【0045】上記データフォーマットでRAM203に
記録された楽曲データに対し、ユーザはクウォンタイズ
を行うことができる。このクウォンタイズは、指定され
た範囲内のイベントデータの発音開始タイミングを自動
的に変更するものである。
【0046】クウォンタイズする範囲の指定は、以下の
ようにして行う。図7を参照して説明する。図7は、ク
ウォンタイズ処理の範囲指定方法を説明する図である。
テレビ110に表示されているイベントデータに対して
実際に範囲を指定し、その後、クウォンタイズを行った
結果までの様子を表している。
【0047】先ず、図7(a)に表示されているイベン
トデータの見方について、最上段、及び最下段の行のイ
ベントデータを例にとり、その順序で説明する。最上段
に表示されているイベントデータは、基本的に3つの項
目からなる。具体的には、“0001/1/000”、
“PRGCHG 001”、“PIANO”の3項目で
ある。
【0048】最初の項目“0001/1/000”は、
そのイベントデータによる処理が行われる開始タイミン
グを示すタイミング項目である。スラッシュで区切られ
た各数値は、左から、小節番号、拍数、その拍数内にお
けるタイミング(ステップ数)を表している。第1の実
施の形態では、1拍の分解能を480クロックとしてい
る。そのタイミングは、この分解能を基に表現された値
である。上記ステップ数は、クロック数で表現したその
拍数内におけるタイミングを示している。
【0049】次の項目“PRGCHG 001”は、そ
のイベントデータのコマンドの種類を示すコマンド項目
である。この場合は、音色の変更を指定するコントロー
ルイベントデータであり、音色番号が“001”の音色
を指定したことを表している。
【0050】最後の項目“PIANO”は、音色番号
“001”に対応する音色の種類を示すパラメータ項目
である。この場合、音色番号“001”はピアノである
ことを表している。
【0051】最下段に表示されているイベントデータ
は、そのデータが以下の内容であることを示している。
その最初の項目“0001/3/120”については、
上記最上段のそれと見方は同じである。このため、それ
に続く項目の意味について説明する。
【0052】最初の項目に続く2番目の項目“NOT
E”は、そのイベントデータのコマンドの種類が発音コ
マンドであることを示す。以下、3番目の項目“G4”
はその音高、4番目の項目“80”はベロシティ、最後
の項目“720”はゲートタイムをそれぞれ示してい
る。
【0053】上記のように表現されているイベントデー
タに対する範囲の指定、及びクウォンタイズ処理の開始
は、カーソルキーであるスイッチSW6〜SW9、及び
スイッチSW1を用いて行う。
【0054】具体的には、先ず、スイッチSW6〜SW
9を用いて、画面上に枠で表示されているカーソルを所
望する範囲の先頭に移動させた後、スイッチSW1を操
作する。これにより、範囲の先頭位置が指定される。図
7(a)は初期状態であり、図7(b)は、図7(a)
の初期状態からカーソルを移動させて、範囲の先頭位置
を指定したときの状態を示している。
【0055】範囲の先頭位置を指定した後は、次に範囲
の終了位置を指定する。これは、範囲の先頭位置の指定
と同様の操作で指定する。図7(c)は、図7(b)の
状態からカーソルを移動させて、範囲の終了位置を指定
した状態を示している。
【0056】このようにして先頭位置と終了位置を指定
することで、クウォンタイズする範囲が確定する。その
後、再度スイッチSW1を操作すると、指定された範囲
内を処理対象としたクウォンタイズ処理が行われる。図
7(d)は、クウォンタイズ処理後の状態を示してい
る。
【0057】次に、上記CPU201がROM202に
記憶された制御プログラムを実行する動作として実現さ
れる各種処理について、図8〜図10の動作フローチャ
ート、及び図11の説明図を参照して説明する。
【0058】最初に、全体処理について、図8に示すそ
の動作フローチャートを参照して説明する。特には図示
しない電源スイッチをユーザが投入(オン)すると、先
ず、ステップ801において、CPU201内のレジス
タ、及びRAM203のワーク領域のクリア、及び初期
設定といったイニシャル処理を行う。このイニシャル処
理が終了すると、ステップ802の処理に移行する。
【0059】ステップ802では、ユーザがスイッチ群
102に行った操作内容に応じるための処理であるスイ
ッチ処理を行う。続くステップ803において、ユーザ
が鍵盤101に行った操作内容に応じて楽音を発音させ
る鍵盤処理といったその他の処理を実行し、その後、ス
テップ802の処理に戻る。
【0060】このように、ステップ802〜803の処
理を繰り返すことにより、ユーザがスイッチ群102、
鍵盤101等に対して行った操作に対応して、電子楽器
100が動作する。
【0061】次に、上記ステップ802のスイッチ処理
について、図9に示すその動作フローチャートを参照し
て詳細に説明する。先ず、ステップ901では、スイッ
チSW1がオンされたか否か判定する。スイッチSW1
は、上述したように、イベントデータに対するクウォン
タイズを指示するためのスイッチである。ユーザがこの
スイッチSW1を操作した場合、その判定はYESとな
ってステップ902の処理に移行する。そうでない場
合、その判定はNOとなってステップ907の処理に移
行する。
【0062】ステップ902では、クウォンタイズ処理
フラグの値の判定を行う。ステップ902に続く処理
は、クウォンタイズ処理フラグの値に応じて行われる。
図7を参照して説明したように、クウォンタイズ処理す
る範囲指定、及びその処理の実行は、スイッチSW1を
用いて行われる。上記クウォンタイズ処理フラグは、ス
イッチSW1に対する操作に応じて、範囲指定からクウ
ォンタイズ処理の実行までの進行を管理するための変数
である。この変数は、CPU201内のレジスタ、或い
はRAM203に保持される。
【0063】ステップ902において、クウォンタイズ
処理フラグの値は0と判定した場合、次にステップ90
3の処理が実行される。ステップ903では、クウォン
タイズ範囲の先頭位置が指定されたとして、カーソルが
表示されているイベントデータをその先頭位置として登
録する。また、この先頭位置の登録の他に、クウォンタ
イズ処理フラグのインクリメント(=1)を行う。その
後、ステップ906の処理に移行する。
【0064】ステップ902において、クウォンタイズ
処理フラグの値は1と判定した場合、次にステップ90
4の処理が実行される。ステップ904では、クウォン
タイズ範囲の終了位置が指定されたとして、カーソルが
表示されているイベントデータをその終了位置として登
録する。また、この終了位置の登録の他に、クウォンタ
イズ処理フラグのインクリメント(=2)を行う。その
後、ステップ906の処理に移行する。
【0065】ステップ902において、クウォンタイズ
処理フラグの値は2と判定した場合、次にステップ90
5の処理が実行される。ステップ905では、ステップ
903、及び904の処理が実行されたことで確定した
範囲のイベントデータを対象として、クウォンタイズ処
理を実行する。このクウォンタイズ処理が実行されるこ
とで、クウォンタイズ処理フラグはリセット、即ちクウ
ォンタイズ処理フラグには0が代入される。その後、ス
テップ906の処理に移行する。このクウォンタイズ処
理の詳細については後述する。
【0066】ステップ603では、スイッチ群102の
他のスイッチ対してユーザが行った操作に応じたその他
の処理を実行する。このその他の処理が終了すると、こ
こで一連の処理を終了し、その後、図8のステップ80
3のその他の処理が実行される。
【0067】上記ステップ901において、スイッチS
W1がオンされなかったと判定した場合、ステップ90
7の処理に移行する。ステップ907では、スイッチS
W2がオンされたか否か判定する。このスイッチSW2
は、クウォンタイズ処理への進行をキャンセル、即ち最
初の状態に戻すことを指示するためのスイッチである。
ユーザがスイッチSW2を操作した場合、その判定はY
ESとなってステップ908の処理に移行する。そうで
ない場合、その判定はNOとなってステップ906の処
理に移行する。
【0068】ステップ908では、それまでの進行を全
て無効とするためのキャンセル処理を行う。このキャン
セル処理が実行されることで、それまでに先頭位置、及
び終了位置が指定されていた場合にはそれらの情報が消
去され、クウォンタイズ処理フラグには0が代入され
る。この処理が終了すると、ステップ906の処理に移
行する。
【0069】図10は、上記ステップ905のクウォン
タイズ処理の動作フローチャートである。同図を参照し
て、その処理動作を詳細に説明する。処理動作を説明す
る前に、第1の実施の形態によるクウォンタイズの処理
方法について、図11を参照して説明する。図11は、
各拍子における1小節の時間的長さを示す図である。時
間的長さは、第1の実施の形態における分解能、即ち1
拍あたりのクロック数を480として表現している。な
お、拍子は、小節のクロック数により定義(設定)され
るパラメータである。
【0070】図11では、上段から、4/4拍子、17
/16拍子、9/8拍子の各拍子におけるその時間的長
さをクロック数で表現している。1拍(4分音符)あた
りのクロック数、即ち分解能は、第1の実施の形態にあ
わせて480としている。従って、例えば4/4拍子を
例にとれば、その小節のクロック数は1920(=48
0×4)となる。実際上では、小節の先頭のクロック数
の値を0とすることから、4/4拍子の1小節内の時間
的位置は、0〜1919までのクロック数で表現され
る。同じ理由により、1拍目とは0〜479までのクロ
ック数であり、480は2拍目の先頭となる。以下同様
であり、クロック数が1920のときは次の小節の先頭
となる。
【0071】なお、他の拍子においては、17/16拍
子のクロック数は2040(=480×4×17/1
6)、9/8拍子のクロック数は2160(=480×
4×9/8)である。
【0072】従来、クウォンタイズ処理は、指定された
範囲を均等割し、その均等割したタイミングに、イベン
トデータの発音開始タイミングを変更することで、その
タイミングのズレを修正することを基本としている。し
かし、第1の実施の形態では、たとえ複数の小節を含む
範囲が指定されたとしても、各小節毎に分けて、その小
節内のイベントデータに対するクウォンタイズを行うよ
うにしている。
【0073】小節毎のクウォンタイズ処理は、以下のよ
うにして行われる。例えば4/4拍子で4分音符単位の
クウォンタイズ処理を行う場合、小節内のイベントデー
タの発音開始タイミングは、図11において縦線で示す
何れかのタイミングに合わせられる。同様に、17/1
6拍子、9/8拍子の各拍子の小節に対し、1拍の単位
となる音符でクウォンタイズ処理を行った場合、その小
節のイベントデータの発音開始タイミングは、それぞれ
において縦線で示す何れかのタイミングに修正される。
【0074】発音開始タイミングの修正は、例えば隣り
合う縦線で示す修正後のタイミングの間に位置している
発音開始タイミングを、その何れかのタイミングに合わ
せるかを示す比率(オフセット)に従って行われる。例
えばそのオフセットを50パーセントとした場合、4/
4拍子の小節において、3拍目(クロック数が144
0)と4拍目(クロック数が1919)の間に位置して
いる発音タイミングは、クロック数1680(=192
0−480/2)を境として、それよりもクロック数が
小さければそのクロック数を1440に、反対にそれよ
りも大きければそのクロック数を1920、即ち次小節
の先頭にそれぞれ修正される。
【0075】このようなクウォンタイズ処理を、各小節
毎に独立させて行うことにより、クウォンタイズ処理さ
れる範囲内のある小節の拍子(クロック数)を変更させ
ても、その変更が他の小節に影響することが回避され
る。このため、小節の拍子(クロック数)を変更したこ
とで、イベントデータの発音開始タイミングがユーザが
意図したものと大きくかけ離れるということがなくな
り、ユーザは意図したクウォンタイズを容易にかけるこ
とができるようになる。
【0076】図10の説明に戻り、第1の実施の形態に
よるクウォンタイズ処理について、その動作フローチャ
ートを参照して説明する。先ず、ステップ1001で
は、クウォンタイズ処理の実行のために、RAM203
のワーク領域の確保といったイニシャル処理を実行す
る。このイニシャル処理が終了すると、ステップ100
2の処理に移行する。
【0077】ステップ1002では、現在小節が示す小
節のクロック数の調査を行う。この現在小節は、CPU
201内のレジスタ、或いはRAM203に保持される
変数であり、現在において処理すべき小節を示す値が代
入される。ステップ1001のイニシャル処理では、こ
の現在小節に、図9のステップ903で登録された先頭
位置の小節を示す値を代入している。
【0078】なお、小節のクロック数は、次小節の先頭
のイベントデータに、第2ワードとして格納されている
(図5参照)。その次小節の先頭のイベントデータは、
図4に示すように、配列SNG_BAR_TBLから配
列SNG_BAR_PTRのクウォンタイズ処理するト
ラックの先頭要素番号が格納されている領域を特定し、
その特定した配列SNG_BAR_PTRの領域内の先
頭要素番号を順次検索していくことで、配列SNG_S
ONG内のそのデータにアクセスする。
【0079】ステップ1002で小節のクロック数を得
ると、ステップ1003の処理に移行する。このステッ
プ1003では、次小節に移動させるべき発音開始タイ
ミングのクロック数を調査する。
【0080】この調査により、例えば小節の拍子が4/
4拍子で、オフセットが50パーセントとした場合に
は、図11に示すように、次小節に移動させるべきタイ
ミングとしてクロック数1680が算出されることにな
る。
【0081】ステップ1003に続くステップ1004
では、現在小節が示す小節にイベントデータがないか否
か判定する。その小節内にイベントデータがなかった場
合、その判定はYESとなってステップ1011の処理
に移行する。そうでない場合、その判定はNOとなって
ステップ1005の処理に移行する。
【0082】ステップ1005では、その小節の先頭イ
ベントデータを設定する。このときには、図11を参照
して説明したように、4分音符等のクウォンタイズにお
ける単位、及びオフセットに基づき、それの発音開始タ
イミングが修正される。
【0083】ステップ1005に続くステップ1006
では、前に処理したイベントデータが小節の最後のイベ
ントデータか否か判定する。処理対象の小節内のイベン
トデータを全て処理した場合、その判定はYESとなっ
てステップ1011の処理に移行する。そうでない場
合、その判定はNOとなってステップ1007の処理に
移行する。
【0084】ステップ1007では、次に処理するイベ
ントデータは次小節に移動させるべきイベントデータで
あるか否か判定する。この判定は、ステップ1003の
調査で得たクロック数と、そのイベントデータの小節先
頭からのクロック数(図5参照)とを比較することで行
われる。そのイベントデータの小節先頭からのクロック
数が調査で得たクロック数以上であった場合、その判定
はYESとなってステップ1009の処理に移行する。
そうでない場合、その判定はNOとなってステップ10
08の処理に移行する。
【0085】ステップ1008では、それが属する小節
内でそのイベントデータの発音開始タイミング、即ち小
節先頭からのクロック数の変更を行う。他方のステップ
1009では、次小節の先頭タイミングとなるように、
それの小節先頭からのクロック数を変更する。このステ
ップ1009の処理では、必要に応じて、図4に示す配
列SNG_BAR_PTR内のデータの書き換えも行わ
れる。
【0086】ステップ1008、或いは1009の処理
が終了すると、ステップ1010の処理に移行する。こ
のステップ1010では、現在小節が示す小節内の次の
イベントデータの読み出しを行う。この読み出しが終了
した後、ステップ1006の処理に戻る。
【0087】上記ステップ1006〜1010の処理ル
ープを繰り返し行うことで、現在小節が示す小節内の各
イベントデータは、順次処理され、その発音開始タイミ
ング、即ち小節先頭からのクロック数が必要に応じて変
更される。
【0088】一方、ステップ1011では、現在小節が
示す小節は処理最終小節か否か判定する。現在小節が示
す小節が、図9のステップ904で登録された終了位置
の小節であった場合、その判定はYESとなってステッ
プ1012の処理に移行する。そうでない場合、その判
定はNOとなってステップ1013の処理に移行する。
【0089】ステップ1012では、ユーザが指定した
範囲のクウォンタイズが終了したことから、クウォンタ
イズ処理フラグに0を代入する。その後、一連の処理を
終了する。
【0090】ステップ1013では、ユーザが指定した
範囲のクウォンタイズが終了していないことから、現在
小節をインクリメントする。このインクリメントが終了
した後、ステップ1002の処理に戻る。
【0091】なお、第1の実施の形態では、イベントデ
ータの種類に関わらず、クウォンタイズを行っている
が、例えばノートイベントデータのみに限定して、クウ
ォンタイズを行うようにしても良い。また、場合によっ
ては、その逆としても良い。
【0092】また、クウォンタイズの範囲指定、及びク
ウォンタイズ処理の実行は、同一のスイッチSW1を用
いて行うようにしているが、複数のスイッチに役割分担
させて、それらを行わせるようにしても良い。
【0093】また、幅広いクウォンタイズがかけられる
ように、上記オフセットを任意に指定できるようにした
り、基準からの有効範囲をきめるセンシティビティ等を
用意しても良い。
【0094】次に、第2の実施の形態について説明す
る。第1の実施の形態では、小節毎にクウォンタイズを
行った結果、イベントデータを次小節に移動させても、
クウォンタイズ処理した小節がフォーマット上の最終小
節であった場合、移動させる小節が存在しないことか
ら、その移動させたイベントデータは発音されないこと
になる。第2の実施の形態は、このような発音されなく
なるイベントデータの発生を回避するようにしたもので
ある。
【0095】この第2の実施の形態は、第1の実施の形
態の構成と基本的に同じである。このため、第1の実施
の形態と同じ符号を用いて、第1の実施の形態から異な
る部分についてのみ説明する。
【0096】図12は、第2の実施の形態によるクウォ
ンタイズ処理の動作フローチャートである。このクウォ
ンタイズ処理は、図9のステップ905の処理として実
行される。この図12を参照して、その処理動作を説明
する。
【0097】先ず、ステップ1201では、クウォンタ
イズ処理の実行のために、RAM203のワーク領域の
確保といったイニシャル処理を実行する。このイニシャ
ル処理が終了すると、ステップ1202の処理に移行す
る。
【0098】ステップ1202では、現在小節が示す小
節のクロック数の調査を行う。この現在小節は、CPU
201内のレジスタ、或いはRAM203に保持される
変数であり、現在において処理すべき小節を示す値が代
入される。ステップ1201のイニシャル処理では、こ
の現在小節に、図9のステップ903で登録された先頭
位置の小節を示す値を代入している。
【0099】なお、小節のクロック数は、次小節の先頭
のイベントデータに、第2ワードとして格納されている
(図5参照)。その次小節の先頭のイベントデータは、
図4に示すように、配列SNG_BAR_TBLから配
列SNG_BAR_PTRのクウォンタイズ処理するト
ラックの先頭要素番号が格納されている領域を特定し、
その特定した配列SNG_BAR_PTRの領域内の先
頭要素番号を順次検索していくことで、配列SNG_S
ONG内のそのデータにアクセスする。
【0100】ステップ1202で小節のクロック数を得
ると、ステップ1203の処理に移行する。このステッ
プ1203では、次小節に移動させるべき発音開始タイ
ミングのクロック数を調査する。
【0101】この調査により、例えば小節の拍子が4/
4拍子で、オフセットが50パーセントとした場合に
は、図11に示すように、次小節に移動させるべきタイ
ミングとしてクロック数1680が算出されることにな
る。
【0102】ステップ1203に続くステップ1204
では、現在小節が示す小節にイベントデータがないか否
か判定する。その小節内にイベントデータがなかった場
合、その判定はYESとなってステップ1213の処理
に移行する。そうでない場合、その判定はNOとなって
ステップ1005の処理に移行する。
【0103】ステップ1205では、その小節の先頭イ
ベントデータを設定する。このときには、図11を参照
して説明したように、4分音符等のクウォンタイズにお
ける単位、及びオフセットに基づき、それの発音開始タ
イミングが修正される。
【0104】ステップ1205に続くステップ1206
では、前に処理したイベントデータが小節の最後のイベ
ントデータか否か判定する。処理対象の小節内のイベン
トデータを全て処理した場合、その判定はYESとなっ
てステップ1213の処理に移行する。そうでない場
合、その判定はNOとなってステップ1207の処理に
移行する。
【0105】ステップ1207では、次に処理するイベ
ントデータは次小節に移動させるべきイベントデータで
あるか否か判定する。この判定は、ステップ1203の
調査で得たクロック数と、そのイベントデータの小節先
頭からのクロック数(図5参照)とを比較することで行
われる。そのイベントデータの小節先頭からのクロック
数が調査で得たクロック数以上であった場合、その判定
はYESとなってステップ1210の処理に移行する。
そうでない場合、その判定はNOとなってステップ10
08の処理に移行する。
【0106】ステップ1208では、それが属する小節
内でそのイベントデータの発音開始タイミング、即ち小
節先頭からのクロック数の変更を行う。続くステップ1
209では、現在小節が示す小節内の次のイベントデー
タの読み出しを行う。この読み出しが終了した後、ステ
ップ1206の処理に戻る。
【0107】ステップ1210では、現在小節が示す小
節はフォーマット上の最終小節か否か判定する。その最
終小節のクウォンタイズを行っている場合、その判定は
YESとなってステップ1211の処理に移行する。そ
うでない場合、その判定はNOとなってステップ121
2の処理に移行する。
【0108】ステップ1211では、現在処理している
イベントデータの小節先頭からのクロック数(発音開始
タイミング)を、それが属している小節の最終タイミン
グに変更する処理を行う。これにより、そのイベントデ
ータが発音されなくなるのが回避されることになる。こ
のとき、最終小節が4/4拍子であった場合、その小節
先頭からのクロック数は1919に変更される。
【0109】他方のステップ1212では、次小節の先
頭タイミングとなるように、それの小節先頭からのクロ
ック数を変更する。このステップ1212の処理では、
必要に応じて、図4に示す配列SNG_BAR_PTR
内のデータの書き換えも行われる。
【0110】上記ステップ1211、或いは1212の
処理が終了すると、ステップ1209の処理に移行す
る。次に、第3の実施の形態について説明する。
【0111】シーケンサー機能により、ユーザは各種イ
ベントデータの編集(複写、削除、変更等)を行うこと
ができる。しかし、例えばイベントデータの発音開始タ
イミングを、それが属する小節外の発音開始タイミング
に変更してしまった場合には、そのイベントデータ、更
にはそれに続くイベントデータが発音されなかったりす
ることがある。その変更が、他の表示等に関わる処理に
おいても悪影響を及ぼすこともある。第3の実施の形態
は、このような問題が生じないように、発音開始タイミ
ングの変更を制限するようにしたものである。
【0112】この第3の実施の形態は、第2の実施の形
態と同様に、第1の実施の形態の構成と基本的に同じで
ある。このため、第1の実施の形態と同じ符号を用い
て、第1の実施の形態から異なる部分についてのみ説明
する。
【0113】図13は、第3の実施の形態における、発
音開始タイミングの変更方法を説明する図である。同図
を参照して、その変更方法について説明する。第3の実
施の形態では、図1のスイッチSW2、及びスイッチS
W3を、イベントデータ変更用のスイッチとしている。
また、画面に表示されているカーソルは、第1の実施の
形態と同様に、スイッチSW6〜SW9に対する操作に
応じて画面上を移動する。
【0114】図13(a)は、スイッチSW2、及びS
W3を操作する前、即ち変更前の状態を示している。こ
の図13(a)においては、最下段の行のステップ数
“240”がカーソルによって指定されている。この状
態において、スイッチSW6(上スイッチ)を操作する
と、カーソルはその一つ上の行のステップ数“000”
に移動し、スイッチSW7(下スイッチ)を操作する
と、画面が下方向にスクロールして、その下の行の現在
表示されていないステップ数に移動し、スイッチSW8
(左スイッチ)を操作すると、その左の拍数“3”に移
動し、スイッチSW9(右スイッチ)を操作すると、そ
の右の“NOTE”に移動する。
【0115】図13(b)は、図13(a)の状態か
ら、スイッチSW3を1回操作した後の状態を示してい
る。図13(a)と図13(b)とを対比すれば判るよ
うに、スイッチSW3はカーソルで指定された項目の値
の減少を指示するスイッチである。他方のスイッチSW
2は、その逆に、値の増加を指示するスイッチである。
なお、“NOTE”のようにイベントデータのコマンド
の種類を表す項目においては、スイッチSW2、或いは
SW3を操作する度に、イベントデータのコマンドの種
類を示す用語が予め定められた順序で変化する。
【0116】このようにして、ユーザは、スイッチSW
2、SW3、及びSW6〜SW9を操作することによ
り、イベントデータの変更を行うことができる。次に、
第3の実施の形態における各種制御処理について、図1
4〜図18を参照して詳細に説明する。なお、上述した
ように、制御処理においても、第1の実施の形態から異
なる部分についてのみ説明する。
【0117】図14は、第3の実施の形態によるスイッ
チ処理の動作フローチャートである。このスイッチ処理
は、図8のステップ802の処理として実行される。図
14を参照して、第3の実施の形態によるスイッチ処理
について詳細に説明する。
【0118】先ず、ステップ1401では、スイッチS
W1がオンされたか否か判定する。スイッチSW1は、
テレビ110にイベントデータを表示させるイベントリ
ストモードを設定するためのスイッチである。ユーザが
このスイッチSW1を操作し、イベントリストモードを
設定した場合、その判定はYESとなってステップ14
02の処理に移行する。そうでない場合、その判定はN
Oとなってステップ1403の処理に移行する。
【0119】ステップ1402では、設定されたイベン
トリストモードの機能を実現するためのイベントリスト
モード処理を実行する。その後、ステップ1403の処
理に移行する。このイベントリストモード処理について
の詳細は後述する。
【0120】ステップ1703では、スイッチ群102
の他のスイッチ対してユーザが行った操作に応じたその
他の処理を実行する。このその他の処理が終了すると、
ここで一連の処理も終了し、その後、図8のステップ8
03のその他の処理が実行される。
【0121】図15は、上記ステップ1402で実行さ
れるイベントリストモード処理の動作フローチャートで
ある。この図15を参照して、イベントリストモード処
理について詳細に説明する。
【0122】先ず、ステップ1501では、イベントリ
ストモードが設定されたことに伴う、CPU201のレ
ジスタ、RAM203のワーク領域のクリア、初期設定
等のイニシャル処理を行う。このイニシャル処理では、
ユーザが指定したRAM203の楽曲データ記録領域上
のトラックに記憶されている楽曲データを読み出し、そ
れをテレビ110に表示させる処理も行われる。なお、
このイベントデータが表示された画面を、以降、イベン
トリスト画面と呼ぶことにする。
【0123】ステップ1501に続くステップ1502
では、スイッチ群102の各スイッチに割り当てたイベ
ントリストモード設定時の機能に対応したリストモード
スイッチ処理を実行する。その後、ステップ1503に
おいて、カーソルスイッチであるスイッチSW6〜SW
9の移動に伴い、画面をスクロールさせるといった表示
に関わる処理等を含むその他の処理を実行した後、一連
の処理を終了する。
【0124】図16は、上記ステップ1502で実行さ
れるリストモードスイッチ処理の動作フローチャートで
ある。この図16を参照して、リストモードスイッチ処
理について詳細に説明する。
【0125】先ず、ステップ1601では、スイッチS
W2がオンされたか否か判定する。上述したように、こ
のスイッチSW2は、カーソルで指定された項目の値の
増加を指示するために用いられる。ユーザがスイッチS
W2を操作した場合、その判定はYESとなってステッ
プ1602の処理に移行する。そうでない場合、その判
定はNOとなってステップ1603の処理に移行する。
【0126】ステップ1602では、アップダウンフラ
グに0を代入する。このアップダウンフラグは、ユーザ
の指示が増加か否かを示す値が代入される、CPU20
1、或いはRAM203に保持される変数である。ユー
ザの指示が増加指示であれば0、減少指示であれば1が
代入される。このステップ1602の処理が終了する
と、ステップ1605の処理に移行する。
【0127】他方のステップ1603では、スイッチS
W3がオンされたか否か判定する。上述したように、こ
のスイッチSW3は、カーソルで指定された項目の値の
減少を指示するために用いられる。ユーザがスイッチS
W3を操作した場合、その判定はYESとなってステッ
プ1604の処理に移行する。そうでない場合、その判
定はNOとなってステップ1611の処理に移行する。
【0128】ステップ1604では、アップダウンフラ
グに1を代入する。このステップ1604の処理が終了
すると、ステップ1605の処理に移行する。ステップ
1605では、現在選択されている項目の判定を行う。
この判定は、現在カーソルを表示させている表示位置に
より行われる。その判定結果に従って、ステップ160
5に続く処理が決定される。
【0129】ステップ1605において、現在選択され
ている項目がタイミングであると判定すると、ステップ
1606の処理に移行する。ステップ1606では、タ
イミングの項目のなかで選択されている項目は拍か否か
判定する。例えば図13(a)において、カーソルが表
示されている“240”がステップであり、それの左隣
の“3”が拍数である。カーソルが拍数の位置に表示さ
れていた場合、その判定はYESとなってステップ16
07の処理に移行する。そうでない場合、その判定はN
Oとなってステップ1608の処理に移行する。
【0130】ステップ1607では、ユーザが操作した
スイッチの種類(SW2、或いはSW3)に応じて、拍
数を変更する拍変更処理を行う。その後、一連の処理を
終了する。
【0131】他方のステップ1608では、ユーザが操
作したスイッチの種類(SW2、或いはSW3)に応じ
て、ステップ数を変更するステップ変更処理を行う。そ
の後、一連の処理を終了する。
【0132】ステップ1605において、現在選択され
ている項目がコマンドであると判定すると、ステップ1
609の処理に移行する。ステップ1609では、ユー
ザが操作したスイッチの種類(SW2、或いはSW3)
に応じて、イベントデータのコマンドの種類を変更する
処理を行う。その後、一連の処理を終了する。
【0133】ステップ1605において、現在選択され
ている項目がパラメータであると判定すると、ステップ
1610の処理に移行する。ステップ1610では、ユ
ーザが操作したスイッチの種類(SW2、或いはSW
3)に応じて、パラメータの種類を変更する処理を行
う。その後、一連の処理を終了する。
【0134】一方、ステップ1603でNOと判定した
場合、ステップ1611の処理に移行する。このステッ
プ1611では、スイッチSW6〜SW9、即ちカーソ
ルスイッチがオンされたか否か判定する。ユーザがカー
ソルスイッチを操作した場合、その判定はYESとなっ
てステップ1612の処理に移行する。そうでない場
合、その判定はNOとなり、ここで一連の処理を終了す
る。
【0135】ステップ1612では、オンされたスイッ
チの種類に応じて、カーソルを移動させるカーソル移動
処理を行う。このカーソル移動処理により、カーソル
は、スイッチSW6〜SW9に対する操作に対応して、
イベントリスト画面上を項目単位で移動することにな
る。このカーソル移動処理を終了した後、一連の処理を
終了する。
【0136】このようにして、ユーザが行った操作内容
に対応して、イベントデータの各項目の内容が変更され
る。図17は、上記ステップ1607の拍変更処理の動
作フローチャートである。この図17を参照して、次に
拍変更処理について詳細に説明する。
【0137】ステップ1701〜1704では、各種変
数に対し、拍の変更において必要となる値を代入するこ
とが行われる。先ず、ステップ1701では、カーソル
で指定されているイベントデータの第2ワード、即ち小
節先頭からのクロック数(図5参照)を、変数timing_
dataに代入する。続くステップ1702では、この変数
timing_dataの値から、拍数、ステップ数を求め、それ
らの値を変数beat_num 、変数step_num にそれぞれ代
入する。その後、ステップ1703の処理に移行する。
【0138】変数beat_num 、及び変数step_num は、
表示されているタイミングの項目の拍部分、ステップ部
分に対応する値である。例えば小節先頭からのクロック
数、即ち変数timing_dataの値が1200で、拍子が4
/4拍子であった場合(1拍のクロック数は480であ
る)、変数beat_num 、及び変数step_num の各値は、
それぞれ、2、240となる。即ち、変数beat_num 、
及び変数step_num の各値は、小節先頭からのクロック
数を1拍のクロック数で除算した際の商と余りとなる。
なお、上記の例は、図13(a)において、カーソルが
表示されている最下段の行のタイミング項目を例とした
ものである。
【0139】ステップ1703では、変数bar clock
に、カーソルで指定されたイベントデータが属する小節
(以降、現在小節と記す)のクロック数を代入する。そ
の後、ステップ1704において、変数bar clock の値
から、現在小節における拍数の最大値、及び拍数をその
最大値とした際のステップ数を求め、それらの値を変数
beat_max 、及び変数step_max にそれぞれ代入する。
【0140】例えば、拍子が4/4拍子であった場合、
変数 bar_clock 、変数beat_num、及び変数step_num
の各値は、それぞれ、1920、3、479となる。
また、拍子が9/8拍子であった場合、変数 bar_cloc
k 、変数beat_num 、及び変数step_num の各値は、そ
れぞれ、2160、4、239となる。変数beat_num
、及び変数step_num の各値は、小節のクロック数を
1拍のクロック数で除算した際の商と余りである。
【0141】なお、現在小節のクロック数は、次小節の
先頭のイベントデータに、第2ワードとして格納されて
いる(図5参照)。その次小節の先頭のイベントデータ
は、図4に示すように、配列SNG_BAR_TBLか
ら配列SNG_BAR_PTRのクウォンタイズ処理す
るトラックの先頭要素番号が格納されている領域を特定
し、その特定した配列SNG_BAR_PTRの領域内
の先頭要素番号を順次検索していくことで、配列SNG
_SONG内のそのデータにアクセスする。
【0142】ステップ1704に続くステップ1705
では、変数step_num の値は変数step_max の値よりも
大きいか否か判定する。変数step_num の値は変数step
_max の値よりも大きい場合、その判定はYESとなっ
てステップ1706の処理に移行する。そうでない場
合、その判定はNOとなってステップ1707の処理に
移行する。ステップ1706では、変数beat_max の値
をデクリメントし、その後、ステップ1707の処理に
移行する。
【0143】上記ステップ1705、1706の処理
は、以下の理由により行われる。第3の実施の形態で
は、イベントデータの小節先頭からのクロック数が小節
のクロック数を超えないようにしている。例えば現在小
節の拍子が9/8拍子であれば、変数step_max には2
39、変数beat_max には4がそれぞれ代入される。
【0144】各変数beat_num(拍数)の値において許さ
れる変数step_num(ステップ数)の値は、変数beat_nu
m(拍数)の値が4(変数beat_max)のときは0〜23
9、変数beat_num(拍数)が0〜3のときには0〜47
9である。
【0145】上記の例において、変数step_num の値が
変数step_max の値より大きい場合、変数beat_num の
値を3から4に変更すると、変更後の小節先頭からのク
ロック数は小節のクロック数を超えてしまうことにな
る。しかし、その場合に、変数beat_max の値をデクリ
メントすると、変数beat_num の値としては3が上限値
となり、変更後の小節先頭からのクロック数が小節のク
ロック数を超えてしまうことが回避される。即ち例えば
拍数が3でステップ数が479から、拍数が4でステッ
プ数が479に変更されることはなくなる。ステップ1
705、1706は、これを実現するために、変数beat
_max の値を補正する処理である。
【0146】ステップ1707以降の処理では、ユーザ
のスイッチSW2、或いはSW3に対する操作に応じ
て、拍数、即ち変数beat_num の値を変更し、その変更
をRAM203に格納されているイベントデータに反映
されることが行われる。
【0147】先ず、ステップ1707では、アップダウ
ンフラグの値の判定を行う。ユーザがスイッチSW2を
操作した場合、アップダウンフラグの値は0となってス
テップ1708の処理に移行する。
【0148】ステップ1708では、変数beat_num の
値は変数beat_max の値とは等しくないか否か判定す
る。変数beat_num の値は変数beat_max の値と等し
い、即ち変数beat_num の値が上限値であった場合、そ
の判定はNOとなってステップ1710の処理に移行す
る。そうでない場合、その判定はYESとなってステッ
プ1709の処理に移行する。
【0149】ステップ1709では、変数beat_num の
値をインクリメントする。これにより、ユーザが指示し
た内容に応じて表示されている拍数が増加することにな
る。変数beat_max の値は、上述したように、変数step
_num の値に応じて補正されている。このため、変数be
at_num をインクリメントしても、これによって小節先
頭からのクロック数が小節のクロック数を超えることは
ない。ステップ1709の処理を終了した後、ステップ
1710の処理に移行する。
【0150】ステップ1710では、変数beat_num の
値、及び変数step_num の値から、変数timing_dataの
値、即ち小節先頭からのクロック数を求める。これは、
ステップ1702とは逆の方法により算出される。小節
先頭からのクロック数を求めると、次にステップ171
1において、そのクロック数を、イベントデータの第2
ワードとしてRAM203に書き込む処理を行う。
【0151】一方、ステップ1707において、アップ
ダウンフラグの値は1と判定した場合、ステップ171
2の処理に移行する。この場合は、ユーザがスイッチS
W3の操作を行った場合である。
【0152】ステップ1712では、変数beat_num の
値が0に等しくないか否か判定する。拍数として0が表
示されていた場合、その判定はNOとなってステップ1
710の処理に移行する。そうでない場合、その判定は
YESとなってステップ1713の処理に移行する。
【0153】ステップ1713では、変数beat_num の
値をデクリメントする。これにより、ユーザが指示した
内容に応じて表示されている拍数が減少することにな
る。その後、ステップ1710の処理に移行する。
【0154】このように、ユーザが拍数の変更を指示し
た場合、その指示内容に従って変更した後の発音開始タ
イミング(小節先頭からのクロック数)が、小節の外の
タイミングとならないように監視しながら、拍数の変更
が行われる。
【0155】図18は、上記ステップ1608のステッ
プ変更処理の動作フローチャートである。この図18を
参照して、ステップ変更処理について詳細に説明する。
ステップ1801〜1804では、各種変数に対し、ス
テップ数の変更において必要となる値を代入することが
行われる。
【0156】先ず、ステップ1801では、カーソルで
指定されているイベントデータの第2ワード、即ち小節
先頭からのクロック数(図5参照)を、変数timing_da
taに代入する。続くステップ1802では、この変数ti
ming_dataの値から、拍数、ステップ数を求め、それら
の値を変数beat_num 、変数step_num にそれぞれ代入
する。その後、ステップ1803の処理に移行する。
【0157】変数beat_num 、及び変数step_num は、
表示されているタイミングの項目の拍部分、ステップ部
分に対応する値である。例えば小節先頭からのクロック
数、即ち変数timing_dataの値が1200で、拍子が4
/4拍子であった場合(1拍のクロック数は480であ
る)、変数beat_num 、及び変数step_num の各値は、
それぞれ、2、240となる。即ち、変数beat_num 、
及び変数step_num の各値は、小節先頭からのクロック
数を1拍のクロック数で除算した際の商と余りとなる。
【0158】ステップ1803では、変数 bar_clock
に、カーソルで指定されたイベントデータが属する現在
小節のクロック数を代入する。その後、ステップ180
4において、変数 bar_clock の値から、現在小節にお
ける拍数の最大値、及び拍数をその最大値とした際のス
テップ数を求め、それらの値を変数beat_max 、及び変
数step_max にそれぞれ代入する。
【0159】例えば、拍子が4/4拍子であった場合、
変数 bar_clock 、変数beat_num、及び変数step_num
の各値は、それぞれ、1920、3、479となる。
また、拍子が9/8拍子であった場合、変数 bar_cloc
k 、変数beat_num 、及び変数step_num の各値は、そ
れぞれ、2160、4、239となる。変数beat_num
、及び変数step_num の各値は、小節のクロック数を
1拍のクロック数で除算した際の商と余りである。
【0160】なお、現在小節のクロック数は、次小節の
先頭のイベントデータに、第2ワードとして格納されて
いる(図5参照)。その次小節の先頭のイベントデータ
は、図4に示すように、配列SNG_BAR_TBLか
ら配列SNG_BAR_PTRのクウォンタイズ処理す
るトラックの先頭要素番号が格納されている領域を特定
し、その特定した配列SNG_BAR_PTRの領域内
の先頭要素番号を順次検索していくことで、配列SNG
_SONG内のそのデータにアクセスする。
【0161】ステップ1804に続くステップ1805
では、変数beat_num の値は変数beat_max の値と等し
いか否か判定する。変数beat_num の値は変数beat_ma
x の値に等しくない場合、その判定はYESとなってス
テップ1806の処理に移行する。そうでない場合、そ
の判定はNOとなってステップ1807の処理に移行す
る。ステップ1806では、変数step_max に479を
代入する。その後、ステップ1807の処理に移行す
る。
【0162】上記ステップ1805、1806の処理
は、以下の理由により行われる。第3の実施の形態で
は、イベントデータの小節先頭からのクロック数が小節
のクロック数を超えないようにしている。例えば現在小
節の拍子が9/8拍子であれば、変数step_max には2
39、変数beat_max には4がそれぞれ代入される。
【0163】各変数beat_num(拍数)の値において許さ
れる変数step_num(ステップ数)の値は、変数beat_nu
m(拍数)の値が4(変数beat_max)のときは0〜23
9、変数beat_num (拍数)が0〜3のときには0〜4
79である。
【0164】上記の例のように、変数beat_num の値が
変数beat_max の値と等しいか否かにより、変数step_
num の値としての上限値は変化する。ステップ180
5、1806は、このように拍数に応じて変化するステ
ップ数の上限値を適正な値に補正するための処理であ
る。
【0165】ステップ1807以降の処理では、ユーザ
のスイッチSW2、或いはSW3に対する操作に応じ
て、ステップ数、即ち変数step_num の値を変更し、そ
の変更をRAM203に格納されているイベントデータ
に反映されることが行われる。
【0166】先ず、ステップ1807では、アップダウ
ンフラグの値の判定を行う。ユーザがスイッチSW2を
操作した場合、アップダウンフラグの値は0となってス
テップ1808の処理に移行する。
【0167】ステップ1808では、変数step_num の
値は変数step_max の値とは等しくないか否か判定す
る。変数step_num の値は変数step_max の値と等し
い、即ち変数step_num の値が上限値であった場合、そ
の判定はNOとなってステップ1810の処理に移行す
る。そうでない場合、その判定はYESとなってステッ
プ1809の処理に移行する。
【0168】ステップ1809では、変数step_num の
値をインクリメントする。これにより、ユーザが指示し
た内容に応じて表示されているステップ数が増加するこ
とになる。変数step_num の値は、上述したように、変
数beat_num の値に応じて補正されている。このため、
変数step_num をインクリメントしても、これによって
小節先頭からのクロック数が小節のクロック数を超える
ことはない。ステップ1809の処理を終了した後、ス
テップ1810の処理に移行する。
【0169】ステップ1810では、変数beat_num の
値、及び変数step_num の値から、変数timing_dataの
値、即ち小節先頭からのクロック数を求める。これは、
ステップ1802とは逆の方法により算出される。小節
先頭からのクロック数を求めると、次にステップ181
1において、そのクロック数を、イベントデータの第2
ワードとしてRAM203に書き込む処理を行う。
【0170】一方、ステップ1807において、アップ
ダウンフラグの値は1と判定した場合、ステップ181
2の処理に移行する。この場合は、ユーザがスイッチS
W3の操作を行った場合である。
【0171】ステップ1812では、変数beat_num の
値が0に等しくないか否か判定する。拍数として0が表
示されていた場合、その判定はNOとなってステップ1
810の処理に移行する。そうでない場合、その判定は
YESとなってステップ1813の処理に移行する。
【0172】ステップ1813では、変数step_num の
値をデクリメントする。これにより、ユーザが指示した
内容に応じて表示されているステップ数が減少すること
になる。その後、ステップ1810の処理に移行する。
【0173】このように、ユーザがステップ数の変更を
指示した場合、その指示内容に従って変更した後の発音
開始タイミング(小節先頭からのクロック数)が、小節
の外のタイミングとならないように監視しながら、ステ
ップ数の変更が行われる。
【0174】なお、第3の実施の形態では、図13に示
すようにイベントデータの小節先頭からのクロック数を
拍数、及びステップ数で画面上に表現しているが、例え
ば小節先頭からのクロック数をそのまま画面上に数値と
して表示させても良い。
【0175】また、第3の実施の形態では、イベントデ
ータの発音開始タイミングの変更を制限しているが、予
め存在するイベントデータに対しては、その発音開始タ
イミングを、それが属する小節内となるように、自動的
に発音タイミングを修正するようにしても良い。
【0176】また、第1〜第3の実施の形態は、電子楽
器100に本発明を適用したものであるが、適用はこれ
に限定されるものではない。本発明は、シーケンサーを
はじめ、シーケンサー機能を搭載した装置に幅広く適用
できるものである。
【0177】
【発明の効果】以上説明したように本発明のシーケンス
データのクウォンタイズ方法、及びタイミング処理装置
は、指定範囲として複数の小節にまたがる範囲が指定さ
れたとき、小節を処理単位として、各小節毎に、シーケ
ンスデータの発音開始タイミングを、それが属する小節
の拍子に基づいて変更する。このため、その小節の演奏
時間等を変更しても、その変更が他の小節のクウォンタ
イズに影響することがなくなり、ユーザは意図したクウ
ォンタイズを容易にかけることができる。
【0178】また、本発明のシーケンスデータのタイミ
ング処理装置は、ユーザによるシーケンスデータの発音
開始タイミングの変更を監視し、それが属する小節外へ
の発音開始タイミングの変更であった場合にはその変更
を無効として禁止するため、シーケンスデータの発音開
始タイミングを常に適正な状態に維持しておくことがで
きる。
【図面の簡単な説明】
【図1】第1の実施の形態が適用されたシステムの外観
を示す図である。
【図2】電子楽器の構成のブロック図である。
【図3】RAM203に記憶される楽曲データのデータ
フォーマットを示す図である(その1)。
【図4】RAM203に記憶される楽曲データのデータ
フォーマットを示す図である(その2)。
【図5】ノートイベントデータとコントロールイベント
データのデータフォーマットを示す図である。
【図6】ジャンプイベントデータ群のデータフォーマッ
トを示す図である。
【図7】クウォンタイズ処理の範囲指定方法を説明する
図である。
【図8】全体処理の動作フローチャートである。
【図9】スイッチ処理の動作フローチャートである。
【図10】第1の実施の形態によるクウォンタイズ処理
の動作フローチャートである。
【図11】各拍子における1小節の時間的長さを示す図
である。
【図12】第2の実施の形態によるクウォンタイズ処理
の動作フローチャートである。
【図13】発音開始タイミングの変更方法を説明する図
である。
【図14】第3の実施の形態によるスイッチ処理の動作
フローチャートである。
【図15】イベントリストモード処理の動作フローチャ
ートである。
【図16】リストモードスイッチ処理の動作フローチャ
ートである。
【図17】拍変更処理の動作フローチャートである。
【図18】ステップ変更処理の動作フローチャートであ
る。
【符号の説明】
100 電子楽器 102 スイッチ群 110 テレビ 201 CPU 202 ROM 203 RAM 204 画像データ出力部 205 サウンドシステム 206 MIDIインターフェイス

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 指定範囲内に存在するシーケンスデータ
    の発音開始タイミングを変更するクウォンタイズを行う
    方法であって、 前記指定範囲として複数の小節にまたがる範囲が指定さ
    れたとき、前記小節を処理単位として、各小節毎に、前
    記シーケンスデータの発音開始タイミングを、それが属
    する小節の拍子に基づいて変更していく、 ことを特徴とするシーケンスデータのクウォンタイズ方
    法。
  2. 【請求項2】 シーケンスデータの発音開始タイミング
    を制御する装置において、 前記シーケンスデータの発音開始タイミングを変更させ
    る範囲を指定するための指定手段と、 前記指定手段により、複数の小節にまたがる範囲が指定
    されたとき、前記小節を処理単位として、各小節毎に、
    前記シーケンスデータの発音開始タイミングを、それが
    属する小節の拍子に基づいて変更する制御手段と、 を具備したことを特徴とするシーケンスデータのタイミ
    ング処理装置。
  3. 【請求項3】 シーケンスデータの発音開始タイミング
    を制御する装置において、 前記シーケンスデータの発音開始タイミングを指定する
    ための指定手段と、 前記指定手段により指定された前記シーケンスデータの
    発音開始タイミングが、該シーケンスデータが属する小
    節内であるか否か判定する判定手段と、 前記シーケンスデータの発音開始タイミングが、該シー
    ケンスデータが属する小節内ではないと前記判定手段が
    判定したとき、前記指定手段による指定を無効とする制
    御手段と、 を具備したことを特徴とするシーケンスデータのタイミ
    ング処理装置。
JP7234525A 1995-09-12 1995-09-12 シーケンスデータのクウォンタイズ方法、及びシーケンスデータのタイミング処理装置 Abandoned JPH0981131A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7234525A JPH0981131A (ja) 1995-09-12 1995-09-12 シーケンスデータのクウォンタイズ方法、及びシーケンスデータのタイミング処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7234525A JPH0981131A (ja) 1995-09-12 1995-09-12 シーケンスデータのクウォンタイズ方法、及びシーケンスデータのタイミング処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003387413A Division JP2004046280A (ja) 2003-11-18 2003-11-18 シーケンスデータのタイミング処理装置

Publications (1)

Publication Number Publication Date
JPH0981131A true JPH0981131A (ja) 1997-03-28

Family

ID=16972399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7234525A Abandoned JPH0981131A (ja) 1995-09-12 1995-09-12 シーケンスデータのクウォンタイズ方法、及びシーケンスデータのタイミング処理装置

Country Status (1)

Country Link
JP (1) JPH0981131A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020173485A (ja) * 2020-07-28 2020-10-22 カシオ計算機株式会社 電子楽器、演奏情報記憶方法、及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020173485A (ja) * 2020-07-28 2020-10-22 カシオ計算機株式会社 電子楽器、演奏情報記憶方法、及びプログラム

Similar Documents

Publication Publication Date Title
EP0980061A1 (en) Arrangement apparatus by modification of music data with arrangement data
US5457282A (en) Automatic accompaniment apparatus having arrangement function with beat adjustment
JPH04274498A (ja) 自動演奏装置
US5495072A (en) Automatic performance apparatus
JPH0981131A (ja) シーケンスデータのクウォンタイズ方法、及びシーケンスデータのタイミング処理装置
JP2940129B2 (ja) リズム演奏装置
JP2002175071A (ja) 演奏ガイド方法、演奏ガイド装置および記録媒体
JP2004317819A (ja) 自動演奏装置
JP3709821B2 (ja) 楽曲情報編集装置及び楽曲情報編集プログラム
JP3463515B2 (ja) 楽譜表示方法、楽譜表示装置、及びプログラムを記録した記録媒体
JPH0981137A (ja) パラメータ制御装置、及び自動演奏装置
JP4270102B2 (ja) 自動演奏装置及びプログラム
JP2004046280A (ja) シーケンスデータのタイミング処理装置
JP3267226B2 (ja) 自動伴奏装置及び自動伴奏制御プログラムを記録した媒体
JP4685226B2 (ja) 波形再生用自動演奏装置
JP3052875B2 (ja) シーケンスデータ編集方法およびシーケンサ
JP4138919B2 (ja) 量子化装置および楽譜表示装置
JP3797180B2 (ja) 楽譜表示装置及び楽譜表示プログラム
JP3709820B2 (ja) 楽曲情報編集装置及び楽曲情報編集プログラム
JP3767418B2 (ja) 自動演奏装置及び自動演奏制御プログラム
JP3797181B2 (ja) 楽譜表示装置及び楽譜表示プログラム
JP2000163052A (ja) 楽曲生成装置および楽曲生成プログラムを記録した記録媒体
JP3307598B2 (ja) 演奏記録再生装置
US5548079A (en) Music sequencer with skip operation to recorded positions associated with tone parameter sets
JP2551156B2 (ja) 自動演奏装置

Legal Events

Date Code Title Description
A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20040109