JPH0749684A - Automatic playing device - Google Patents
Automatic playing deviceInfo
- Publication number
- JPH0749684A JPH0749684A JP5194238A JP19423893A JPH0749684A JP H0749684 A JPH0749684 A JP H0749684A JP 5194238 A JP5194238 A JP 5194238A JP 19423893 A JP19423893 A JP 19423893A JP H0749684 A JPH0749684 A JP H0749684A
- Authority
- JP
- Japan
- Prior art keywords
- data
- automatic performance
- read
- tone
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】この発明は電子楽器における自動
演奏装置に関し、詳しくは、多量の演奏データを処理す
る際の処理の遅れを防止することのできる自動演奏装置
に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an automatic musical instrument in an electronic musical instrument, and more particularly to an automatic musical instrument capable of preventing a delay in processing when a large amount of musical performance data is processed.
【0002】[0002]
【従来の技術】近年、自動演奏装置においては単純な演
奏データ(ノートオンデータ、ノートオフデータ)のみ
ならず、様々な制御データ(たとえば音色チェンジデー
タ、音量変更データ、ピッチ変更データ等)も演奏デー
タの中に含ませ、表現力の高い演奏をさせることができ
るようになっている。これらの制御データは、各制御デ
ータが発生すべきタイミングを示すタイミングデータと
共に自動演奏データメモリに記憶されている。2. Description of the Related Art In recent years, not only simple performance data (note-on data, note-off data) but also various control data (for example, tone color change data, volume change data, pitch change data, etc.) are played by an automatic performance device. By including it in the data, it is possible to make the performance highly expressive. These control data are stored in the automatic performance data memory together with timing data indicating the timing at which each control data should be generated.
【0003】[0003]
【発明が解決しようとする課題】従来の自動演奏装置は
メモリに記憶されているデータを時間経過にしたがって
順次読み出し、読み出した時に読み出された全データを
音源へ出力するようにしているので、同じタイミングに
多数のデータが記憶されていると、その処理に多くの時
間がかかり、楽音の発音タイミングが遅れてしまうおそ
れがあった。Since the conventional automatic performance device sequentially reads out the data stored in the memory over time, and outputs all the read-out data to the sound source. If a large amount of data is stored at the same timing, it takes a lot of time to process the data, and the sounding timing of the musical tone may be delayed.
【0004】[0004]
【課題を解決するための手段】上記の課題を解決するた
めに、本発明においては、ノートオンデータを含む第1
の種類の自動演奏データと、第2の種類の自動演奏デー
タを時間経過にしたがって記憶した記憶手段と、前記第
1及び第2の種類の自動演奏データを時間経過にしたが
って順次読み出す読み出し手段と、前記読み出した第1
の種類の自動演奏データを直ちに音源へ出力する第1の
出力手段と、前記読み出した第2の種類の自動演奏デー
タを、このデータが読み出されてから、第1の出力手段
によって次のノートオンデータが出力されるまでの間に
音源へ出力する第2の出力手段とを備えたことを特徴と
する。In order to solve the above-mentioned problems, in the present invention, the first data including note-on data is used.
Storage means for storing the automatic performance data of the above type and the automatic performance data of the second type over time, and a reading means for sequentially reading the automatic performance data of the first and second types over time. The read first
The first output means for immediately outputting the automatic performance data of the above type to the sound source and the read second automatic performance data of the second type, after the data is read, the next note by the first output means. A second output means for outputting to the sound source until the on-data is output.
【0005】[0005]
【作用】第1の種類に自動演奏データと第2の種類の自
動演奏データとが同時に読み出された時、第1の種類の
自動演奏データは直ちに音源へ出力されるが、第2の種
類の自動演奏データは次のノートオン発生までの間に音
源へ出力される。このため、処理が分散される。When the automatic performance data of the first type and the automatic performance data of the second type are read simultaneously, the automatic performance data of the first type is immediately output to the sound source, but the second type. The automatic performance data of is output to the tone generator until the next note-on occurs. Therefore, the processing is distributed.
【0006】[0006]
【実施例】以下、図面を参照して、本発明の実施例を詳
細に説明する。図1は実施例におけるハード構成のブロ
ック図である。CPU1は装置全体の動作を制御するも
のであり、ROM2に記憶された制御プログラムにした
がって処理を実行する。また、CPU1と各部とはバス
3を介して接続されており、各種データの送受が行われ
る。ROM2には制御プログラムのほかにオートベース
コード等の自動演奏データが予め記憶されている。RA
M4はCPUによる処理時において発生する各種データ
を一時的に記憶するバッファ、レジスタ、フラグ等の領
域が設けられている。タイマ5はCPU1に対して割り
込み信号を供給するもので、テンポに応じた可変周期で
割り込み信号を発生する。割り込み信号の発生周期は、
たとえば4分音符当り24回信号が発生する周期、即ち
96分音符毎の周期である。CPU1は、この割り込み
信号の発生に従ってROM2に記憶された自動演奏デー
タの読み出し処理を実行する。Embodiments of the present invention will now be described in detail with reference to the drawings. FIG. 1 is a block diagram of a hardware configuration according to the embodiment. The CPU 1 controls the operation of the entire apparatus and executes processing according to a control program stored in the ROM 2. Further, the CPU 1 and each unit are connected via a bus 3, and various data are transmitted and received. In addition to the control program, the ROM 2 stores in advance automatic performance data such as an auto bass code. RA
The M4 is provided with areas such as buffers, registers, and flags for temporarily storing various data generated during processing by the CPU. The timer 5 supplies an interrupt signal to the CPU 1 and generates an interrupt signal in a variable cycle according to the tempo. The interrupt signal generation cycle is
For example, it is a cycle in which a signal is generated 24 times per quarter note, that is, a cycle of every 96th note. The CPU 1 executes the reading process of the automatic performance data stored in the ROM 2 in accordance with the generation of this interrupt signal.
【0007】鍵盤6は多数(たとえば61個)の鍵やピ
ッチベンドホイール、モジュレーションホイール等の演
奏操作子を有するものであり、演奏者によって操作され
ると、その操作を鍵盤検出回路7が検出し、バス3を介
してCPU1へ操作情報が出力される。CPU1は、鍵
操作情報にもとづいてノートオン、ノートオフ等のノー
トデータを作成するとともに、ピッチベンドホイール等
の操作情報にもとづいて楽音制御データを作成し、バス
3を介して音源回路8へ出力する。音源回路8において
は供給されたノートデータ、楽音制御データにもとづい
て楽音波形信号を形成する。音源回路の方式としては、
周知の波形メモリ読み出し方式、FM方式や物理モデル
シミュレーション方式等が用いられる。また、この音源
回路は複数のMIDIチャンネルを有し、各チャンネル
毎独立した音色で楽音を発生させることが可能である。
音源回路8において形成された楽音波形信号はサウンド
システム9へ供給され、楽音が発生される。10はパネ
ルスイッチであり、自動演奏のスタート/ストップ指
示、音色選択等各種機能を指定するための多数のスイッ
チを有する。これらスイッチの操作は、スイッチ検出回
路11によって検出され、操作情報がバス3を介してC
PU1へ供給される。CPU1は供給されたスイッチ情
報に従って各種機能を実行する。12は表示回路であ
り、各種データを表示する。The keyboard 6 has a large number (61, for example) of keys and performance operators such as a pitch bend wheel and a modulation wheel. When the keyboard 6 is operated by a player, the keyboard detection circuit 7 detects the operation, Operation information is output to the CPU 1 via the bus 3. The CPU 1 creates note data such as note-on and note-off based on the key operation information, and also creates musical tone control data based on operation information such as a pitch bend wheel and outputs it to the tone generator circuit 8 via the bus 3. . The tone generator circuit 8 forms a tone waveform signal based on the supplied note data and tone control data. As the method of the tone generator circuit,
Well-known waveform memory reading method, FM method, physical model simulation method, etc. are used. Further, this tone generator circuit has a plurality of MIDI channels, and it is possible to generate a musical tone with an independent tone color for each channel.
The tone waveform signal formed in the tone generator circuit 8 is supplied to the sound system 9 to generate a tone. A panel switch 10 has a large number of switches for designating various functions such as start / stop instructions for automatic performance and tone color selection. The operation of these switches is detected by the switch detection circuit 11, and the operation information is transferred via the bus 3 to C
It is supplied to PU1. The CPU 1 executes various functions according to the supplied switch information. A display circuit 12 displays various data.
【0008】図2はROM2に記憶された自動演奏デー
タのデータフォーマットを示したものである。この自動
演奏データはたとえばオートベースコード演奏に用いら
れるものであり、複数パート(たとえばコードバッキン
グパート、ベースパート、ドラムパート等)に対応した
複数トラック(実施例においては16トラック)の演奏
データからなり、各トラックが音源におけるMIDIチ
ャンネルの何れかに対応し、トラック毎異なる音色での
演奏が可能である。16トラックすべて異なるMIDI
チャンネルに対応させて、すべてのトラックの音色を異
ならせてもよいし、複数のトラックを同じMIDIチャ
ンネルとしてもよい。各トラックの自動演奏データの先
頭には音色の切り換えを示すプログラムチェンジデー
タ、楽音の音高の変更量を示すピッチベンドデータ、楽
音の音量を制御するボリュームデータ、同じく音量を制
御するエクスプレッションデータ、楽音の変調量を制御
するためのモジュレーションデータ、音像の定位位置を
示すパンポットデータ、リバーブの深さを制御するリバ
ーブデプス等の楽音制御データが記憶されている。これ
ら楽音制御データに続いて実際の時間経過にしたがった
自動演奏データが記憶されている。自動演奏データはな
んらかの状態の変化を示すイベントデータ(たとえばノ
ートオンの発生、ノートオフの発生、ピッチベンド値の
変化、プログラムチェンジの発生等)とそのイベントデ
ータの発生タイミングとを組にして記録されており、ま
ずタイミングデータ、その後イベントデータといった順
序でデータが記録されている。1つのタイミングに複数
のイベントが同時発生する場合は、イベントデータを連
続させて記録する。本実施例においてはタイミングデー
タは各イベントの間隔を表すデータで記述されている。
自動演奏データの最後にはデータの終わりを示すエンド
データが記憶されている。この自動演奏データはたとえ
ば2小節分のデータであって、エンドデータが読み出さ
れた時、演奏データの先頭に戻るようにして、2小節分
の演奏データを繰り返し読み出してオートベースコード
演奏をするようにしている。なお、説明を簡単にするた
め、この2小節分の演奏データを繰り返し読み出して演
奏するだけの例を示すが、通常のオートベースコード演
奏のようにイントロ演奏データ、フィルイン演奏デー
タ、エンディング演奏データ等も記憶させ、曲の進行に
従って切り換えるようにしてもいいことはいうまでもな
い。FIG. 2 shows the data format of the automatic performance data stored in the ROM 2. This automatic performance data is used, for example, for automatic bass chord performance, and consists of performance data of a plurality of tracks (16 tracks in the embodiment) corresponding to a plurality of parts (eg, chord backing part, bass part, drum part, etc.). , Each track corresponds to one of the MIDI channels in the sound source, and it is possible to play with a different tone color for each track. All 16 tracks are different MIDI
The tone colors of all tracks may be different depending on the channel, or a plurality of tracks may be the same MIDI channel. At the beginning of the automatic performance data of each track, program change data indicating tone color switching, pitch bend data indicating the tone pitch change amount, volume data controlling the tone volume, expression data that also controls the tone volume, and tone It stores modulation data for controlling the amount of modulation, panpot data indicating the localization position of a sound image, and tone control data such as reverb depth for controlling the depth of reverb. Following these musical tone control data, automatic performance data according to actual passage of time is stored. The automatic performance data is recorded as a set of event data (for example, note-on occurrence, note-off occurrence, pitch bend value change, program change occurrence, etc.) indicating the change in some state and the event data occurrence timing. The data is recorded in the order of timing data and then event data. When a plurality of events occur simultaneously at one timing, the event data is recorded continuously. In this embodiment, the timing data is described as data representing the interval between each event.
At the end of the automatic performance data, end data indicating the end of the data is stored. This automatic performance data is, for example, data for two measures, and when the end data is read out, the performance data for two measures is repeatedly read out so as to return to the beginning of the performance data and the auto bass chord performance is performed. I am trying. For the sake of simplicity, an example is shown in which the performance data for these two measures is repeatedly read and played, but intro performance data, fill-in performance data, ending performance data, etc. as in normal auto bass chord performance. Needless to say, it may be stored in memory and switched as the song progresses.
【0009】このような自動演奏データがトラック1か
らトラック16まで、16トラック分記憶されており、
この16トラック分の自動演奏データが実質的に並行し
て読み出されることによって、複数パートの演奏が実行
される。本発明においては、自動演奏データを読み出し
て音源回路8へ出力する際に、読み出してすぐに音源回
路8へ出力するイベントデータと、すぐには出力しない
イベントデータとに区別して扱うようにしている。即
ち、ノートオン、ノートオフ、ピッチベンド等、リアル
タイムの発音に関するデータについては読み出してすぐ
に出力するが、プログラムチェンジ、パンポット、リバ
ーブデプス等の、これらが読み出された後の次のノート
オンからそのデータが有効となるような種類のデータに
ついてはすぐには出力せず、次のノートオンイベントが
発生するときにデータの出力を行うようにしている。こ
のようにすることによって、各トラックの先頭に記憶さ
れている多数の楽音制御データを、演奏データの読み出
し開始時、或いは繰り返し読み出し時にすべてまとめて
音源回路8へ出力することによる処理時間のかかり過ぎ
を防止することができる。即ち、各トラック毎に最初の
ノートオンデータの発生タイミングが異なることが多い
ため、最初のノートオンデータの発生タイミングにおい
て楽音制御データの出力を行うようにすれば、各トラッ
クの先頭に存在する多量の楽音制御データを音源回路8
へ出力するタイミングを分散させることができ、その結
果、1つのタイミングに多量のデータが音源回路8へ出
力されることによる遅れ(もたり)を防ぐことができる
ようになる。なお、ピッチベンドやボリューム、エクス
プレッション等のリアルタイム性を要求されるデータは
本来ならば発生タイミングにおいて音源回路8へ出力さ
れるべきであるが、本実施例においては自動演奏の開始
時に限り、これらのデータも最初のノートオンデータの
発生タイミングまで出力しないようにしている。なぜな
ら、これらのデータは発生中の楽音に対して有効な楽音
制御データであり、最初のノートオンが発生する前はこ
れらの制御データを出力しても無意味だからである。Such automatic performance data is stored for 16 tracks from track 1 to track 16,
The performance of a plurality of parts is executed by reading out the automatic performance data for 16 tracks substantially in parallel. In the present invention, when the automatic performance data is read and output to the tone generator circuit 8, the event data that is read out and immediately output to the tone generator circuit 8 and the event data that is not immediately output are handled separately. . In other words, note-on, note-off, pitch bend, and other data related to real-time pronunciation are read out and output immediately.However, program change, panpot, reverb depth, etc. are read from the next note-on after these are read out. The type of data that makes the data valid is not output immediately, but the data is output when the next note-on event occurs. By doing so, it takes too much processing time to output a large number of musical sound control data stored at the beginning of each track all together to the tone generator circuit 8 at the start of reading the performance data or at the time of repeated reading. Can be prevented. That is, the generation timing of the first note-on data is often different for each track. Therefore, if the tone control data is output at the generation timing of the first note-on data, a large amount of data at the beginning of each track will be recorded. Tone control data of the tone generator circuit 8
The output timing can be dispersed, and as a result, it is possible to prevent a delay (looseness) due to a large amount of data being output to the sound source circuit 8 at one timing. Data that requires real-time characteristics such as pitch bend, volume, and expression should normally be output to the tone generator circuit 8 at the timing of occurrence, but in the present embodiment, these data are available only at the start of automatic performance. Also does not output until the first note-on data generation timing. This is because these data are musical tone control data effective for the musical tone being generated, and it is meaningless to output these control data before the first note-on occurs.
【0010】次に図3から図7を参照して本発明におけ
るCPU1の処理のフローチャートを説明する。図3は
メインルーチンを示している。まず、図示しない電源ス
イッチを投入すると、ステップS1のイニシャライズ処
理を実行し、各種レジスタやフラグ等の初期化を行う。
続いてステップS2へ進み、鍵盤処理を実行する。ここ
では鍵盤検出回路7から出力される鍵盤6の操作情報に
応じて楽音の発音、消音に関する処理を行う。また、オ
ートベースコード演奏の実行中には、鍵盤の所定の領域
を和音指定領域とし、この領域内で押鍵された鍵盤の組
み合わせによって和音が決定され、オートベースコード
の和音指定に利用される。Next, a flow chart of processing of the CPU 1 in the present invention will be described with reference to FIGS. 3 to 7. FIG. 3 shows the main routine. First, when a power switch (not shown) is turned on, the initialization process of step S1 is executed to initialize various registers and flags.
Then, in step S2, keyboard processing is executed. Here, processing relating to sounding and muting of musical tones is performed according to the operation information of the keyboard 6 output from the keyboard detection circuit 7. Also, during execution of the auto bass chord performance, a predetermined area of the keyboard is used as a chord designation area, and a chord is determined by a combination of keys pressed in this area, and is used for chord designation of the auto bass chord. .
【0011】次にステップS3へ進み、スイッチ検出回
路11からのスイッチ操作情報にもとづくパネルスイッ
チ処理を行う。この詳細な処理は後述する図5にて説明
する。続いてステップS4の自動演奏処理へ進み、自動
演奏データの読み出し処理を行う。この自動演奏処理の
詳細は後述する図6及び7にて説明する。次にステップ
S5の表示関連の処理等のその他の処理を実行して、再
びステップS2の鍵盤処理へ進み、以上のステップS2
からS5を繰り返し実行する。Next, in step S3, panel switch processing is performed based on the switch operation information from the switch detection circuit 11. This detailed processing will be described later with reference to FIG. Then, in step S4, the automatic performance process is performed to read out the automatic performance data. Details of this automatic performance processing will be described later with reference to FIGS. Next, other processing such as display-related processing in step S5 is executed, and the process proceeds to the keyboard processing in step S2 again.
To S5 are repeatedly executed.
【0012】次に、図5を参照してステップS3のパネ
ルスイッチ処理の詳細を説明する。ステップS11にお
いてパネルスイッチ10上のスタート/ストップスイッ
チ(図示せず)がオンされたか否かを判断し、オンされ
た場合はステップS12以降の処理を実行し、オンされ
ていない場合はステップS24へ進み、その他のスイッ
チの処理を実行する。ステップS12ではランフラグR
UNが1か否かが判断され、0であれば自動演奏(オー
ドベースコード演奏)を開始させるためステップS13
からステップS21の処理を実行し、1であれば実行中
の自動演奏を停止するため、ステップS22へ進みラン
フラグRUNをクリアし、ステップS23へ進んで音源
回路の自動演奏データが割り当てられる全MIDIチャ
ンネルへオールノートオフデータを出力して発音中の全
楽音を消音させる。初めてスタート/ストップスイッチ
が操作されたときは自動演奏を開始させるための操作な
のでステップS12の判断はNOとなる。そしてステッ
プS13へ進み、カウンタiを1にセットする。このカ
ウンタiは1から16の各トラック番号を示すものであ
る。続いてステップS14へ進み、トラックiの先頭デ
ータを読み出す。最初はカウンタiの値が1であるの
で、トラック1のデータが読み出される。前述したよう
に、各トラックの先頭には各種楽音制御データが記憶さ
れており、ステップS14の処理では、この楽音制御デ
ータの1つが読み出されるようになる。次にステップS
15へ進み、読み出した楽音制御データをバッファBi
へ書き込む。このバッファBiに関しては詳しくは後述
するが、リアルタイム性が要求されない楽音制御データ
を記憶するためのバッファである。次にステップS16
へ進んでトラックiの次のデータを読み出し、ステップ
S17でそのデータがタイミングデータか否かを判断す
る。この結果、NOと判断された場合は再びステップS
15へ戻って上記の処理を繰り返す。このようにして各
トラックの先頭に記憶されている複数の楽音制御データ
を順次読み出してバッファBiへ格納していく。そし
て、すべての楽音制御データが読み出されると、その次
にはタイミングデータが記憶されているので、ステップ
S17における判断はYESとなり、ステップS18へ
進んで読み出したタイミングデータをタイムレジスタT
IMEiへ格納する。そしてステップS19へ進み、カ
ウンタiの値が16か否かを判断し、16でなければス
テップS20へ進んでカウンタiの値をインクリメント
し、再びステップS14以降の処理を実行する。2回目
にステップS14へ進んだときには、ステップS20に
おいてカウンタiの値がインクリメントされて2になっ
ているので、ステップS14以降の処理ではトラック2
のデータが読み出されるようになる。これらの処理をカ
ウンタiの値が16になるまで、即ちトラック1からト
ラック16の全てのトラックの読み出しが終わるまで繰
り返すと、ステップS19においてNOと判断され、ス
テップS21へ進んでランフラグRUNを1にセットし
て、ステップS24のその他のスイッチ処理へ進む。ス
テップS24の処理が終わると、元のメインルーチンへ
戻る。このようにして、スタート/ストップスイッチに
より自動演奏のスタートが指示されると、各トラックの
先頭に記憶されている楽音制御データが読み出されて、
各トラックに対応するバッファBiへ読み出された楽音
制御データが格納される。この時点では、楽音制御デー
タの種類に係わらず、直ちには出力しないデータを格納
するバッファBiへ格納する。Next, the details of the panel switch processing in step S3 will be described with reference to FIG. In step S11, it is determined whether or not a start / stop switch (not shown) on the panel switch 10 is turned on, and if it is turned on, the processing from step S12 is executed. Then, the process of other switches is executed. In step S12, the run flag R
It is determined whether or not UN is 1, and if it is 0, an automatic performance (auto bass chord performance) is started to start step S13.
From step S21 to step S21, if 1, the automatic performance being executed is stopped. Therefore, the process proceeds to step S22, the run flag RUN is cleared, and the process proceeds to step S23 where all MIDI channels to which the automatic performance data of the tone generator circuit is assigned. Outputs all note-off data to mute all tones that are sounding. When the start / stop switch is operated for the first time, it is an operation for starting the automatic performance, so the determination in step S12 is NO. Then, in step S13, the counter i is set to 1. This counter i indicates each track number from 1 to 16. Then, the process proceeds to step S14, and the head data of track i is read. Since the value of the counter i is 1 at the beginning, the data of the track 1 is read. As described above, various musical tone control data are stored at the beginning of each track, and one of the musical tone control data is read in the process of step S14. Then step S
15, the read tone control data is stored in the buffer Bi.
Write to Although the buffer Bi will be described in detail later, it is a buffer for storing musical tone control data that does not require real-time processing. Next in step S16
In step S17, it is determined whether the data is timing data or not. As a result, if NO is determined, the step S is performed again.
Returning to 15, the above processing is repeated. In this way, a plurality of tone control data stored at the beginning of each track are sequentially read and stored in the buffer Bi. When all the tone control data have been read, the timing data is stored next, so the determination in step S17 is YES, and the process proceeds to step S18 to read the read timing data into the time register T.
Store in IMEi. Then, the process proceeds to step S19, and it is determined whether or not the value of the counter i is 16. If it is not 16, the process proceeds to step S20 to increment the value of the counter i, and the processes of step S14 and thereafter are executed again. When the process proceeds to step S14 for the second time, the value of the counter i is incremented to 2 in step S20, and therefore the track 2 is used in the processes after step S14.
Data will be read. When these processes are repeated until the value of the counter i reaches 16, that is, until the reading of all the tracks from the track 1 to the track 16 is completed, NO is determined in the step S19, the process proceeds to the step S21, and the run flag RUN is set to 1. After setting, the process proceeds to the other switch process in step S24. When the process of step S24 ends, the process returns to the original main routine. In this way, when the start / stop switch is instructed to start the automatic performance, the tone control data stored at the beginning of each track is read out,
The tone control data read out is stored in the buffer Bi corresponding to each track. At this point, regardless of the type of tone control data, the data that is not output immediately is stored in the buffer Bi.
【0013】次に、図4を参照して、タイマ5から割り
込み信号が発生する毎に実行されるタイマ割り込み処理
を説明する。ステップS6においては、メインルーチン
において自動演奏処理を実行すべきタイミングになった
ことを示す処理フラグを1にセットしてリターンする。
メインルーチンではステップS2からステップS5の処
理が高速で繰り返し実行されており、自動演奏の処理は
そのうちの数回に1回のみ実行すればよく、その1回の
タイミングを指示するのがこの処理フラグである。タイ
マ割り込みの周期は設定されたテンポに応じて変化する
ので、自動演奏処理の実行頻度もテンポに応じて変化す
るようになる。Next, with reference to FIG. 4, a timer interrupt process executed every time an interrupt signal is generated from the timer 5 will be described. In step S6, the process flag indicating that it is time to execute the automatic performance process in the main routine is set to 1, and the process returns.
In the main routine, the processes of steps S2 to S5 are repeatedly executed at high speed, and the automatic performance process only needs to be executed once in several times, and it is this process flag that indicates the timing of that one time. Is. Since the cycle of the timer interrupt changes according to the set tempo, the execution frequency of the automatic performance process also changes according to the tempo.
【0014】次に図6と図7を用いて、ステップS4の
自動演奏処理の詳細を説明する。まずステップS31に
おいて処理フラグが1であるか否かが判断され、1であ
れば自動演奏処理を実行すべき時であるので、ステップ
S32以降の処理へ進む。処理フラグが0であれば、自
動演奏処理を実行すべきときではないため、そのままメ
インルーチンへ戻る。ステップS32では、カウンタi
の値を1にセットし、ステップS33へ進む。ステップ
S33ではタイムレジスタTIMEiの値が0であるか
否かを判断し、0でなければステップS34へ進んでタ
イムレジスタTIMEiの値をデクリメントする。一方
ステップS33でタイムレジスタTIMEiの値が0で
あると判断されたときは、タイミングデータが示す時間
が経過し、イベントデータを読み出すタイミングに達し
たことになり、ステップS37へ進んでトラックiのデ
ータを読み出す。そしてステップS38において、読み
出したデータがグループAに属するイベントか、グルー
プBに属するイベントかを判断する。グループAとはイ
ベントデータが読み出されたら直ちに音源回路へ出力し
なければならないものであり、グループBとは次のキー
オンデータが読み出されるまで出力しなくてもよいもの
である。例を挙げるとグループAに属するイベントとし
ては、ノートオン、ノートオフ、ピッチベンド、ボリュ
ーム、エクスプレッション、アフタタッチ、モジュレー
ション等であり、グループBに属するイベントとして
は、プログラムチェンジ、パンポット、リバーブデプス
等である。グループAのイベントはステップS39にお
いてバッファAiへ格納され、グループBのイベントは
ステップS40においてバッファBiへ格納される。そ
して、バッファAiのデータはこの後のステップS47
で必ず音源回路8へ出力される。バッファBiのデータ
は、バッファAi中にノートオンデータが存在するとき
のみ、ステップS46において音源回路8へ出力され、
それ以外の時は出力されない。Next, the details of the automatic performance process in step S4 will be described with reference to FIGS. 6 and 7. First, in step S31, it is determined whether or not the processing flag is 1, and if it is 1, it is time to execute the automatic performance processing, so the processing proceeds to step S32 and subsequent steps. If the processing flag is 0, it is not time to execute the automatic performance processing, and therefore the process directly returns to the main routine. In step S32, the counter i
Is set to 1, and the process proceeds to step S33. In step S33, it is determined whether or not the value of the time register TIMEi is 0. If it is not 0, the process proceeds to step S34 to decrement the value of the time register TIMEi. On the other hand, when it is determined in step S33 that the value of the time register TIMEi is 0, it means that the time indicated by the timing data has passed and the timing for reading the event data has been reached. Read out. Then, in step S38, it is determined whether the read data is an event belonging to group A or an event belonging to group B. The group A is one that must be output to the tone generator circuit immediately after the event data is read, and the group B is one that does not need to be output until the next key-on data is read. Examples of events that belong to group A are note-on, note-off, pitch bend, volume, expression, aftertouch, modulation, etc., and events that belong to group B include program change, pan pot, reverb depth, etc. is there. The events of group A are stored in the buffer Ai in step S39, and the events of group B are stored in the buffer Bi in step S40. Then, the data in the buffer Ai is stored in the subsequent step S47.
Is always output to the sound source circuit 8. The data in the buffer Bi is output to the tone generator circuit 8 in step S46 only when note-on data exists in the buffer Ai.
It is not output at other times.
【0015】ステップS39、S40の処理の後、ステ
ップS41へ進み、トラックiの次のデータを読み出
す。ステップS42では読み出したデータがタイミング
データか否かを判断し、タイミングデータであればステ
ップS43へ進んでタイミングデータをタイムレジスタ
TIMEiへ格納してステップS35へ進む。タイミン
グデータでなければ、再びステップS38へ進み、上記
の処理を繰り返す。そしてこれらの処理の後、ステップ
S35へ進んでカウンタiの値が16であるか否かを判
断し、16でなければステップS36でカウンタiをイ
ンクリメントして再びステップS33へ進み、次のトラ
ックのデータの読み出しが行われる。このようにして、
各トラックの自動演奏データの読み出し処理が実行され
る。ステップS35においてカウンタiの値が16であ
ると判断されたときは、ステップS44へ進む。なお、
上記説明では省いたが、上記ステップ37の処理におい
てエンドデータが読み出された時はトラックの先頭へ再
び戻り、読み出しを繰り返すようにする。このとき、ト
ラックの先頭には複数の楽音制御データが記憶されてい
るのでこのデータが読み出されるが、読み出されたデー
タと現在設定されている状態が同一である場合は、ステ
ップS39、或いはステップS40においてイベントは
書き込まない。なぜなら、同じ状態ならば新たに楽音制
御イベントデータを音源回路8へ出力してもなんら変化
がなく、ただ処理時間が無駄になるだけだからである。After the processing of steps S39 and S40, the process proceeds to step S41 to read the next data of track i. In step S42, it is determined whether or not the read data is timing data. If it is timing data, the process proceeds to step S43, the timing data is stored in the time register TIMEi, and the process proceeds to step S35. If it is not timing data, the process proceeds to step S38 again to repeat the above process. After these processes, the process proceeds to step S35 to determine whether or not the value of the counter i is 16, and if it is not 16, the counter i is incremented at step S36 and the process proceeds to step S33 again to move to the next track. Data is read. In this way
The reading process of the automatic performance data of each track is executed. When it is determined in step S35 that the value of the counter i is 16, the process proceeds to step S44. In addition,
Although omitted in the above description, when the end data is read in the process of step 37, the process returns to the beginning of the track again and the reading is repeated. At this time, since a plurality of musical sound control data are stored at the head of the track, this data is read, but if the read data and the currently set state are the same, step S39 or step No event is written in S40. This is because in the same state, even if new musical tone control event data is output to the tone generator circuit 8, there is no change and the processing time is wasted.
【0016】このように1から16の各トラックのデー
タが読みだされ、バッファA、或いはBに格納された
ら、これら格納されたデータを音源回路8へ出力する処
理を実行する。ステップS44ではカウンタiを再び1
にセットし、ステップS45へ進んでバッファAi中に
ノートオンイベントが存在するか否かを判断する。ノー
トオンイベントが存在する場合はステップS46へ進ん
でバッファBiに格納されている全データを音源回路8
の、トラックiに対応しているMIDIチャンネルへ出
力する。この処理の後、或いはステップS45において
NOと判断した場合はステップS47でバッファAiに
格納されている全データを音源回路8の、トラックiに
対応しているMIDIチャンネルへ出力する。このと
き、ノートオン、ノートオフイベントデータはその時指
定されている和音に応じて音高変換されて音源回路8へ
出力される。このようにして、グループAのイベントは
読み出されたら直ちに音源回路8へ出力され、グループ
Bのイベントは次のノートオンイベントがあるまで出力
されないようになる。続いてステップS48へ進んでカ
ウンタiの値が16か否か判断し、16でなければステ
ップS49でカウンタiの値をインクリメントして再び
ステップS45へ進む。このようにして、トラック1か
らトラック16までのイベントデータを音源回路8へ出
力する。一方、カウンタiの値が16であれば、ステッ
プS50へ進み、処理フラグをリセットしてメインルー
チンへ戻る。As described above, when the data of each track 1 to 16 is read out and stored in the buffer A or B, a process of outputting the stored data to the tone generator circuit 8 is executed. In step S44, the counter i is set to 1 again.
, And proceeds to step S45 to determine whether or not there is a note-on event in the buffer Ai. If there is a note-on event, the process proceeds to step S46, and all the data stored in the buffer Bi is generated by the tone generator circuit 8
, To the MIDI channel corresponding to track i. After this process, or if NO is determined in step S45, all the data stored in the buffer Ai is output to the MIDI channel of the tone generator circuit 8 corresponding to the track i in step S47. At this time, the note-on and note-off event data is pitch-converted according to the chord specified at that time and output to the tone generator circuit 8. In this way, the event of group A is output to the tone generator circuit 8 immediately after being read, and the event of group B is not output until the next note-on event. Then, the process proceeds to step S48, and it is determined whether or not the value of the counter i is 16, and if it is not 16, the value of the counter i is incremented at step S49 and the process proceeds to step S45 again. In this way, the event data of tracks 1 to 16 is output to the tone generator circuit 8. On the other hand, if the value of the counter i is 16, the process proceeds to step S50, the processing flag is reset, and the process returns to the main routine.
【0017】なお、実施例においてはグループBのイベ
ントは次のノートオンの発生タイミングで全て音源回路
8へ出力するようにしているが、タイミングデータの有
無を判断しそれがなかった場合に、そのときの処理量が
所定値を越えているかを判断し、越えていればこのタイ
ミングでグループBのイベントを音源回路8へ出力しな
いままグループAのイベントを音源回路8へ出力するよ
うにし、越えてなければ次のノートオンイベントを待た
ずに、所定量のグループBのイベントを音源回路8へ出
力するようにしてもよい。そして、次のノートオンイベ
ントが発生したときにまだ出力されていないグループB
のイベントがあるかを判断し、ある場合にはその時点で
まとめて出力するようにすればよい。また、自動演奏デ
ータ中に含まれるデータの種類は、実施例のものに限定
されない。また、自動演奏データのフォーマットも、ど
のようなものであってもよい。実施例では1つの電子楽
器内で自動演奏データを読み出し、音源回路へ出力する
例を示したが、外部音源装置へ読み出したデータをMI
DIデータとして出力するようなものであってもよい。
実施例においては自動演奏データは予めROMに記憶さ
れたオートベースコード演奏データであったが、オート
ベースコード演奏に限らず、ユーザが任意に作成した自
動演奏データであってもよい。In the embodiment, all the events of group B are output to the tone generator circuit 8 at the next note-on occurrence timing. It is determined whether or not the processing amount at this time exceeds a predetermined value, and if it exceeds, the event of group B is output to the tone generator circuit 8 without outputting the event of group B to the tone generator circuit 8 at this timing. If not, the predetermined amount of events of group B may be output to the sound source circuit 8 without waiting for the next note-on event. And the group B that has not been output yet when the next note-on event occurs
It is possible to judge whether there is an event of, and if there is, to collectively output at that time. Further, the type of data included in the automatic performance data is not limited to that of the embodiment. Also, the format of the automatic performance data may be any format. In the embodiment, the example in which the automatic performance data is read out in one electronic musical instrument and output to the tone generator circuit is shown. However, the data read out to the external tone generator is MI.
It may be output as DI data.
In the embodiment, the automatic performance data is the automatic bass chord performance data stored in the ROM in advance. However, the automatic performance data is not limited to the automatic bass chord performance and may be any automatic performance data created by the user.
【0018】[0018]
【発明の効果】以上説明したように、本発明において
は、ノートオンデータを含む第1の種類の自動演奏デー
タと、第2の種類の自動演奏データを時間経過にしたが
って記憶した記憶手段と、前記第1及び第2の種類の自
動演奏データを時間経過にしたがって順次読み出す読み
出し手段と、前記読み出した第1の種類の自動演奏デー
タを直ちに音源へ出力する第1の出力手段と、前記読み
出した第2の種類の自動演奏データを、このデータが読
み出されてから、第1の出力手段によって次のノートオ
ンデータが出力されるまでの間に音源へ出力する第2の
出力手段とを備えたので、多量のデータが同時に発生す
る時でも処理が分散され、遅れを防止することができ
る。As described above, in the present invention, the storage means for storing the first type of automatic performance data including the note-on data and the second type of automatic performance data over time. Read-out means for sequentially reading the first and second types of automatic performance data over time, first output means for immediately outputting the read-out first type of automatic performance data to the sound source, and the read-out means. Second output means for outputting the second type of automatic performance data to the sound source between the time when this data is read and the time when the next note-on data is output by the first output means. Therefore, even when a large amount of data is generated at the same time, the processing is dispersed and the delay can be prevented.
【図1】 本発明の実施例におけるハード構成のブロッ
ク図である。FIG. 1 is a block diagram of a hardware configuration according to an embodiment of the present invention.
【図2】 本発明の実施例における自動演奏データの記
憶フォーマットである。FIG. 2 is a storage format of automatic performance data in the embodiment of the present invention.
【図3】 本発明の実施例におけるメインルーチンのフ
ローチャートである。FIG. 3 is a flowchart of a main routine in the embodiment of the present invention.
【図4】 本発明の実施例におけるタイマ割り込み処理
のフローチャートである。FIG. 4 is a flowchart of timer interrupt processing in the embodiment of the present invention.
【図5】 本発明の実施例におけるパネルスイッチ処理
のフローチャートである。FIG. 5 is a flowchart of panel switch processing according to the embodiment of the present invention.
【図6】 本発明の実施例における自動演奏処理のフロ
ーチャートである。FIG. 6 is a flowchart of an automatic performance process according to the embodiment of the present invention.
【図7】 本発明の実施例における自動演奏処理のフロ
ーチャートである。FIG. 7 is a flowchart of an automatic performance process in the embodiment of the present invention.
1…CPU、2…ROM、4…RAM、5…タイマ、8
…音源回路、10…パネルスイッチ1 ... CPU, 2 ... ROM, 4 ... RAM, 5 ... Timer, 8
… Sound source circuit, 10… Panel switch
Claims (1)
演奏データと、第2の種類の自動演奏データを時間経過
にしたがって記憶した記憶手段と、 前記第1及び第2の種類の自動演奏データを時間経過に
したがって順次読み出す読み出し手段と、 前記読み出した第1の種類の自動演奏データを直ちに音
源へ出力する第1の出力手段と、 前記読み出した第2の種類の自動演奏データを、このデ
ータが読み出されてから、第1の出力手段によって次の
ノートオンデータが出力されるまでの間に音源へ出力す
る第2の出力手段と、を備えたことを特徴とする自動演
奏装置。1. A storage means for storing first-type automatic performance data including note-on data and second-type automatic performance data over time, and the first and second types of automatic performance. The reading means for sequentially reading data according to the passage of time, the first outputting means for immediately outputting the read first type automatic performance data to the sound source, and the read second type automatic performance data An automatic performance device comprising: a second output means for outputting the data to the sound source between the time when the data is read and the time when the next note-on data is output by the first output means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5194238A JP2713107B2 (en) | 1993-07-09 | 1993-07-09 | Automatic performance device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5194238A JP2713107B2 (en) | 1993-07-09 | 1993-07-09 | Automatic performance device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0749684A true JPH0749684A (en) | 1995-02-21 |
JP2713107B2 JP2713107B2 (en) | 1998-02-16 |
Family
ID=16321282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5194238A Expired - Lifetime JP2713107B2 (en) | 1993-07-09 | 1993-07-09 | Automatic performance device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2713107B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100392621B1 (en) * | 1995-07-05 | 2003-10-23 | 야마하 가부시키가이샤 | Method and apparatus for generating a tone waveform |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01179086A (en) * | 1988-01-06 | 1989-07-17 | Yamaha Corp | Automatic playing device |
-
1993
- 1993-07-09 JP JP5194238A patent/JP2713107B2/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01179086A (en) * | 1988-01-06 | 1989-07-17 | Yamaha Corp | Automatic playing device |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100392621B1 (en) * | 1995-07-05 | 2003-10-23 | 야마하 가부시키가이샤 | Method and apparatus for generating a tone waveform |
Also Published As
Publication number | Publication date |
---|---|
JP2713107B2 (en) | 1998-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2896716B2 (en) | Automatic performance device | |
US7420113B2 (en) | Rendition style determination apparatus and method | |
US5902948A (en) | Performance instructing apparatus | |
US6177624B1 (en) | Arrangement apparatus by modification of music data | |
JPH05173568A (en) | Electronic musical instrument | |
JPH04234090A (en) | Electronic musical instrument | |
US5502275A (en) | Automatic accompaniment apparatus implementing smooth transition to fill-in performance | |
US6066793A (en) | Device and method for executing control to shift tone-generation start timing at predetermined beat | |
US7271330B2 (en) | Rendition style determination apparatus and computer program therefor | |
JP2631722B2 (en) | Automatic performance device | |
US5898120A (en) | Auto-play apparatus for arpeggio tones | |
JP2713107B2 (en) | Automatic performance device | |
US5300728A (en) | Method and apparatus for adjusting the tempo of auto-accompaniment tones at the end/beginning of a bar for an electronic musical instrument | |
JP2625800B2 (en) | Automatic performance device | |
JP3609045B2 (en) | Automatic performance device | |
JP3210582B2 (en) | Automatic performance device and electronic musical instrument equipped with the automatic performance device | |
JP2570562B2 (en) | Automatic performance device and automatic accompaniment device | |
JP4214845B2 (en) | Automatic arpeggio device and computer program applied to the device | |
JP2611694B2 (en) | Automatic performance device | |
JPH0618397Y2 (en) | Delay vibrato effect applying device | |
JP3407563B2 (en) | Automatic performance device and automatic performance method | |
JP3178176B2 (en) | Automatic accompaniment device | |
JP2768348B2 (en) | Automatic performance device | |
JP2551197B2 (en) | Automatic playing device | |
JP2962077B2 (en) | Electronic musical instrument |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071031 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081031 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091031 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101031 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101031 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111031 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111031 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121031 Year of fee payment: 15 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121031 Year of fee payment: 15 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131031 Year of fee payment: 16 |
|
EXPY | Cancellation because of completion of term |