JP2009115987A - Performance practice support device and performance practice support processing program - Google Patents

Performance practice support device and performance practice support processing program Download PDF

Info

Publication number
JP2009115987A
JP2009115987A JP2007288019A JP2007288019A JP2009115987A JP 2009115987 A JP2009115987 A JP 2009115987A JP 2007288019 A JP2007288019 A JP 2007288019A JP 2007288019 A JP2007288019 A JP 2007288019A JP 2009115987 A JP2009115987 A JP 2009115987A
Authority
JP
Japan
Prior art keywords
data
note data
sounding
pitch
note
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
Application number
JP2007288019A
Other languages
Japanese (ja)
Other versions
JP5145875B2 (en
Inventor
Junichiro Soejima
淳一郎 副島
Takako Ito
貴子 伊藤
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 JP2007288019A priority Critical patent/JP5145875B2/en
Publication of JP2009115987A publication Critical patent/JP2009115987A/en
Application granted granted Critical
Publication of JP5145875B2 publication Critical patent/JP5145875B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Auxiliary Devices For Music (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To support key press timing and key position recognition, according to progress in practice of a player. <P>SOLUTION: In a reproduction processing section 36, a note data which reaches sounding start time is found, and information for indicating a note data, and a data under sounding including a sounding flag for indicating sound hold are stored in a data buffer under sounding. In a performance action error determination section 34, the data buffer under sounding is searched based on key pressing information, and the data under sounding in which the sounding flag is in sound hold, and in which sounding start time of the corresponding note data is within a predetermined allowable period from key pressing time, is found, and sounding of the corresponding note data is instructed to a musical sound generating circuit 28. Moreover, the note data buffer is searched, and sounding of the note data in which the sounding start time is after the key pressing time, and within the predetermined allowable period from the key pressing time, is instructed to the musical sound generating circuit 28. When difference between a pitch indicated in key pressing information and a pitch of the note data is within a predetermined range, musical sound of the note data is generated. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、鍵盤楽器の演奏の練習を支援する装置および練習を支援するプログラムに関する。   The present invention relates to a device that supports practice of playing a keyboard instrument and a program that supports practice.

従来、演奏者の演奏レベルの向上を目的として、次に操作すべき鍵盤をLED光などにより示すような機能(ナビゲート機能)がよく知られている。この技術を利用することで、演奏者は、楽器を独習することができる。   Conventionally, for the purpose of improving the performance level of a performer, a function (navigation function) that indicates a keyboard to be operated next by LED light or the like is well known. By using this technique, the performer can learn the instrument independently.

たとえば、特許文献1には、発音開始タイミングに対する押鍵タイミングの教習を、曲データの編集を行うことなく容易に実現する演奏教習装置が開示されている。この演奏教習装置においては、音高データ、発音開始タイミングを示す時間データ、発音の強弱又は消音を示すベロシティデータからなるイベントデータを読み出し、発音のイベントデータの発音開始タイミングを経過した後もその鍵が操作されない場合には、発音のイベントデータを変更した消音のイベントデータを生成し、発音のイベントデータ及び変更した消音のイベントデータに応じて、点灯信号及び消灯信号を生成して、押鍵すべき鍵内のLEDに交互に送出して点滅させる。
特開2000−267662号公報
For example, Patent Literature 1 discloses a performance learning device that easily realizes key press timing learning with respect to a sound generation start timing without editing music data. In this performance learning apparatus, event data consisting of pitch data, time data indicating the start timing of sound generation, velocity data indicating the intensity of sound generation or muting is read, and the key is kept after the sound generation start timing of the sound event data has passed. If no operation is performed, a mute event data in which the sound event data is changed is generated, and a turn-on signal and a turn-off signal are generated in accordance with the sound event data and the changed mute event data. The LED in the power key is alternately sent and blinked.
Japanese Patent Laid-Open No. 2000-267661

たとえば、演奏教習装置においては、複数の教習段階を設けるのが望ましい。たとえば、押鍵するタイミングを知るために、LEDが点灯するタイミングから所定の範囲内に何れかの鍵が押鍵されると、処理対象が次のイベントデータとなり、楽曲が進行するような段階、正しい鍵を知るために、LEDが点灯した鍵盤が押鍵されると、処理対象が次のイベントデータとなり、楽曲が進行するような段階、並びに、LEDが点灯するタイミングから所定範囲内に正しい鍵(LEDが点灯した鍵)が押鍵されると、処理対象が次のイベントデータとなり、楽曲が進行するような段階を考えることができる。   For example, in a performance learning apparatus, it is desirable to provide a plurality of learning stages. For example, in order to know when to press the key, when any key is pressed within a predetermined range from the timing when the LED is lit, the processing object becomes the next event data and the music progresses. In order to know the correct key, when the keyboard with the LED lit is pressed, the processing object becomes the next event data, the stage where the music progresses, and the correct key within the predetermined range from the timing when the LED illuminates. When (key whose LED is lit) is pressed, the process target becomes the next event data, and a stage where the music progresses can be considered.

しかしながら、押鍵すべき鍵の移動が著しく大きい楽曲や、短時間で多数の移動が生じるような楽曲においては、正しい押鍵タイミング、および、正しい鍵位置を同時に認識することが難しい。したがって、上記各段階を効果的に結びつけるような中間的な段階を設けることが望ましい。   However, it is difficult to recognize the correct key pressing timing and the correct key position at the same time for music with a remarkably large movement of the key to be pressed or music with many movements in a short time. Therefore, it is desirable to provide an intermediate stage that effectively links the above stages.

本発明は、演奏者の練習の進度にしたがって適切に押鍵タイミングおよび鍵位置を認識することを支援する演奏練習支援装置および演奏練習支援処理のプログラムを提供することを目的とする。   An object of the present invention is to provide a performance practice support apparatus and a performance practice support processing program that assist in appropriately recognizing a key pressing timing and a key position according to a player's practice progress.

本発明の目的は、夫々発音開始タイミング、発音すべき楽音の長さを示す発音時間、音高、および、発音すべき楽音の大きさを示すベロシティを含む複数の音符データを格納する音符データバッファと、
発音中データバッファと、
発音開始タイミングが到来した音符データを前記音符データバッファ内から検索し、当該検索された音符データを特定する発音中データを前記発音中データバッファに格納する格納手段と、
演奏操作に基づくタイミングで入力される音高情報を順次受け入れる入力手段と、
前記発音中データバッファに格納された発音中データの中から、発音が行われていないことを示す発音保留フラグを有し、かつ当該発音中データにより特定される音符データの発音開始タイミングと前記入力手段による音高情報の入力タイミングとの差が所定時間内の発音中データを検索する第1の検索手段と、
この第1の検索手段により検索された発音中データにより特定される音符データの音高と前記音高情報の音高との差が所定範囲内であるか否か判定する第1の判定手段と、
この第1の判定手段により所定範囲内と判定された音符データの音高に基づいた楽音の発音を接続された音源に指示するとともに、当該音符データに対応する発音中データに含まれる発音保留フラグを消去する第1の発音指示手段と、
前記音符データバッファに格納された音符データの中から、発音開始タイミングが前記音高情報の入力タイミングより後でかつ両タイミングの差が所定時間内の音符データを検索する第2の検索手段と、
この第2の検索手段により検索された音符データの音高と前記音高情報の音高との差が所定範囲内であるか否か判定する第2の判定手段と、
この第2の判定手段により所定範囲内と判定された音符データの音高に基づいた楽音の発音を接続された音源に指示する第2の発音指示手段と、
を有し、
前記第1の判定手段および第2の判定手段は、前記発音開始タイミングと、前記押鍵タイミングとの差の絶対値、および、前記発音時間に基づいて、前記差の絶対値が大きくなるのに伴って、前記音源にて発音すべき楽音のベロシティを小さくすることを特徴とする演奏練習支援装置により達成される。
SUMMARY OF THE INVENTION An object of the present invention is to provide a note data buffer for storing a plurality of note data each including a start timing, a pronunciation time indicating the length of a musical tone to be generated, a pitch, and a velocity indicating the magnitude of the musical tone to be generated When,
The data buffer during pronunciation,
Storage means for searching for note data at which the sounding start timing has arrived from the note data buffer, and storing sounding data for specifying the searched note data in the sounding data buffer;
Input means for sequentially receiving pitch information input at a timing based on performance operation;
The sound generation start timing and the input of the note data specified by the sounding data having a sounding pending flag indicating that sounding is not performed from the sounding data stored in the sounding data buffer First search means for searching for sounding data whose difference from the input timing of pitch information by the means is within a predetermined time;
First determination means for determining whether or not the difference between the pitch of the note data specified by the on-phonetic data searched by the first search means and the pitch of the pitch information is within a predetermined range; ,
The first determination means instructs the connected sound source to generate a musical tone based on the pitch of the note data determined to be within the predetermined range, and also generates a pronunciation on hold flag included in the on-pronunciation data corresponding to the note data. First pronunciation instruction means for erasing
Second search means for searching note data stored in the note data buffer for note data whose sounding start timing is later than the input timing of the pitch information and whose timing difference is within a predetermined time;
Second determination means for determining whether or not a difference between a pitch of the note data searched by the second search means and a pitch of the pitch information is within a predetermined range;
Second sound generation instruction means for instructing a connected sound source to generate a musical sound based on the pitch of the note data determined by the second determination means as being within a predetermined range;
Have
The first determination means and the second determination means are configured to increase the absolute value of the difference based on the absolute value of the difference between the sound generation start timing and the key press timing and the sound generation time. Along with this, the performance practice support apparatus is characterized in that the velocity of the musical sound to be generated by the sound source is reduced.

好ましい実施態様においては、前記第1の判定手段および第2の判定手段は、前記発音時間に対する差の絶対値の比を算出し、前記比が小さくなるのに伴って、前記音源にて発音すべき楽音のベロシティを小さくする。   In a preferred embodiment, the first determination unit and the second determination unit calculate a ratio of the absolute value of the difference with respect to the sound generation time, and sound the sound source as the ratio decreases. Decrease the velocity of the musical sound.

より好ましい実施態様においては、前記入力手段は、押鍵された鍵に対応する音高情報を当該押鍵のタイミングに応じて出力する鍵盤が接続されるとともに、前記音符データはさらに、前記音高に対応する前記鍵盤上の鍵の位置を示す座標、および、押鍵すべき指を示す情報を含み、
前記音符データの前記鍵の座標および押鍵すべき指を示す情報に基づいて、当該押鍵すべき指で押鍵した場合に他の指の鍵盤上の位置を示す指座標情報を生成し、当該生成された指座標情報を前記音符データバッファに格納する支援情報生成手段をさらに備え、
前記第1及び第2の判定手段は、前記指座標情報を参照して、前記音高情報が示す音高に対応する鍵の座標が、特定の2つの指の座標の間に位置するときに前記所定範囲内であると判定する。
In a more preferred embodiment, the input means is connected to a keyboard that outputs pitch information corresponding to the depressed key in accordance with the timing of the depressed key, and the note data further includes the pitch. Including coordinates indicating the position of the key on the keyboard corresponding to, and information indicating the finger to be pressed,
Based on the coordinate of the key of the note data and information indicating the finger to be pressed, finger coordinate information indicating the position of the other finger on the keyboard is generated when the key to be pressed is pressed, Further comprising support information generating means for storing the generated finger coordinate information in the note data buffer;
The first and second determining means refer to the finger coordinate information, and when the coordinates of the key corresponding to the pitch indicated by the pitch information are located between the coordinates of two specific fingers. It determines with it being in the said predetermined range.

別の好ましい実施態様においては、前記支援情報生成手段が、前記鍵の座標および押鍵すべき指を示す情報に基づいて、隣接する指が、それぞれ、隣接する白鍵に位置するように、前記他の指の鍵盤上の位置を示す指座標情報を生成する。   In another preferred embodiment, the support information generating means is configured so that the adjacent fingers are respectively positioned in adjacent white keys based on the coordinates of the key and information indicating the finger to be pressed. Finger coordinate information indicating the positions of other fingers on the keyboard is generated.

さらに別の好ましい実施態様においては、前記支援情報生成手段は、前記音符データが和音構成音のひとつを示す場合、他の和音構成音を示す音符データの音高に対応する鍵の座標を指座標情報とする。   In still another preferred embodiment, when the note data indicates one of the chord constituent sounds, the support information generating means sets the coordinates of the key corresponding to the pitch of the note data indicating the other chord constituent sounds as finger coordinates. Information.

たとえば、前記特定の2つの指の座標は、親指の座標および小指の座標である。   For example, the coordinates of the specific two fingers are the coordinates of the thumb and the coordinates of the little finger.

また、本発明の目的は、コンピュータに、
夫々発音開始タイミング、音高を含む複数の音符データを格納する音符データバッファから、発音開始タイミングが到来した音符データを検索し、当該検索された音符データを特定する情報及び発音が行われていないことを示す発音保留フラグを含む発音中データを発音中データバッファに格納するステップと、
演奏操作に基づくタイミングで音高情報を順次受け入れるステップと、
前記発音中データバッファに格納された発音中データの中から、前記発音保留フラグを有し、かつ当該発音中データにより特定される音符データの発音開始タイミングと前記音高情報の入力タイミングとの差が所定時間内の発音中データを検索するステップと、
この検索された発音中データにより特定される音符データの音高と前記音高情報の音高との差が所定範囲内であるか否か判定する第1の判定ステップと、
所定範囲内と判定された音符データの音高に基づいた楽音の発音を接続された音源に指示するとともに、当該音符データに対応する発音中データに含まれる発音保留フラグを消去するステップと、
前記音符データバッファに格納された音符データの中から、発音開始タイミングが前記音高情報の入力タイミングより後でかつ両タイミングの差が所定時間内の音符データを検索するステップと、
この検索された音符データの音高と前記音高情報の音高との差が所定範囲内であるか否か判定する第2の判定ステップと、
所定範囲内と判定された音符データの音高に基づいた楽音の発音を前記音源に指示するステップと、
を実行させ、
前記第1の判定ステップおよび第2の判定ステップが、
前記発音開始タイミングと、前記押鍵タイミングとの差の絶対値、および、前記発音時間に基づいて、前記差の絶対値が大きくなるのに伴って、前記音源にて発音すべき楽音のベロシティを小さくするステップを含むことを特徴とする演奏練習支援処理のプログラムにより達成される。
In addition, the object of the present invention is to a computer,
Each note data buffer that stores a plurality of note data including the sounding start timing and the pitch is searched for the note data at which the sounding start timing has arrived, and the information for identifying the searched note data and the pronunciation are not performed. Storing sounding data including a sounding pending flag indicating that in the sounding data buffer;
Sequentially receiving pitch information at timings based on performance operations;
The difference between the sounding start timing of the note data having the sounding pending flag and specified by the sounding data and the input timing of the pitch information among the sounding data stored in the sounding data buffer Searching for sounding data within a predetermined time;
A first determination step of determining whether or not a difference between a pitch of the note data specified by the searched sounding data and a pitch of the pitch information is within a predetermined range;
Instructing the connected sound source to generate a musical tone based on the pitch of the note data determined to be within the predetermined range, and erasing the pronunciation on hold flag included in the on-pronunciation data corresponding to the note data;
A step of searching for note data stored in the note data buffer for note data whose pronunciation start timing is later than the input timing of the pitch information and whose difference between both timings is within a predetermined time; and
A second determination step of determining whether or not a difference between the pitch of the searched note data and the pitch information of the pitch information is within a predetermined range;
Instructing the sound source to generate a musical sound based on the pitch of the note data determined to be within the predetermined range;
And execute
The first determination step and the second determination step include:
Based on the absolute value of the difference between the sound generation start timing and the key press timing, and the sound generation time, the velocity of the musical sound to be generated by the sound source is increased as the absolute value of the difference increases. This is achieved by a performance practice support processing program characterized by including a step of reducing.

本発明によれば、演奏者の練習の進度にしたがって適切に押鍵タイミングおよび鍵位置を認識することを支援する演奏練習支援装置および演奏練習支援処理のプログラムを提供することが可能となる。   ADVANTAGE OF THE INVENTION According to this invention, it becomes possible to provide the performance practice support apparatus and the program of performance practice support processing which support recognizing a key press timing and a key position appropriately according to a player's practice progress.

以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本実施の形態にかかる演奏練習支援システムのハードウェア構成を示すブロックダイヤグラムである。図1に示すように、演奏練習支援システムのハードウェアは、CPU12、RAM14、ROM16、入力装置18、表示装置20、MIDIインタフェース(I/F)22、24、鍵盤26、楽音生成回路28およびサウンドシステム40を含む。   Embodiments of the present invention will be described below with reference to the accompanying drawings. FIG. 1 is a block diagram showing a hardware configuration of a performance practice support system according to the present embodiment. As shown in FIG. 1, the hardware of the performance practice support system includes a CPU 12, a RAM 14, a ROM 16, an input device 18, a display device 20, MIDI interfaces (I / F) 22, 24, a keyboard 26, a tone generation circuit 28, and a sound. A system 40 is included.

図1の例では、CPU12、RAM14、ROM16、入力装置18、表示装置20およびMIDI_I/F22は、通常のパーソナルコンピュータにより実現され得る。また、MIDI_I/F24、鍵盤26、楽音生成回路28およびサウンドシステム30は、通常の電子鍵盤楽器により実現され得る。したがって、本実施の形態では、パーソナルコンピュータと電子鍵盤楽器とをMIDIケーブルで接続することにより、演奏練習支援システムを構成することができる。   In the example of FIG. 1, the CPU 12, the RAM 14, the ROM 16, the input device 18, the display device 20, and the MIDI_I / F 22 can be realized by a normal personal computer. Further, the MIDI_I / F 24, the keyboard 26, the musical tone generation circuit 28, and the sound system 30 can be realized by a normal electronic keyboard instrument. Therefore, in this embodiment, a performance practice support system can be configured by connecting a personal computer and an electronic keyboard instrument with a MIDI cable.

CPU14は、演奏練習支援システムの制御、後述する音符データ等の読み出し、演奏支援情報の生成、MIDI_I/F22から出力すべきMIDIデータの生成などの処理を実行する。ROM16は、プログラムやプログラムの実行の際に使用される定数などを記憶する。RAM14は、プログラムの実行の過程で必要な変数、入力データ、出力データなどを一時的に記憶する。   The CPU 14 performs processing such as control of the performance practice support system, reading of note data, which will be described later, generation of performance support information, generation of MIDI data to be output from the MIDI_I / F 22, and the like. The ROM 16 stores a program and constants used when the program is executed. The RAM 14 temporarily stores variables, input data, output data, and the like necessary in the course of program execution.

入力装置18は、キーボードやマウスを含み、演奏者により入力装置18に入力された情報をCPU12に与える。表示装置12の画面上には、楽譜や鍵盤を描いた画像データが表示され得る。   The input device 18 includes a keyboard and a mouse, and gives information input to the input device 18 by the performer to the CPU 12. On the screen of the display device 12, image data depicting a musical score or a keyboard can be displayed.

楽音生成回路28は、いわゆる音源であり、CPU12からMIDI_I/F24を介して与えられたMIDIデータに基づいて、所定の音高でかつ所定の音量(ベロシティ)の楽音データを生成する。鍵盤26は、演奏者が押鍵した鍵の情報を押鍵情報として、また、離鍵した件の情報を離鍵情報として出力する。押鍵情報は、MIDI_I/F22、24を介して、CPU12に伝達される。   The tone generation circuit 28 is a so-called sound source, and generates tone data having a predetermined pitch and a predetermined volume (velocity) based on MIDI data given from the CPU 12 via the MIDI_I / F 24. The keyboard 26 outputs the information on the key pressed by the performer as key pressing information and the information on the key release as key releasing information. The key press information is transmitted to the CPU 12 via the MIDI_I / Fs 22 and 24.

サウンドシステム30は、増幅器、スピーカなどを含み、楽音生成回路28により生成された楽音データに基づく音響信号を出力する。   The sound system 30 includes an amplifier, a speaker, and the like, and outputs an acoustic signal based on the musical sound data generated by the musical sound generation circuit 28.

図2は、本実施の形態にかかる演奏練習支援システムの概要を示すブロックダイヤグラムである。図2に示すように、本実施の形態にかかる演奏練習支援システムにおいては、後述する発音中データや音符データのうち、演奏者が演奏すべきパートのデータ(演奏データ)が、演奏支援情報生成部32により取得される。演奏支援情報生成部32は、演奏データに基づいて、演奏者が押鍵すべき指を指定する運指情報、および、演奏者の指の位置を示す指座標情報を生成する(符号201参照)。   FIG. 2 is a block diagram showing an outline of the performance practice support system according to the present embodiment. As shown in FIG. 2, in the performance practice support system according to the present embodiment, out-of-sounding data and note data to be described later, part data (performance data) to be performed by the performer is generated as performance support information. Acquired by the unit 32. The performance support information generation unit 32 generates fingering information for designating a finger to be pressed by the performer and finger coordinate information indicating the position of the performer's finger based on the performance data (see reference numeral 201). .

また、鍵盤26からは、前述したように押鍵情報および離鍵情報(符号202参照)が与えられる。演奏動作正誤判定部34は、運指情報・指座標情報201と、押鍵情報・離鍵情報202に基づいて、演奏の正誤を判定する。また、楽曲データのうち伴奏パートのデータ(伴奏データ)は、再生処理部36により取得される。演奏の正誤の情報とは、押鍵すべきタイミングで、押鍵すべき鍵が押鍵されたか否かを示す情報、ずれが生じている場合には、タイミングのずれの程度および音高のずれの程度を示す情報などを含む。   Further, from the keyboard 26, key pressing information and key releasing information (see reference numeral 202) are given as described above. The performance movement correct / incorrect determination unit 34 determines correct / incorrect performance based on the fingering information / finger coordinate information 201 and the key pressing information / key release information 202. In addition, accompaniment part data (accompaniment data) of the music data is acquired by the reproduction processing unit 36. Correct performance information is information indicating whether or not the key to be pressed has been pressed at the timing at which the key should be pressed. If there is a shift, the degree of timing shift and pitch shift Including information indicating the degree of.

再生処理部36は、演奏の正誤情報にしたがって、演奏パートのデータのうち所定の条件を満たすデータに対応する楽音を再生し、或いは、タイミングのずれや音高のずれにしたがってベロシティを変化させた楽音を再生する。また、伴奏データについては、当該伴奏データに示される音高およびベロシティの楽音を再生する。   The reproduction processing unit 36 reproduces the musical sound corresponding to the data satisfying a predetermined condition among the performance part data according to the performance correctness information, or changes the velocity according to the timing deviation or the pitch deviation. Play music. As for accompaniment data, the pitch and velocity musical sounds indicated in the accompaniment data are reproduced.

図2に示す演奏支援情報生成部32および演奏動作正誤判定部34は、図1に示すCPU12により実現される。また、図2に示す再生処理部36は、図1に示すCPU12および楽音生成回路28により実現される。   The performance support information generating unit 32 and the performance operation correct / incorrect determination unit 34 shown in FIG. 2 are realized by the CPU 12 shown in FIG. Also, the reproduction processing unit 36 shown in FIG. 2 is realized by the CPU 12 and the tone generation circuit 28 shown in FIG.

概略的に、本実施の形態にかかる演奏練習支援システムにおいては、
第1の検索手段が、後述する発音中データバッファに格納された発音中データの中から、発音が行われていないことを示す発音保留フラグを有し、かつ当該発音中データにより特定される音符データの発音開始タイミングと、入力手段による音高情報の入力タイミングとの差が所定時間内の発音中データを検索し、
第1の判定手段が、第1の検索手段により検索された発音中データにより特定される音符データの音高と音高情報の音高との差が所定範囲内であるか否か判定し、
第1の発音指示手段が、第1の判定手段により所定範囲内と判定された音符データの音高に基づいた楽音の発音を接続された音源に指示するとともに、当該音符データに対応する発音中データに含まれる発音保留フラグを消去する。
In outline, in the performance practice support system according to the present embodiment,
The first search means has a pronunciation pending flag indicating that no sound is being generated from the sounding data stored in the sounding data buffer described later, and a note specified by the sounding data The difference between the sound generation start timing of data and the input timing of pitch information by the input means is searched for sounding data within a predetermined time,
The first determination means determines whether or not the difference between the pitch of the note data specified by the sounding data searched by the first search means and the pitch of the pitch information is within a predetermined range;
The first sound generation instruction means instructs the connected sound source to generate a musical sound based on the pitch of the note data determined by the first determination means to be within the predetermined range, and during sound generation corresponding to the note data. Deletes the pronunciation pending flag included in the data.

また、第2の検索手段が、音符データバッファに格納された音符データの中から、発音開始タイミングが音高情報の入力タイミングより後でかつ両タイミングの差が所定時間内の音符データを検索し、
第2の判定手段が、第2の検索手段により検索された音符データの音高と前記音高情報の音高との差が所定範囲内であるか否か判定し、
第2の発音指示手段が、第2の判定手段により所定範囲内と判定された音符データの音高に基づいた楽音の発音を接続された音源に指示する。
Further, the second search means searches the note data stored in the note data buffer for note data whose sounding start timing is after the pitch information input timing and whose timing difference is within a predetermined time. ,
A second determination unit that determines whether or not a difference between a pitch of the note data searched by the second search unit and a pitch of the pitch information is within a predetermined range;
The second sound generation instruction means instructs the connected sound source to generate a musical sound based on the pitch of the note data determined to be within the predetermined range by the second determination means.

上記第1の判定手段および第2の判定手段は、発音開始タイミングと、押鍵タイミングとの差の絶対値、および、発音時間に基づいて、差の絶対値が大きくなるのに伴って、音源にて発音すべき楽音のベロシティを小さくする。   The first determination unit and the second determination unit are configured to generate a sound source as the absolute value of the difference increases based on the absolute value of the difference between the sound generation start timing and the key press timing and the sound generation time. Decrease the velocity of the sound that should be pronounced at.

また、支援情報生成手段は、音符データの鍵の座標および押鍵すべき指を示す情報に基づいて、当該押鍵すべき指で押鍵した場合に他の指の鍵盤上の位置を示す指座標情報を生成し、当該生成された指座標情報を前記音符データバッファに格納する。   In addition, the support information generating means, based on the coordinate of the note data key and the information indicating the finger to be pressed, indicates the position of the other finger on the keyboard when the key to be pressed is pressed. Coordinate information is generated, and the generated finger coordinate information is stored in the note data buffer.

第1および第2の検索手段、第1および第2の発音指示手段は、図2の再生処理部36にほぼ相当する。第1および第2の判定手段は、図2の演奏動作性誤判定部34に相当する。また、支援情報生成手段は、図2の演奏支援情報生成部32に相当する。   The first and second search means and the first and second pronunciation instruction means substantially correspond to the reproduction processing unit 36 in FIG. The first and second determination means correspond to the performance operability error determination unit 34 of FIG. The support information generating means corresponds to the performance support information generating unit 32 in FIG.

図3(a)は、トラックごとの属性を示すトラックデータを説明する図である。図3(a)に示すように、トラックデータバッファ300には、トラックごとのデータ(トラックデータ)を含む。トラックデータのレコードは、項目としてトラックの種類を示すiPlayType、トラック先頭の音符データのポインタであるpFirstME、および、出力チャンネルを示すiChannelを有している。トラック種類iPlayTypeの値「0」はそのトラックが右手パートであることを示し、「1」は左手パートであることを示し、また、「2」は伴奏パートであることを示す。したがって、あるチャンネルについて、トラック種類iPlayTypeが「0」または「1」である場合、そのトラックの音符データは「演奏データ」を構成する。また、トラック種類iPlayTypeが「2」である場合には、そのトラックの音符データは「伴奏データ」を構成する。   FIG. 3A is a diagram for explaining track data indicating attributes for each track. As shown in FIG. 3A, the track data buffer 300 includes data for each track (track data). The track data record has, as items, iPlayType indicating the type of the track, pFirstME which is a pointer of the note data at the head of the track, and iChannel indicating the output channel. A value “0” of the track type iPlayType indicates that the track is a right-hand part, “1” indicates that it is a left-hand part, and “2” indicates that it is an accompaniment part. Therefore, for a certain channel, when the track type iPlayType is “0” or “1”, the note data of that track constitutes “performance data”. When the track type iPlayType is “2”, the note data of the track constitutes “accompaniment data”.

図4は、音符データの構成を示す図である。図4に示すように、音符データバッファ400には、ミディイベント(MidiEvent)ごとのデータ(音符データ)が含まれる。音符データのレコードは、発音開始時刻ITime、発音時間IGate、発音開始時刻(絶対時刻)ITmsec、音高(ピッチ)Pitch、ベロシティiVel、鍵盤の座標iPosX、再生時の状態iPlayStatus、割り振られた運指情報cfig、右手左手何れかのパート情報iHand、各指の横方向の座標sfigPosX[0]〜sfigPosX[4]、手の横方向の座標sHandPosX、和音構成音フラグcIsHarm、和音の先頭音(最下音)へのポインタpHTop、和音の終端音(最高音)へのポインタpHTail、次の音符データへのポインタprev、および、前の音符データへのポインタnextを有する。   FIG. 4 is a diagram showing the structure of the note data. As shown in FIG. 4, the note data buffer 400 includes data (note data) for each midi event (MidiEvent). The record of the note data includes the sounding start time ITime, the sounding time IGate, the sounding start time (absolute time) ITmsec, the pitch (pitch) Pitch, the velocity iVel, the keyboard coordinates iPosX, the playback state iPlayStatus, and the assigned fingering. Information cfig, part information iHand of either right hand or left hand, horizontal coordinates sfigPosX [0] to sfigPosX [4] of each finger, horizontal coordinates sHandPosX of the hand, chord component sound flag cIsHarm, first sound of the chord (bottom) A pointer pHTop to the sound), a pointer pHTail to the end tone (highest note) of the chord, a pointer prev to the next note data, and a pointer next to the previous note data.

発音開始時刻ITime、発音時間IGateは、システムのクロックにしたがった単位での時刻(システム時刻)、時間であり、その一方、発音開始時刻(絶対時刻)ITmsecはミリ秒を単位とする絶対時刻である。   The sound generation start time ITime and the sound generation time IGate are time (system time) and time in units according to the system clock, while the sound generation start time (absolute time) ITmsec is an absolute time in milliseconds. is there.

鍵盤座標iPosXは以下のような値となる。低音側の鍵から高音側の鍵に向けて、各白鍵には、0、2、4、6、というように増大する偶数が割り当てられる。その一方、黒鍵には、隣接する2つの白鍵の座標の値の中間の奇数が割り当てられる。   The keyboard coordinates iPosX have the following values. From the bass key to the treble key, each white key is assigned an even number that increases such as 0, 2, 4, 6, and so on. On the other hand, a black key is assigned an odd odd number between the coordinates of two adjacent white keys.

たとえば、C1を最低音とする鍵盤であれば、以下のような鍵盤座標となる。   For example, if the keyboard has C1 as the lowest note, the keyboard coordinates are as follows.

C1:0
C#1:1
D1:2
D#1:3
E1:4
F1:6
F#1:7
G1:8
G#1:9
A1:10
A#1:11
B1:12
C2:14

再生時の状態iPlayStatusは、「0」〜「3」の値をとり、それぞれ、以下のような意味を示す。「0」であれば消音状態であること、「1」であれば、ミディイベントが存在し、かつ、ノートオンが実行されていること、「2」であれば、ミディイベントが存在しているが、ノートオンがまだ実行されていないこと、「3」であれば、ノートオンのみが実行されていること、を示す。
C1: 0
C # 1: 1
D1: 2
D # 1: 3
E1: 4
F1: 6
F # 1: 7
G1: 8
G # 1: 9
A1: 10
A # 1: 11
B1: 12
C2: 14
:
The state iPlayStatus at the time of reproduction takes values from “0” to “3”, and has the following meanings. If it is “0”, the sound is muted, if it is “1”, there is a midi event and note-on is being executed, and if it is “2”, there is a midi event. Indicates that note-on has not been executed yet, and “3” indicates that only note-on has been executed.

ここに、ミディイベントが存在することは、発音開始時刻に到達していることを意味する。その一方、ノートオンが実行されていることは、演奏者によりそのミディイベントに対応する押鍵がされていることを意味する。   Here, the presence of a midi event means that the pronunciation start time has been reached. On the other hand, the fact that note-on is being executed means that the player has pressed the key corresponding to the midi event.

運指情報cfigは、このレコードに対応する鍵を押鍵すべき指を示す。また、パート情報iHandは、右手の指で押鍵すべきか、或いは、左手の指で押鍵すべきかを示す。横方向の座標sfigPosX[0]〜sfigPosX[4]は、このレコードに対応する押鍵をする際に、それぞれの指(0:親指〜4:小指)がどの位置(座標)にいるかを示す。   The fingering information cfig indicates the finger to press the key corresponding to this record. The part information iHand indicates whether to press the key with the finger of the right hand or to press the key with the finger of the left hand. The horizontal coordinates sfigPosX [0] to sfigPosX [4] indicate the positions (coordinates) of the respective fingers (0: thumb to 4: little finger) when pressing the key corresponding to this record.

手の横方向の座標sHandPosXは、手の位置を示す。   The horizontal coordinate sHandPosX of the hand indicates the position of the hand.

なお、ここにいう座標とは、上述した鍵盤座標に相当する。つまり、iHandが左手を示し、かつ、sfigPosX[4]=14であれば、左手の小指が鍵C2に位置すべきことを示す。   The coordinates here correspond to the keyboard coordinates described above. That is, if iHand indicates the left hand and sfigPosX [4] = 14, it indicates that the little finger of the left hand should be positioned at the key C2.

和音構成音フラグclsHarmは、当該レコードで特定される音符が和音構成音かを示す。clsHarmが「0」であることは、その音符が、和音構成音ではないことを示す。その一方、clsHarmが「1」であることは、その音符が和音構成音であることを意味する。   The chord constituent sound flag clsHarm indicates whether the note specified in the record is a chord constituent sound. When clsHarm is “0”, it indicates that the note is not a chord constituent sound. On the other hand, clsHarm being “1” means that the note is a chord constituent sound.

なお、図4において、符号401および402で示す一群のデータ項目が演奏支援情報を構成する。   In FIG. 4, a group of data items denoted by reference numerals 401 and 402 constitute performance support information.

図3(b)および図3(c)は、本実施の形態にかかる再生制御データを示す図である。再生制御データは、再生処理時の制御のためのデータ構造体である。   FIG. 3B and FIG. 3C are diagrams showing reproduction control data according to the present embodiment. The reproduction control data is a data structure for control during reproduction processing.

図3(b)は、基本データバッファを示し、図3(c)は、発音中の音符データの格納バッファ(発音中データバッファ)を示す。図3(b)に示すように、基本データバッファ301には基本データが格納される。基本データは、現在時刻INowTick、各トラックの次の音符データへのポインタMidiEvents[0]〜[n]、演奏状態iPStatus、待機開始時刻IwaitStart、テンポiNowTempo、最後に上記現在時刻INowTickが更新されたシステム時刻ITickUpdate、途中停止用フラグinterruption、および、発音中の音符データmePlaying[0]〜[N]が含まれる。次の音符データへのポインタMidiEvents[0]〜[n]は、それぞれ、音符データバッファ400の音符データを特定するポインタである。   FIG. 3B shows a basic data buffer, and FIG. 3C shows a storage buffer (sounding data buffer) of note data being sounded. As shown in FIG. 3B, basic data is stored in the basic data buffer 301. The basic data includes the current time INowTick, pointers to the next note data of each track MidiEvents [0] to [n], performance state iPSStatus, standby start time IwaitStart, tempo iNowTempo, and finally the current time INowTick is updated. Time ITickUpdate, midway stop flag interrupt, and note data being played mePlaying [0] to [N] are included. The pointers MidiEvents [0] to [n] to the next note data are pointers that specify the note data in the note data buffer 400, respectively.

発音中の音符データmePlaying[0]〜[N]については、それぞれ発音中データバッファ302にさらに必要な情報が格納される。図3(c)に示すように、発音中データのレコードは、各MidiEventについて、音符データ(MidiEvent[])へのポインタpME、発音保留フラグiStatus、および、押鍵の有無を示す押鍵フラグiStatusを含む。   For the note data mePlaying [0] to [N] being sounded, necessary information is further stored in the sounding data buffer 302. As shown in FIG. 3C, the record of the sounding data includes, for each MidiEvent, a pointer pME to the note data (MidiEvent []), a sound generation hold flag iStatus, and a key press flag iStatus indicating the presence or absence of a key press. including.

押鍵フラグiStatusが「0」であることは押鍵がまだされていないことを示し、押鍵フラグが「1」であることは、押鍵があったことを示す。   When the key pressing flag iStatus is “0”, it indicates that the key has not been pressed yet, and when the key pressing flag is “1”, it indicates that the key has been pressed.

基本データの演奏状態iPStatusが「0」であることは、停止されている状態を示し、「1」であることは再生中であることを示す。また、iPStatusが「2」であることは、待機中であることを示す。   When the performance state iPSStatus of the basic data is “0”, it indicates a stopped state, and when it is “1”, it indicates that playback is in progress. Further, iPSstatus of “2” indicates that it is waiting.

また、発音中データの発音保留フラグiStatusが「0」であることは、発音保留中であることを示し、「1」であることは、ミディアウト(MIDI−OUT)済であることを示す。   In addition, when the pronunciation pending flag iStatus of the sounding data is “0”, it indicates that the pronunciation is pending, and “1” indicates that the MIDI-OUT has been completed.

なお、図3および図4に示すトラックデータバッファ、音符データバッファ、基本データバッファおよび発音中データバッファは、RAM14およびROM16に設けられる。予め定められたデータは、ROM16に記憶され、処理により生成されたデータは、RAM14に記憶される。   The track data buffer, note data buffer, basic data buffer, and sounding data buffer shown in FIGS. 3 and 4 are provided in the RAM 14 and the ROM 16. The predetermined data is stored in the ROM 16, and the data generated by the processing is stored in the RAM 14.

図5は、本実施の形態にかかる演奏練習支援システムにて実行されるメインフローの例を示す図である。図1に示すように、CPU12は、RAM14に記憶された、処理において使用されるパラメータやフラグを初期化する(ステップ501)。次いで、CPU12は、ROM16やRAM14から、音符データなどを読み込み(ステップ502)、演奏支援情報を生成し、RAM14に記憶する(ステップ503)。   FIG. 5 is a diagram showing an example of a main flow executed in the performance practice support system according to the present embodiment. As shown in FIG. 1, the CPU 12 initializes parameters and flags used in the processing, which are stored in the RAM 14 (step 501). Next, the CPU 12 reads note data from the ROM 16 and the RAM 14 (step 502), generates performance support information, and stores it in the RAM 14 (step 503).

ここに、ステップ502においては、図3や図4に示す、トラックデータ、発音中データ、基本データも、RAM14やROM16から必要に応じて読み出される。演奏支援情報の生成(ステップ503)については後に詳述する。   Here, in step 502, the track data, sounding data, and basic data shown in FIGS. 3 and 4 are also read from the RAM 14 and ROM 16 as necessary. The generation of performance support information (step 503) will be described in detail later.

CPU12は、演奏者による入力装置18の操作によって終了指示を受け付けていない場合には(ステップ504でNo)、入力装置18の操作による再生指示を受け付けたか否かを判断する(ステップ505)。ステップ505でYesと判断された場合には、CPU12は、再生処理を起動させ(ステップ506)、また、MIDI−IN処理を起動させる(ステップ507)。再生処理およびMIDI−IN処理については後に詳述する。   If the end instruction is not received by the player operating the input device 18 (No in step 504), the CPU 12 determines whether or not a reproduction instruction is received by operating the input device 18 (step 505). If it is determined Yes in step 505, the CPU 12 activates the reproduction process (step 506) and activates the MIDI-IN process (step 507). The reproduction process and the MIDI-IN process will be described in detail later.

再生中で、かつ、停止指示を受け付けた場合には(ステップ508でYes)、CPU12は、図3(b)の基本データ中の途中停止用フラグinterruptionを「TRUE」にセットする(ステップ509)。   If playback is in progress and a stop instruction is accepted (Yes in step 508), the CPU 12 sets the intermediate stop flag interrupt in the basic data in FIG. 3B to “TRUE” (step 509). .

ステップ505〜509は、終了指示が受け付けられる(ステップ504でYes)まで繰り返される。   Steps 505 to 509 are repeated until an end instruction is accepted (Yes in step 504).

図5のステップ503の演奏支援情報生成処理についてより詳細に説明する。図6は、演奏支援情報生成処理の例を示すフローチャートである。演奏支援情報生成部32(図2参照)は、処理で使用する変数を初期化して(ステップ601)、音符データごとに(つまり音符ごとに)、押鍵する指の座標を算出して、座標を示す情報等を音符データのレコード中、演奏支援情報としてRAM14に格納する(ステップ602)。また、演奏支援情報生成部32は、上記押鍵している状況(現在の状況)を考慮して他の指の座標を算出し、当該座標を示す情報等を、RAM14中の音符データバッファに、演奏支援情報として格納する(ステップ603)。   The performance support information generation process at step 503 in FIG. 5 will be described in more detail. FIG. 6 is a flowchart illustrating an example of performance support information generation processing. The performance support information generation unit 32 (see FIG. 2) initializes variables used in the processing (step 601), calculates the coordinates of the finger to be pressed for each note data (that is, for each note), Is stored in the RAM 14 as performance support information in the note data record (step 602). In addition, the performance support information generation unit 32 calculates the coordinates of other fingers in consideration of the key-pressed situation (current situation), and stores information indicating the coordinates in a note data buffer in the RAM 14. And stored as performance support information (step 603).

次に、ステップ602の押鍵する指の座標設定処理について図7を参照して説明する。図7に示すように、演奏支援情報生成部32は、処理対象の音符データを特定するポインタmeを音符データの先頭レコードに設定する(ステップ701)。演奏支援情報生成部32は、全ての音符データについて処理が終了するまで(ステップ702でYes)、ステップ703以下の処理を実行する。   Next, the coordinate setting process of the finger to be pressed in step 602 will be described with reference to FIG. As shown in FIG. 7, the performance support information generating unit 32 sets a pointer me specifying the note data to be processed as the first record of the note data (step 701). The performance support information generation unit 32 executes the processing from step 703 onward until the processing is completed for all the note data (Yes in step 702).

まず、演奏支援情報生成部32は、指を使っている否か、つまり、押鍵しているか否かを示すフラグiFigOn[0]〜[4]、同時に押鍵する鍵の中に黒鍵があるか否かを示すフラグiBK[0]〜[4]、および、処理対象となる指を特定するパラメータifigをそれぞれ初期化する(ステップ703)。   First, the performance support information generation unit 32 has a flag iFigOn [0] to [4] indicating whether or not a finger is used, that is, whether or not a key is pressed, and a black key is included among keys simultaneously pressed. A flag iBK [0] to [4] indicating whether or not there is present and a parameter ifig for specifying a finger to be processed are initialized (step 703).

演奏支援情報生成部32は、処理対象となる指を示すパラメータifigが5以上である場合、つまり、5つの指のそれぞれについての処理が終了していれば(ステップ704でNo)、ポインタmeを次の音符データに移動させる(ステップ705)。   If the parameter ifig indicating the finger to be processed is 5 or more, that is, if the processing for each of the five fingers has been completed (No in step 704), the performance support information generation unit 32 sets the pointer me. Move to the next note data (step 705).

これに対して、パラメータifigが5より小さい場合(ステップ704でYes)には、演奏支援情報生成部32は、当該音符データについて、ifigで示される指の横方向の座標sfigPosX[ifig]の初期値として「−1」を与える(ステップ706)。次いで、演奏支援情報生成部32は、ifigが、処理対象となるレコードに割符振られた運指cfigと一致する場合には(ステップ707でYes)、処理対象となる指ifigの横方向の座標sfigPosX[ifig]として、当該音符データの鍵盤の座標iPosXをセットする(ステップ708)。   On the other hand, when the parameter ifig is smaller than 5 (Yes in step 704), the performance support information generating unit 32 sets the initial coordinate sfigPosX [ifig] in the lateral direction of the finger indicated by ifig for the note data. “−1” is given as a value (step 706). Next, when the ifig matches the fingering cfiig assigned to the record to be processed (Yes in step 707), the performance support information generation unit 32 determines the horizontal coordinates of the finger ifig to be processed. The keyboard coordinate iPosX of the note data is set as sfigPosX [ifig] (step 708).

次いで、演奏支援情報生成部32は、当該音符データについて、和音フラグcIsHarmが0より大きい場合、つまり当該音符データにより特定される音符が和音構成音である場合には(ステップ709でYes)、同じタイミングで押鍵する指の座標、つまり、和音として押鍵する指の座標の設定処理を実行する(ステップ710)。   Next, when the chord flag cIsHarm is greater than 0 for the note data, that is, when the note specified by the note data is a chord constituent sound (Yes in step 709), the performance support information generating unit 32 is the same. A process for setting the coordinates of the finger pressed at the timing, that is, the coordinates of the finger pressed as a chord is executed (step 710).

次いで、演奏支援情報生成部32は、指を特定するパラメータifigをインクリメントする(ステップ711)。   Next, the performance support information generating unit 32 increments the parameter ifig that specifies the finger (step 711).

図8は、ステップ708の同じタイミングで押鍵する指の座標の設定処理の例を示すフローチャートである。図8に示すように、演奏支援情報生成部32は、ポインタmehとして、処理対象となっている音符データにおける和音の先頭音へのポインタpHTopをセットする(ステップ801)。   FIG. 8 is a flowchart illustrating an example of the process for setting the coordinates of the finger to be pressed at the same timing in step 708. As shown in FIG. 8, the performance support information generating unit 32 sets a pointer pHTop to the head note of the chord in the note data to be processed as a pointer meh (step 801).

また、演奏支援情報生成部32は、パラメータcfigHとして、当該音符データについて割り振られた運指cfigをセットする(ステップ802)とともに、パラメータiFigOn[cfigH]として「1」をセットする(ステップ803)。   In addition, the performance support information generation unit 32 sets the fingering cfig assigned to the note data as the parameter cfigH (step 802) and sets “1” as the parameter iFigOn [cfigH] (step 803).

次いで、演奏支援情報生成部32は、当該音符データについて、指cfigHに関する指の座標sfigPosX[cfigH]について、上記ポインタmehで特定される音符データについての鍵盤の座標iPosXをセットする(ステップ804)。これらセットされた値は、RAM14に記憶される。   Next, the performance support information generating unit 32 sets the keyboard coordinate iPosX for the note data specified by the pointer meh with respect to the finger coordinate sfigPosX [cfigH] for the finger cfigH for the note data (step 804). These set values are stored in the RAM 14.

演奏支援情報生成部32は、ポインタmehが、処理対象となっている音符データの和音の終端音へのポインタpHTailと一致するか否かを判断し(ステップ805)、ステップ805でYesと判断される場合には、ステップ711に進む。ステップ805でNoと判断された場合には、ポインタmehを次の音符データを示すように移動させて(ステップ806)、ステップ802に戻る。   The performance support information generating unit 32 determines whether or not the pointer meh matches the pointer pHTail to the end tone of the chord of the note data to be processed (step 805), and Yes is determined in step 805. If YES, go to step 711. If NO is determined in step 805, the pointer meh is moved to indicate the next note data (step 806), and the process returns to step 802.

図8の処理は以下のような意味を有する。先に述べたようにiFigOn[0]〜[4]は、それぞれ、指を使っているかどうかを示すフラグである。図8の処理によって、処理対象の音符データにおいて、和音構成音を押鍵すべき指の横方向の座標sfigPosX[cfigH]として、当該和音構成音の音符データのレコード中の、割り振られた運指cfigがセットされることになる。   The process of FIG. 8 has the following meaning. As described above, iFIGOn [0] to [4] are flags indicating whether or not a finger is used. In the note data to be processed, the assigned fingering in the note data record of the chord constituent sound is set as the horizontal coordinate sigPosX [cfigH] of the finger to which the chord constituent sound is to be pressed in the note data to be processed. cfg will be set.

図7および図8の処理によって、ある音符データに対応する音符、および、当該音符が和音構成音であった場合には、当該和音構成音の音符に基づいて、その音符を押鍵する際における押鍵している指の横方向の座標sfigPosXが決定され、決定された値が、RAM14に記憶される。   7 and 8, when a note corresponding to a certain note data and the note is a chord constituent sound, when the key is pressed based on the note of the chord constituent sound. The horizontal coordinate sfigPosX of the finger that is pressed is determined, and the determined value is stored in the RAM 14.

次に、図6のステップ603についてより詳細に説明する。図9〜図11は、現在の状況を考慮した座標設定処理の例を示すフローチャートである。図9に示すように、演奏支援情報生成部32は、処理対象の音符データを特定するポインタmeを音符データの先頭レコードに設定する(ステップ901)。演奏支援情報生成部32は、全ての音符データについて処理が終了するまで(ステップ902でYes)、ステップ903以下の処理を実行する。   Next, step 603 in FIG. 6 will be described in more detail. 9 to 11 are flowcharts illustrating an example of the coordinate setting process in consideration of the current situation. As shown in FIG. 9, the performance support information generating unit 32 sets a pointer me specifying the note data to be processed as the first record of the note data (step 901). The performance support information generation unit 32 executes the processing from step 903 onward until the processing is completed for all the note data (Yes in step 902).

まず、演奏支援情報生成部32は、図7のステップ703と同様に、指を使っている否かを示すフラグiFigOn[0]〜[4]、同時に押鍵する鍵の中に黒鍵があるか否かを示すフラグiBK[0]〜[4]、および、処理対象となる指を特定するパラメータifigをそれぞれ初期化する(ステップ903)。   First, the performance support information generation unit 32 has flags iFigOn [0] to [4] that indicate whether or not a finger is used, as in step 703 in FIG. A flag iBK [0] to [4] indicating whether or not and a parameter ifig for specifying a finger to be processed are initialized (step 903).

演奏支援情報生成部32は、ポインタmehとして、処理対象となっている音符データの和音の先頭音へのポインタpHTopをセットする(ステップ904)。   The performance support information generating unit 32 sets the pointer pHTop to the head note of the chord of the note data to be processed as the pointer meh (step 904).

演奏支援情報生成部32は、パラメータcfigHとして、当該音符データについて割り振られた運指cfigをセットする(ステップ905)とともに、パラメータiFigOn[cfigH]として「1」をセットする(ステップ906)。   The performance support information generating unit 32 sets the fingering cfig allocated for the note data as the parameter cfigH (step 905), and sets “1” as the parameter iFigOn [cfigH] (step 906).

演奏支援情報生成部32は、ポインタmehが、処理対象となっている音符データの和音の終端音へのポインタpHTailと一致するか否かを判断し(ステップ907)、ステップ907でYesと判断される場合には、ステップ1001に進む。ステップ907でNoと判断された場合には、ポインタmehを次の音符データを示すように移動させて(ステップ908)、ステップ905に戻る。   The performance support information generation unit 32 determines whether or not the pointer meh matches the pointer pHTail to the end tone of the chord of the note data to be processed (step 907), and “Yes” is determined in step 907. If YES, go to step 1001. If NO is determined in step 907, the pointer meh is moved to indicate the next note data (step 908), and the process returns to step 905.

ステップ905〜ステップ908においては、和音構成音cfigHについて、iFigOn[cfigH]に初期値「−1」を格納している。   In step 905 to step 908, the initial value “−1” is stored in iFigOn [cfigH] for the chord component sound cfigH.

図10に示すように、演奏支援情報生成部32は、パラメータifigを「0」に初期化する(ステップ1001)。次いで、演奏支援情報生成部32は、パラメータifigが「5」より小さいか否かを判断する(ステップ1002)。ステップ1002でYesと判断される場合には、演奏支援情報生成部32は、処理対象となる音符データにおいて、フラグiFigOn[ifig]が「0」であるか否かを判断する(ステップ1003)。   As shown in FIG. 10, the performance support information generation unit 32 initializes the parameter ifig to “0” (step 1001). Next, the performance support information generating unit 32 determines whether or not the parameter ifig is smaller than “5” (step 1002). When it is determined Yes in step 1002, the performance support information generating unit 32 determines whether or not the flag iFigOn [ifig] is “0” in the note data to be processed (step 1003).

ステップ906においては、フラグiFigOn[cfigH]として「1」がセットされている。つまり、和音構成音については、指が使われていることを示すフラグ「1」がセットされている。したがって、ステップ1003でYesと判断されることは、パラメータifigで示される指が、押鍵のために使われていないことを意味している。   In step 906, “1” is set as the flag iFigOn [cfigH]. That is, the flag “1” indicating that the finger is used is set for the chord constituent sound. Therefore, the determination of Yes in step 1003 means that the finger indicated by the parameter ifig is not used for key pressing.

ステップ1003でYesと判断された場合には、演奏支援情報生成部32は、指の横方向の座標の高い側の候補値sfigHおよび低い側の候補値sfigLに、初期値「−1」を与える(ステップ1004)。演奏支援情報生成部32は、パラメータifgを、ifig+1と設定して(ステップ1005)、パラメータifgが、0以上5未満であるか否かを判断する(ステップ1006)。   When it is determined Yes in step 1003, the performance support information generating unit 32 gives the initial value “−1” to the candidate value sfigH on the higher side and the candidate value sfigL on the lower side of the finger lateral coordinate. (Step 1004). The performance support information generation unit 32 sets the parameter ifg as ifig + 1 (step 1005), and determines whether the parameter ifg is 0 or more and less than 5 (step 1006).

ステップ1006でYesと判断された場合には、演奏支援情報生成部32は、iFigOn[ifg]が「1」であるか否かを判断する(ステップ1007)。ここでは、パラメータifgで特定される指が押鍵しているか否かが判断されている。   If it is determined Yes in step 1006, the performance support information generating unit 32 determines whether iFigOn [ifg] is “1” (step 1007). Here, it is determined whether or not the finger specified by the parameter ifg is depressed.

ステップ1007でYesと判断された場合には、演奏支援情報生成部32は、sFigHとして、処理対象となる音符データにおけるsfigPosX[ifg]に、2*(ifig−ifg)を加えた値をセットする(ステップ1008)。   When it is determined Yes in step 1007, the performance support information generation unit 32 sets, as sFigH, a value obtained by adding 2 * (ifig-ifg) to sfigPosX [ifg] in the note data to be processed. (Step 1008).

次いで、演奏支援情報生成部32は、パラメータifgをインクリメントして(ステップ1009)、ステップ1006に戻る。   Next, the performance support information generating unit 32 increments the parameter ifg (step 1009) and returns to step 1006.

ステップ1007〜ステップ1009の処理においては、パラメータifigで特定される指の右側に押鍵している指があるか否かが判断され、指が存在する場合には、その指ifgについての横方向の座標sfigPosX[ifg]より白鍵1つだけ右側の鍵に相当する座標値を、sfigHとしてセットしている。   In the processing of Step 1007 to Step 1009, it is determined whether or not there is a finger pressing on the right side of the finger specified by the parameter ifig. If there is a finger, the horizontal direction of the finger ifg is determined. The coordinate value corresponding to the key on the right side of only one white key from the coordinates sfigPosX [ifg] is set as sfigH.

ステップ1006でNoと判断されると、演奏支援情報生成部32は、図11に示すように、パラメータifgを、「ifig−1」と設定して(ステップ1101)、パラメータifgが、0以上5未満であるか否かを判断する(ステップ1102)。ステップ1102でYesと判断された場合には、演奏支援情報生成部32は、演奏支援情報生成部32は、iFigOn[ifg]が「1」であるか否かを判断する(ステップ1103)。ここでは、パラメータifgで特定される指が押鍵しているか否かが判断されている。   If it is determined No in step 1006, the performance support information generating unit 32 sets the parameter ifg as “ifig-1” (step 1101) as shown in FIG. It is determined whether it is less than (step 1102). When it is determined Yes in step 1102, the performance support information generation unit 32 determines whether iFigOn [ifg] is “1” (step 1103). Here, it is determined whether or not the finger specified by the parameter ifg is depressed.

ステップ1103でYesと判断された場合には、演奏支援情報生成部32は、sFigHとして、処理対象となる音符データにおけるsfigPosX[ifg]に、2*(ifig−ifg)を加えた値をセットする(ステップ1104)。   If it is determined Yes in step 1103, the performance support information generation unit 32 sets sFigH to a value obtained by adding 2 * (ifig-ifg) to sfigPosX [ifg] in the note data to be processed. (Step 1104).

次いで、演奏支援情報生成部32は、ifgをデクリメントして(ステップ1105)、ステップ1102に戻る。   Next, the performance support information generation unit 32 decrements ifg (step 1105) and returns to step 1102.

ステップ1103〜ステップ1105の処理においては、パラメータifigで特定される指の右側に押鍵している指があるか否かが判断され、指が存在する場合には、その指ifgについての横方向の座標sfigPosX[ifg]より白鍵1つ分だけ左側の鍵に相当する座標値を、sfigLとしてセットしている。   In the processing from step 1103 to step 1105, it is determined whether or not there is a finger pressing on the right side of the finger specified by the parameter ifig. If there is a finger, the horizontal direction of the finger ifg is determined. The coordinate value corresponding to the key on the left side by one white key from the coordinates sfigPosX [ifg] is set as sigL.

その後、演奏支援情報生成部32は、処理対象となる音符データのsfigPosX[ifig]、つまり、当該音符データのパラメータifigで特定される指の横方向の座標として、sfigHおよびsfigLの双方が存在すれば、その平均値(sfigH+sfigL)/2をセットし、sfigHのみが存在すれば、sfigHをセットし、或いは、sfigLのみが存在すればsfigLをセットする(ステップ1106)。   After that, the performance support information generating unit 32 includes both sigH and sigL as the coordinates in the lateral direction of the finger specified by the parameter ifig of the note data to be processed, that is, the parameter ifig of the note data. For example, the average value (sfigH + sfigL) / 2 is set. If only sfigH exists, sfigH is set, or if only sfigL exists, sfigL is set (step 1106).

また、演奏支援情報生成部32は、sfMaxおよびsfMinを更新して、RAM14に一時的に記憶する(ステップ1107)。sfMaxは、sfigHの最高値であり、新たに算出されたsfigH>sfMaxであれば、新たなsfMaxとしてsfigHがセットされる。同様に、sfMinは、sfigLの最小値であり、sfigL<sfMinであれば、新たなsfMinとしてsfigLがセットされる。   Further, the performance support information generation unit 32 updates sfMax and sfMin and temporarily stores them in the RAM 14 (step 1107). sfMax is the highest value of sfigH, and if newly calculated sfigH> sfMax, sfigH is set as a new sfMax. Similarly, sfMin is the minimum value of sfigL. If sfigL <sfMin, sfigL is set as a new sfMin.

ステップ1107の処理の後、演奏支援情報生成部32は、パラメータifigをインクリメントして(ステップ1108)、ステップ1002に戻る。   After the processing of step 1107, the performance support information generating unit 32 increments the parameter ifig (step 1108) and returns to step 1002.

図10のステップ1002でNoと判断された場合、つまり、パラメータifigが5以上である場合には、演奏支援情報生成部32は、処理対象である音符データにおける手の横方向の座標sHandPosXとして、sfMaxおよびsfMinの平均値(sfMmax+sfMin)/2をセットする(ステップ1010)。その後、演奏支援情報生成部32は、処理対象となる音符データを特定するポインタを次のレコードに移動して(ステップ1011)、ステップ902に戻る。   When it is determined No in step 1002 of FIG. 10, that is, when the parameter ifig is 5 or more, the performance support information generating unit 32 uses the horizontal coordinate sHandPosX of the hand in the note data to be processed as An average value of sfMax and sfMin (sfMmax + sfMin) / 2 is set (step 1010). Thereafter, the performance support information generating unit 32 moves the pointer that specifies the note data to be processed to the next record (step 1011), and returns to step 902.

図9〜図11の処理によって、押鍵していない指の横方向の座標も、その時点で押鍵している他の指の座標に基づいて算出され、音符データの項目としてRAM14に記憶される。   9 to 11, the horizontal coordinate of the finger not pressed is calculated based on the coordinate of the other finger pressed at that time, and stored in the RAM 14 as an item of note data. The

次に、ステップ506において起動される再生処理について説明する。図12および図13は、再生処理の例を示すフローチャートである。再生処理部36は、図12に示すように、RAM14に記憶された、再生処理において使用されるパラメータやフラグを初期化する(ステップ1201)。次いで、再生処理部36は、基本データバッファ(図3(b)参照)の基本データ中の現在時刻INowTickとして、システム時刻に基づく再生開始時刻をセットし(ステップ1202)、次いで、トラックを示すパラメータiTrを「0」に初期化する(ステップ1203)。   Next, the reproduction process activated in step 506 will be described. 12 and 13 are flowcharts showing an example of the reproduction process. As shown in FIG. 12, the reproduction processing unit 36 initializes parameters and flags used in the reproduction processing stored in the RAM 14 (step 1201). Next, the playback processing unit 36 sets the playback start time based on the system time as the current time INowTick in the basic data in the basic data buffer (see FIG. 3B) (step 1202), and then a parameter indicating the track iTr is initialized to “0” (step 1203).

再生処理部36は、全てのトラックについての処理が終了する(ステップ1204でNo)まで、ステップ1205以下の処理を実行する。再生処理部36は、処理対象となる音符データを特定するポインタmeとして、Track[iTr]で特定されるトラックデータ(図3(a)参照)中のトラック最初の音符データpFirstMEをセットする(ステップ1205)。   The reproduction processing unit 36 executes the processing from step 1205 onward until the processing for all tracks is completed (No in step 1204). The playback processing unit 36 sets the first note data pFirstME of the track in the track data (see FIG. 3A) specified by Track [iTr] as a pointer me for specifying the note data to be processed (step S1). 1205).

次いで、再生処理部36は、ポインタmeにより特定される音符データの発音開始時刻ITime<基本データの現在時刻INowTickであるか否かを判断する(ステップ1206)。ステップ1206においては、現在時刻が、音符データ中の発音開始時刻に達しているか否かが判断される。   Next, the reproduction processing unit 36 determines whether or not the pronunciation start time ITime of the note data specified by the pointer me <the current time INowTick of the basic data (step 1206). In step 1206, it is determined whether or not the current time has reached the pronunciation start time in the note data.

ステップ1206でNoと判断された場合には、再生処理部36は、トラックを示すパラメータiTrをインクリメントして(ステップ1209)、ステップ1204に戻る。   If it is determined No in step 1206, the reproduction processing unit 36 increments the parameter iTr indicating the track (step 1209) and returns to step 1204.

ステップ1206でYesと判断された場合には、再生処理部36は、トラックデータにおいて、トラックiTrの次の音符データへのポインタMidiEvents[iTr]として、meをセットする(ステップ1207)。次いで、再生処理部36は、音符データを特定するポインタmeを、次の音符データを指定するように移動させる(ステップ1208)。   If it is determined Yes in step 1206, the playback processing unit 36 sets me as the pointer MidiEvents [iTr] to the note data next to the track iTr in the track data (step 1207). Next, the reproduction processing unit 36 moves the pointer me specifying the note data so as to designate the next note data (step 1208).

ステップ1204でNoと判断された場合には、再生処理部36は、基本データの現在時刻INowTickが、最後の音符データに基づく、音符を消音すべき時間より大きいか否かを判断する(ステップ1301)。上記音符を消音すべき時間とは、末尾の音符データの発音開始時刻ITime+発音時間IGateに相当する。   If it is determined No in step 1204, the playback processing unit 36 determines whether or not the current time INowTick of the basic data is greater than the time to mute the notes based on the last note data (step 1301). ). The time for which the above note should be muted corresponds to the sounding start time ITime + the sounding time IGate of the last note data.

ステップ1301でYesと判断された場合には、再生処理は終了する。その一方、ステップ1301でNoと判断された場合には、再生処理部36は、時刻計算処理(ステップ1302)、発音処理(ステップ1303)および消音処理(ステップ1304)を実行する。ステップ1302〜1304の各処理については後述する。   If it is determined Yes in step 1301, the reproduction process ends. On the other hand, when it is determined No in step 1301, the reproduction processing unit 36 executes time calculation processing (step 1302), sound generation processing (step 1303), and mute processing (step 1304). Each processing in steps 1302 to 1304 will be described later.

また、基本データの途中停止フラグinterruptionが「FALSE」であれば(ステップ1305でYes)、ステップ1301に戻る。その一方、途中停止フラグinterruptionが「TRUE」であれば(ステップ1305でNo)、発音中の音符データの全てについて消音処理を実行する(ステップ1306)。   If the halfway stop flag interruption of the basic data is “FALSE” (Yes in step 1305), the process returns to step 1301. On the other hand, if the midway stop flag interruption is “TRUE” (No in step 1305), the mute process is executed for all the note data being sounded (step 1306).

図14は、本実施の形態にかかる時刻計算処理の例を示すフローチャートである。再生処理部36は、基本データの演奏状態iPStatusが「1」であるか否か、つまり再生中を示しているか否かを判断する(ステップ1401)。ステップ1401でYesと判断された場合には、再生処理部36は、ISysGateとして、コンピュータから取得したおおもとのシステム時刻と、基本データバッファ中の更新されたシステム時刻ITickUpdateとの差をセットする(ステップ1402)。ステップ1402においては、前回の時刻計算処理からどのくらいのシステム時刻が経過しているかを算出する。   FIG. 14 is a flowchart illustrating an example of time calculation processing according to the present embodiment. The reproduction processing unit 36 determines whether or not the performance state iPSstatus of the basic data is “1”, that is, whether or not reproduction is being performed (step 1401). If YES in step 1401, the playback processing unit 36 sets the difference between the original system time acquired from the computer and the updated system time ITickUpdate in the basic data buffer as ISysGate. (Step 1402). In step 1402, it is calculated how much system time has elapsed since the previous time calculation process.

次いで、再生処理部36は、ITickTmpとして、(60*1000/INowTempo)/Resoloution/ISysGateをセットし(ステップ1403)、セットされたITickTmpが「0」より大きいか否かを判断する(ステップ1404)。   Next, the playback processing unit 36 sets (60 * 1000 / INowTempo) / Resolution / ISysGate as ITickTmp (step 1403), and determines whether the set ITickTmp is greater than “0” (step 1404). .

ここに、INowTempoは、基本データバッファに格納されているテンポ値である。また、Resolutionは、解像度であり、たとえば、1/480秒に相当する値である。   Here, INowTempo is a tempo value stored in the basic data buffer. Resolution is a resolution, and is a value corresponding to 1/480 seconds, for example.

ステップ1404でYesと判断された場合には、再生処理部36は、基本データのITickUpdateとして、システム時刻をセットし(ステップ1405)かつ、基本データのINowTickとして、INowTick+ITickTmpをセットする(ステップ1406)。これにより、基本データにおける時刻の情報が更新される。   If it is determined Yes in step 1404, the playback processing unit 36 sets the system time as the basic data ITickUpdate (step 1405) and sets INowTick + ITickTmp as the basic data INowTick (step 1406). Thereby, the time information in the basic data is updated.

図15および図16は、本実施の形態にかかる発音処理の例を示すフローチャートである。再生処理部36は、再生制御データの基本データを検索する(ステップ1501)。再生処理部36は、全てのトラックについての検索が終了していなければ(ステップ1502でNo)、当該処理対象となるトラックについて、次の音符データへのポインタを参照して、音符データを特定して、当該音符データを取得する(ステップ1503)。また、再生処理部36は、トラックデータ(図3(a))を参照して、処理対象となるトラック種類iPlayTypeから、当該トラックが演奏データであるか否かを判断する(ステップ1504)。   15 and 16 are flowcharts showing an example of the sound generation process according to the present embodiment. The reproduction processing unit 36 searches for basic data of reproduction control data (step 1501). If the search for all the tracks has not been completed (No in step 1502), the reproduction processing unit 36 refers to the pointer to the next note data for the track to be processed, and specifies the note data. The note data is acquired (step 1503). Further, the reproduction processing unit 36 refers to the track data (FIG. 3A) and determines whether or not the track is performance data from the track type iPlayType to be processed (step 1504).

ステップ1504でNoと判断された場合には、再生処理部36は、音符データの発音開始時刻ITimeが、現在時刻INowTickを経過しているか否かを判断する(ステップ1505)。   When it is determined No in step 1504, the reproduction processing unit 36 determines whether or not the sound generation start time ITime of the note data has passed the current time INowTick (step 1505).

ステップ1505でNoと判断された場合には、再生処理部36は、処理対象を次のトラックとする(ステップ1510)。   When it is determined No in step 1505, the reproduction processing unit 36 sets the processing target as the next track (step 1510).

ステップ1505でYesと判断された場合には、再生処理部36は、発音中データバッファに、当該音符データを特定するためのポインタpMEを格納する(ステップ1506)。次いで、再生処理部36は、発音中データバッファに格納したポインタpMEにより示される音符データの発音を楽音生成回路28に対して指示する(ステップ1507)。   If it is determined Yes in step 1505, the reproduction processing unit 36 stores the pointer pME for specifying the note data in the sounding data buffer (step 1506). Next, the reproduction processing unit 36 instructs the musical sound generation circuit 28 to generate the note data indicated by the pointer pME stored in the sounding data buffer (step 1507).

再生処理部36は、基本データにおいて、処理対象となっているトラックの音符データとして、次の音符データを示すポインタを格納する(ステップ1508)。その後、当該処理対象を次の音符データとする(ステップ1509)。   In the basic data, the reproduction processing unit 36 stores a pointer indicating the next note data as the note data of the track to be processed (step 1508). Thereafter, the processing target is set as the next note data (step 1509).

ステップ1504でNoと判断された場合には、再生処理部36は、音符データにおいて、再生時の状態iPlayStatusが「1」であるか否かを判断する(ステップ1601)。ステップ1601でYesと判断された場合には、再生処理部36は、発音中データバッファに、当該音符データを示すポインタを追加する(ステップ1602)。   If it is determined No in step 1504, the reproduction processing unit 36 determines whether or not the reproduction state iPlayStatus is “1” in the note data (step 1601). When it is determined Yes in step 1601, the reproduction processing unit 36 adds a pointer indicating the note data to the sounding data buffer (step 1602).

その一方、ステップ1601でNoと判断された場合には、再生処理部36は、音符データの発音開始時刻ITimeが、現在時刻INowTickを経過しているか否かを判断する(ステップ1603)。ステップ1603でNoと判断された場合には、再生処理部36は、検索すべきトラックを次のトラックとする(ステップ1510)。   On the other hand, when it is determined No in step 1601, the reproduction processing unit 36 determines whether or not the pronunciation start time ITime of the note data has passed the current time INowTick (step 1603). If it is determined No in step 1603, the reproduction processing unit 36 sets the track to be searched as the next track (step 1510).

ステップ1603でYesと判断された場合には、再生処理部36は、発音中データバッファに、当該音符データを特定するためのポインタpMEを格納する(ステップ1604)。次いで、再生処理部36は、発音中データバッファの発音中データにおいて、発音保留フラグiStatusに「0」をセットする(ステップ1605)。   If it is determined Yes in step 1603, the reproduction processing unit 36 stores the pointer pME for specifying the note data in the sounding data buffer (step 1604). Next, the playback processing unit 36 sets “0” to the pronunciation pending flag iStatus in the sounding data in the sounding data buffer (step 1605).

また、再生処理部36は、基本データバッファの演奏状態iPStatusを「2」、つまり、待機中であることを示す値にセットする(ステップ1606)とともに、基本データバッファの待機開始時刻IwaitStartに、現在のシステム時刻をセットする(ステップ1607)。   In addition, the playback processing unit 36 sets the performance state iPSStatus of the basic data buffer to “2”, that is, a value indicating that it is waiting (step 1606), and at the basic data buffer standby start time IwaitStart, The system time is set (step 1607).

その後、再生制御データの基本データにおいて、処理対象となっているトラックの音符データとして、次の音符データを示すポインタを格納する(ステップ1608)。その後、当該次の音符データについての処理に移行する(ステップ1609)。   Thereafter, in the basic data of the reproduction control data, a pointer indicating the next note data is stored as the note data of the track to be processed (step 1608). Thereafter, the processing proceeds to the next note data (step 1609).

ステップ1601において、再生時の状態iPlayStatusが「1」であることは、ミディイベントが存在し、かつ、ノートオンが実行されていることを意味しており、本来の発音開始時刻よりも早いタイミングで演奏者により押鍵されていることを意味している。この場合には、後述するMIDI−IN処理において対応がされるため、発音処理においては特に何もしない。   In step 1601, the state iPlayStatus at the time of playback being “1” means that a midi event exists and note-on is being executed, and at a timing earlier than the original sounding start time. It means that the key is pressed by the performer. In this case, since it is dealt with in the MIDI-IN process described later, nothing is done in the sound generation process.

その一方、ステップ1601において、再生時の状態iPlayStatusが「1」以外であることは、少なくとも早いタイミングでの押鍵はなかったことを意味している。この場合には、発音開始時間より遅く押鍵される場合もあるし、押鍵されない場合もある。したがって、ステップ1605において、発音データバッファの対応する発音中データにおいて、発音保留フラグiStatusを「0」にセットしておくことで、後述するように、発音開始時間より遅いタイミングであっても、許容時間内に押鍵があれば、発音できるようにする。   On the other hand, in step 1601, the state iPlayStatus other than “1” at the time of reproduction means that there is no key depression at least at an early timing. In this case, the key may be pressed later than the sound generation start time, or the key may not be pressed. Therefore, in step 1605, by setting the pronunciation pending flag iStatus to “0” in the corresponding sounding data in the sounding data buffer, even if the timing is later than the sounding start time as described later, If there is a key press in time, it will be able to pronounce.

次に、消音処理について説明する。図17は、本実施の形態にかかる消音処理の例を示すフローチャートである。再生処理部36は、発音中データバッファの発音中データを検索する(ステップ1701)。   Next, the silencing process will be described. FIG. 17 is a flowchart illustrating an example of the mute process according to the present embodiment. The reproduction processing unit 36 searches the sounding data in the sounding data buffer (step 1701).

再生処理部36は、全ての発音中データについての検索が終了していなければ(ステップ1702でNo)、発音中データバッファに格納された音符データへのポインタpMEを参照して、音符データを特定して、データを取得する(ステップ1703)。   If the search for all sounding data has not been completed (No in step 1702), the playback processing unit 36 refers to the pointer pME to the note data stored in the sounding data buffer, and specifies the note data. Then, data is acquired (step 1703).

再生処理部36は、音符データの消音時刻(該当トラックの発音開始時刻ITime+発音時間IGate)が、現在時刻INowTickを経過しているか否かを判断する(ステップ1704)。   The reproduction processing unit 36 determines whether or not the mute time of the note data (the sound generation start time ITime + the sound generation time IGate) of the corresponding track has passed the current time INowTick (step 1704).

ステップ1704でNoと判断された場合には、再生処理部36は、処理対象を次の発音中データとする(ステップ1707)。   If it is determined No in step 1704, the reproduction processing unit 36 sets the processing target as the next sounding data (step 1707).

ステップ1704でYesと判断された場合には、再生処理部36は、発音中データバッファの発音中データをクリアする(ステップ1705)。次いで、再生処理部36は、発音中データバッファに格納されていたポインタpMEにより示される音符データの消音を楽音生成回路28に対して指示する(ステップ1706)。次いで、再生処理部36は、処理対象を次の発音中データとする(ステップ1707)。   If it is determined Yes in step 1704, the playback processing unit 36 clears the sounding data in the sounding data buffer (step 1705). Next, the reproduction processing unit 36 instructs the musical tone generating circuit 28 to mute the note data indicated by the pointer pME stored in the sounding data buffer (step 1706). Next, the reproduction processing unit 36 sets the processing target as the next sounding data (step 1707).

次に、本実施の形態にかかるMIDI−IN処理について説明する。図18は、本実施の形態にかかるMIDI−IN処理の例を示すフローチャートである。図18に示すように、再生処理部36が、演奏者による鍵盤26の押鍵に基づく押鍵情報(ノートオンメッセージ)を受け入れている場合には(ステップ1801でYes)、ノートオンメッセージに含まれる音高およびベロシティ(PitchおよびiVel)を取得する(ステップ1802)。   Next, MIDI-IN processing according to the present embodiment will be described. FIG. 18 is a flowchart showing an example of MIDI-IN processing according to the present embodiment. As shown in FIG. 18, when the reproduction processing unit 36 has received key depression information (note on message) based on the key depression of the keyboard 26 by the performer (Yes in step 1801), it is included in the note on message. The pitch and velocity (Pitch and iVel) to be played are acquired (step 1802).

次いで、ポインタmePlayを無し(NULL)とする(ステップ1804)。次いで、発音中データバッファからの検索処理(ステップ1804)および音符データからの検索処理(ステップ1805)が実行される。   Next, the pointer mePlay is set to none (NULL) (step 1804). Next, a search process (step 1804) from the sounding data buffer and a search process (step 1805) from the note data are executed.

ステップ1801でNoと判断された場合、および、ステップ1805が終了した後に、基本データバッファの途中停止フラグinterruptionが「FALSE」であり(ステップ1806でYes)、つまり、途中停止ではない状態であり、かつ、基本データの演奏状態iPStatusが「0」でなければ(ステップ1807でNo)、つまり、停止状態でなければ、ステップ1801に戻る。その一方、ステップ1806でNo、或いは、ステップ1807でYesと判断された場合には処理を終了する。   When it is determined No in step 1801 and after step 1805 is finished, the intermediate data stop flag interrupt of the basic data buffer is “FALSE” (Yes in step 1806), that is, it is not in the middle of the stop state. If the performance state iPSStatus of the basic data is not “0” (No in Step 1807), that is, if it is not the stop state, the process returns to Step 1801. On the other hand, if it is determined No in step 1806 or Yes in step 1807, the process ends.

以下、発音中データバッファからの検索処理(ステップ1804)および音符データからの検索処理(ステップ1805)についてより詳細に説明する。発音中データバッファからの検索処理は、音符データにおいて既に発音開始時刻ITimeが経過しており、当該音符データへのポインタが発音中データバッファに格納されているが、演奏者による押鍵がないため発音保留フラグが「0」となっているような音符について押鍵があった場合に実行される処理である。すなわち、発音開始時刻より遅れて押鍵された場合の発音処理である。   Hereinafter, the search process from the sounding data buffer (step 1804) and the search process from the note data (step 1805) will be described in more detail. In the search process from the sounding data buffer, the sounding start time ITime has already passed in the note data, and the pointer to the note data is stored in the sounding data buffer, but there is no key depression by the performer. This process is executed when a key is pressed for a note whose pronunciation pending flag is “0”. That is, the sound generation process when the key is pressed with a delay from the sound generation start time.

図19および図20は、本実施の形態にかかる発音中データバッファからの検索処理の例を示すフローチャートである。図19に示すように、再生処理部36は、発音中データバッファ中の発音中データを検索する(ステップ1901)。   FIG. 19 and FIG. 20 are flowcharts showing an example of search processing from the sounding data buffer according to the present embodiment. As shown in FIG. 19, the reproduction processing unit 36 searches for sounding data in the sounding data buffer (step 1901).

再生処理部36は、全ての発音中データについての検索が終了していなければ(ステップ1902でNo),処理対象となる発音中データについて、発音保留フラグiStatusが「0」、すなわち、発音保留中であるか否かを判断する(ステップ1903)。ステップ1902でYesと判断された場合には、ステップ2001に進む。なお、図19および図20において、処理対象となっている発音中データのmePlayingを示すパラメータをmepと称する。   If the search for all sounding data has not been completed (No in step 1902), the reproduction processing unit 36 sets the sounding pending flag iStatus to “0” for the sounding data to be processed, that is, the sounding pending. It is determined whether or not (step 1903). If YES is determined in step 1902, the process proceeds to step 2001. In FIG. 19 and FIG. 20, a parameter indicating mePlaying of sounding data to be processed is referred to as mep.

ステップ1903でNoと判断された場合には、再生処理部36は、処理対象を、発音中データバッファの次の発音中データに移動させる(ステップ1910)。   If it is determined No in step 1903, the reproduction processing unit 36 moves the processing target to the next sounding data in the sounding data buffer (step 1910).

ステップ1903でYesと判断された場合には、再生処理部36は、ポインタmepにより示される発音中データ中のポインタpMeを参照して、音符データのレコードを取得する(ステップ1904)。   If it is determined Yes in step 1903, the reproduction processing unit 36 refers to the pointer pMe in the sounding data indicated by the pointer mep and acquires a record of note data (step 1904).

次いで、演奏データ正誤判定部34は、現在時刻INowTickと、前記ポインタmepにより特定される音符データの発音開始時刻ITimeとを比較して、INowTick−ITimeが、許容時間を示す所定の閾値より小さいか否かを判断する(ステップ1905)。ステップ1905でNoと判断された場合には、ステップ2001に進む。   Next, the performance data correctness / incorrectness determination unit 34 compares the current time INowTick with the pronunciation start time ITime of the note data specified by the pointer mep, and determines whether INowTick-ITime is smaller than a predetermined threshold value indicating the allowable time. It is determined whether or not (step 1905). If NO in step 1905, the process proceeds to step 2001.

ステップ1905でYesと判断された場合には、演奏データ正誤判定部34は、押鍵された鍵の座標iPitを取得し(ステップ1906)、取得した座標iPitが、音符データ中の、親指の横方向の座標および小指の横方向の座標の範囲内に含まれるか否か(sfigPosX[0]<iPit<sfigPosX[4])であるか否かを判断する(ステップ1907)。   If it is determined Yes in step 1905, the performance data correctness determination unit 34 acquires the coordinate iPit of the key that has been pressed (step 1906), and the acquired coordinate iPit is the side of the thumb in the note data. It is determined whether or not it is included in the range of the coordinate of the direction and the coordinate of the horizontal direction of the little finger (sigPosX [0] <iPit <sigPosX [4]) (step 1907).

ステップ1907でYesと判断された場合には、演奏データ正誤判定部34は、さらに、ポインタmepにより特定される音符データのピッチPitchと押鍵された鍵の座標iPitとの差の絶対値、および、後述するポインタmeplayにより特定される音符データのピッチPitchと押鍵された鍵の座標iPitとの差の絶対値を比較する(ステップ1908)。   If it is determined Yes in step 1907, the performance data correctness determination unit 34 further determines the absolute value of the difference between the pitch Pitch of the note data specified by the pointer mep and the coordinate iPit of the pressed key, and Then, the absolute value of the difference between the pitch Pitch of the note data specified by the pointer meplay described later and the coordinate iPit of the depressed key is compared (step 1908).

ステップ1908において、前者(ポインタmepにより特定される音符データのピッチPitchと押鍵された鍵の座標iPitとの差の絶対値)の方が小さかった場合には、演奏データ正誤判定部34は、ポインタmeplayとして、ポインタmepをセットする(ステップ1909)。   If the former (the absolute value of the difference between the pitch Pitch of the note data specified by the pointer mep and the coordinate iPit of the pressed key) is smaller in Step 1908, the performance data correctness determination unit 34 The pointer mep is set as the pointer meplay (step 1909).

その後、再生処理部36は、処理対象を、発音中データバッファの次の発音中データに移動させる(ステップ1910)。   Thereafter, the reproduction processing unit 36 moves the processing target to the next sounding data in the sounding data buffer (step 1910).

ステップ1908および1909について以下に説明する。発音中データバッファには、複数の発音中データが格納されている可能性がある。そこで、発音中データバッファ中の発音中データで、所定の条件をみたす(iStatusが「0」で、かつ、発音開始時刻とのずれおよび音高のずれが所定の許容範囲であること)ものの中で、その音高が、最も押鍵された鍵の音高に近いものを見出し、その音符データを示すポインタmeplayを保存し、当該meplayにより示される音符データの発音を行わせている。音符データの発音については、図20を参照して説明する。   Steps 1908 and 1909 will be described below. There is a possibility that a plurality of sounding data are stored in the sounding data buffer. Therefore, among the sounding data in the sounding data buffer satisfying a predetermined condition (iStatus is “0”, and the deviation from the sounding start time and the pitch deviation are within a predetermined allowable range). Thus, the pitch whose pitch is closest to the pitch of the key pressed is found, the pointer meplay indicating the note data is stored, and the note data indicated by the meplay is generated. The pronunciation of the note data will be described with reference to FIG.

図20に示すように、再生処理部36は、ポインタmeplayが存在するか否かを判断する(ステップ2001)。ステップ2001でYesと判断された場合には、再生処理部36は、基本データ中の演奏状態iPStatusが「2」、つまり待機中であるか否かを判断する(ステップ2002)。   As shown in FIG. 20, the reproduction processing unit 36 determines whether or not the pointer meplay exists (step 2001). When it is determined Yes in step 2001, the reproduction processing unit 36 determines whether or not the performance state iPSstatus in the basic data is “2”, that is, whether it is in standby (step 2002).

ステップ9002でNoと判断された場合には、再生処理部36は、ポインタmeplayにより示される音符データに基づく楽音の発音を、楽音生成回路28に対して指示する(ステップ2006)。   If it is determined No in step 9002, the reproduction processing unit 36 instructs the tone generation circuit 28 to generate a tone based on the note data indicated by the pointer meplay (step 2006).

これに対して、ステップ2002でYesと判断された場合には、再生処理部36は、パラメータmGateとして、ポインタmeplayにより示される音符データの発音時間IGateをセットする(ステップ2003)。   On the other hand, when it is determined Yes in step 2002, the reproduction processing unit 36 sets the sound generation time IGate of the note data indicated by the pointer meplay as the parameter mGate (step 2003).

再生処理部36は、発音すべき楽音のベロシティiVelnew=iVel*(1−{abs(INowTick−IwaitStart)/mGate})を算出する(ステップ2004)。また、再生処理部36は、基本データ中の演奏状態iPStatusを「1」にセットする(ステップ2005)。   The reproduction processing unit 36 calculates the velocity iVelnew = iVel * (1− {abs (INowTick−IwaitStart) / mGate}) of the tone to be generated (step 2004). Further, the playback processing unit 36 sets the performance state iPSstatus in the basic data to “1” (step 2005).

ステップ2004においては、押鍵された時刻に相当する現在時刻INowTickと、待機状態となった時刻IwaitStartとの差の絶対値に応じて、差の絶対値が大きくなるのにしたがって発音すべき楽音のベロシティが小さくなるように、当該ベロシティを調整している。特に、本実施の形態においては、発音時間全体に対する、上記差の絶対値の比を算出し、その比に基づいてベロシティを調整している。ここでは、発音時間に対して差の絶対値が大きいこと、つまり比が小さくなるのに伴って、ベロシティは小さくなる。   In step 2004, in accordance with the absolute value of the difference between the current time INowTick corresponding to the time when the key is pressed and the time IwaitStart in the standby state, the musical sound to be sounded as the absolute value of the difference increases. The velocity is adjusted so that the velocity becomes smaller. In particular, in the present embodiment, the ratio of the absolute value of the difference with respect to the entire sounding time is calculated, and the velocity is adjusted based on the ratio. Here, the velocity becomes smaller as the absolute value of the difference with respect to the sound generation time is larger, that is, as the ratio becomes smaller.

次いで、再生処理部36は、ポインタmeplayにより示される音符データに基づく楽音の発音を、楽音生成回路28に対して指示する(ステップ2006)。   Next, the playback processing unit 36 instructs the tone generation circuit 28 to generate a tone based on the note data indicated by the pointer meplay (step 2006).

再生処理部36は、ポインタmeplayにより示される音符データにおいて、再生時の状態iPlayStatusを「1(ミディイベントおよびノートオンの双方あり)」にセットする(ステップ2007)。   The playback processing unit 36 sets the playback state iPlayStatus to “1 (both midi event and note-on)” in the note data indicated by the pointer “meplay” (step 2007).

次に、本実施の形態にかかる音符データからの検索処理について説明する。図21〜図23は、本実施の形態にかかる音符データからの検索処理の例を示すフローチャートである。   Next, search processing from note data according to the present embodiment will be described. 21 to 23 are flowcharts showing examples of search processing from note data according to the present embodiment.

図21に示すように、再生処理部36は、ポインタmeplayが存在するか否かを判断し(ステップ2101)、存在しない場合には(ステップ2101でNo)、処理を終了する。   As shown in FIG. 21, the reproduction processing unit 36 determines whether or not the pointer “meplay” exists (step 2101), and when it does not exist (No in step 2101), the processing ends.

ステップ2101でYesと判断された場合には、再生処理部36は、再生制御データの基本データバッファを検索する(ステップ2102)。再生処理部36は、全てのトラックについての検索が終了していなければ(ステップ2103でNo)、トラックデータ(図3(a))を参照して、処理対象となるトラックデータのトラック種類iPlayTypeから、当該トラックが演奏データであるか否かを判断する(ステップ2104)。   If it is determined Yes in step 2101, the reproduction processing unit 36 searches the basic data buffer for reproduction control data (step 2102). If the search for all the tracks has not been completed (No in step 2103), the reproduction processing unit 36 refers to the track data (FIG. 3 (a)) from the track type iPlayType of the track data to be processed. Then, it is determined whether or not the track is performance data (step 2104).

ステップ2104でNoと判断された場合には、再生処理部36は、処理対象を次のトラックに移動する(ステップ2105)。   If it is determined No in step 2104, the reproduction processing unit 36 moves the processing target to the next track (step 2105).

ステップ2104でYesと判断された場合には、再生処理部36は、当該処理対象となるトラックについて、ポインタmepとして、基本データ中のMidiEvent[トラック番号]をセットする(ステップ2106)。   If it is determined Yes in step 2104, the playback processing unit 36 sets MidiEvent [track number] in the basic data as the pointer mep for the track to be processed (step 2106).

再生処理部36および演奏データ正誤判定部34は、処理対象となっているトラックについて音符データの検索が終了する(音符データの末尾のレコードとなる:ステップ2201でYes)まで、ステップ2202以下の処理を実行する。   The reproduction processing unit 36 and the performance data correct / incorrect determination unit 34 perform the processing from step 2202 onward until the search for the note data for the track to be processed ends (becomes the last record of the note data: Yes in step 2201). Execute.

ステップ2201でNoと判断された場合には、演奏データ正誤判定部34は、現在時刻INowTickと、mepにより特定される音符データ中の発音開始時刻ITimeとを比較して、ITime−INowTickが、許容時間を示す所定の閾値以上であるか否かを判断する(ステップ2202)。ステップ2202でYesと判断された場合には、ステップ2301に進む。   If it is determined No in step 2201, the performance data correctness / incorrectness determination unit 34 compares the current time INowTick with the sounding start time ITime in the note data specified by mep, and ITime-INowTick is allowed. It is determined whether or not a predetermined threshold value is exceeded (step 2202). If “Yes” is determined in step 2202, the process proceeds to step 2301.

その一方、ステップ2202でNoと判断された場合には、演奏データ正誤判定部34は、0<ITime−INowTick<所定の閾値であるか否かを判断する(ステップ2203)。   On the other hand, if it is determined No in step 2202, the performance data correctness determination unit 34 determines whether or not 0 <ITime-InowTick <predetermined threshold value (step 2203).

ステップ2203でYesと判断された場合には、演奏データ正誤判定部34は、押鍵された鍵の座標iPitを取得し(ステップ2504)、取得した座標iPitが、ポインタmepにより特定される音符データ中の、親指の横方向の座標および小指の横方向の座標の範囲内に含まれるか否か(sfigPosX[0]<iPit<sfigPosX[4])であるか否かを判断する(ステップ2205)。   If it is determined Yes in step 2203, the performance data correctness determination unit 34 acquires the coordinate iPit of the key that has been pressed (step 2504), and the acquired coordinate iPit is the note data specified by the pointer mep. It is determined whether or not it is included within the range of the horizontal coordinate of the thumb and the horizontal coordinate of the little finger (sigPosX [0] <iPit <sigPosX [4]) (step 2205). .

ステップ2205でYesと判断された場合には、演奏データ正誤判定部34は、さらに、ポインタmepにより特定される音符データ中のピッチPitchと押鍵された鍵の座標iPitとの差の絶対値、および、ポインタmeplayにより特定される音符データ中のピッチPitchと押鍵された鍵の座標iPitとの差の絶対値を比較する(ステップ2206)。   If it is determined Yes in step 2205, the performance data correct / incorrect determination unit 34 further determines the absolute value of the difference between the pitch Pitch in the note data specified by the pointer mep and the coordinate iPit of the pressed key, Then, the absolute value of the difference between the pitch Pitch in the note data specified by the pointer meplay and the coordinate iPit of the depressed key is compared (step 2206).

ステップ2206において、前者(ポインタmepにより特定される音符データ中のピッチPitchと押鍵された鍵の座標iPitとの差の絶対値)の方が小さかった場合には、再生処理部36は、ポインタmeplayとして、ポインタmepに示す発音中データのpMeをセットする(ステップ2207)。   In step 2206, if the former (the absolute value of the difference between the pitch Pitch in the note data specified by the pointer mep and the coordinate iPit of the key pressed) is smaller, the reproduction processing unit 36 sets the pointer. As meplay, pMe of sounding data indicated by the pointer mep is set (step 2207).

その後、再生処理部36は、処理対象を次の音符データに移動する(ステップ2208)。   Thereafter, the reproduction processing unit 36 moves the processing target to the next note data (step 2208).

ステップ2202でYesと判断された場合には、再生処理部36は、meplayが存在するか否かを判断する(ステップ2301)。ステップ2301でYesと判断された場合には、再生処理部36は、基本データ中の演奏状態iPStatusが「2」、つまり待機中であるかどかを判断する(ステップ2302)。ステップ2302でNoと判断された場合には、再生処理部36は、ポインタmeplayにより示される音符データの楽音の発音を、楽音生成回路28に対して指示する(ステップ2306)。   If it is determined Yes in step 2202, the reproduction processing unit 36 determines whether or not a meplay exists (step 2301). If it is determined Yes in step 2301, the reproduction processing unit 36 determines whether the performance state iPSStatus in the basic data is “2”, that is, whether the performance is in standby (step 2302). If it is determined No in step 2302, the reproduction processing unit 36 instructs the musical sound generation circuit 28 to generate a musical sound of the note data indicated by the pointer meplay (step 2306).

ステップ2302でYesと判断された場合には、再生処理部36は、パラメータmGateとして、ポインタmeplayにより示される音符データの発音時間IGateをセットする(ステップ2303)。   When it is determined Yes in step 2302, the reproduction processing unit 36 sets the sound generation time IGate of the note data indicated by the pointer meplay as the parameter mGate (step 2303).

再生処理部36は、発音すべき楽音のベロシティiVelnew=iVel*(1−{abs(INowTick−IwaitStart)/mGate})を算出する(ステップ2304)。また、再生処理部36は、基本データ中の演奏状態iPStatusを「1」にセットする(ステップ2305)。   The reproduction processing unit 36 calculates the velocity iVelnew = iVel * (1- {abs (INowTick-IwaitStart) / mGate}) of the musical sound to be generated (step 2304). Further, the reproduction processing unit 36 sets the performance state iPSstatus in the basic data to “1” (step 2305).

ステップ2304においては、押鍵された時刻に相当する現在時刻INowTickと、待機状態となった時刻IwaitStartとの差の絶対値に応じて、差の絶対値が大きくなるのにしたがって発音すべき楽音のベロシティが小さくなるように、当該ベロシティを調整している。特に、本実施の形態においては、発音時間全体に対する、上記差の絶対値の比を算出し、その比に基づいてベロシティを調整している。   In step 2304, according to the absolute value of the difference between the current time INowTick corresponding to the time when the key is pressed and the time IwaitStart in the standby state, the musical sound to be sounded as the absolute value of the difference increases. The velocity is adjusted so that the velocity becomes smaller. In particular, in the present embodiment, the ratio of the absolute value of the difference with respect to the entire sounding time is calculated, and the velocity is adjusted based on the ratio.

次いで、再生処理部36は、ポインタmeplayにより示される音符データに基づく楽音の発音を、楽音生成回路28に対して指示する(ステップ2306)。   Next, the playback processing unit 36 instructs the tone generation circuit 28 to generate a tone based on the note data indicated by the pointer meplay (step 2306).

再生処理部36は、ポインタmeplayにより示される音符データにおいて、再生時の状態iPlayStatusを「1(ミディイベントおよびノートオンの双方あり)」にセットする(ステップ2307)。   The playback processing unit 36 sets the playback state iPlayStatus to “1 (both midi event and note-on)” in the note data indicated by the pointer meplay (step 2307).

本発明においては、音符データに含まれる、ある音符の発音開始時刻より押鍵が先行し、或いは、遅れた場合であっても、その先行或いは押鍵が、許容時間内であれば、対応する音符データにより示される音高の楽音を発音する。すなわち、所定の時間的条件が満たされる場合には、押鍵タイミングのずれを許容する。   In the present invention, even if the key depression precedes or is delayed from the sounding start time of a certain note included in the note data, it corresponds if the preceding or key depression is within the allowable time. A tone with the pitch indicated by the note data is generated. That is, when a predetermined time condition is satisfied, a shift in key pressing timing is allowed.

特に、本実施の形態においては、その発音の際に、本来の発音開始時刻と、実際の押鍵時刻との差の絶対値にしたがって、その音の発音時間全体に対する差の絶対値の比を算出し、その比に基づいて楽音のベロシティを制御している。これにより、演奏者は、押鍵タイミングのずれの度合いを認識することが可能となる。   In particular, in the present embodiment, the ratio of the absolute value of the difference with respect to the entire sounding time of the sound is calculated according to the absolute value of the difference between the original sounding start time and the actual key pressing time. The velocity of the musical tone is controlled based on the calculated ratio. As a result, the performer can recognize the degree of shift in key pressing timing.

また、本実施の形態では、その音符を押鍵する際の親指の位置に対応する鍵と、小指の位置に対応する鍵との間の鍵が押鍵されていれば、音符データにより示される音高の楽音を発音する。すなわち、所定の押鍵位置に関する条件が満たされる場合には、押鍵におけるミスタッチを許容する。   Further, in this embodiment, if a key between the key corresponding to the thumb position when pressing the note and the key corresponding to the little finger position is pressed, it is indicated by the note data. Sounds a musical tone with a pitch. That is, when a condition related to a predetermined key pressing position is satisfied, a mistouch in key pressing is allowed.

また、本実施の形態においては、前記親指の座標と小指の座標との間に位置するような鍵の座標と、音符データにおける鍵盤の座標との差の絶対値が最も小さいような音符データを特定し、特定された音符データの発音が、楽音生成回路に指示される。これにより、ミスタッチがあった場合でも、押鍵された鍵ともっとも近い音高の音符データを発音させることができる。   Further, in the present embodiment, the note data having the smallest absolute value of the difference between the coordinate of the key located between the coordinate of the thumb and the coordinate of the little finger and the coordinate of the keyboard in the note data is obtained. The musical tone generation circuit is instructed to specify the pronunciation of the specified note data. Thereby, even when there is a mistouch, it is possible to generate the note data having the pitch closest to the pressed key.

これにより、一定範囲内の時間のずれや押鍵する鍵のずれがあった場合にも発音を許容することで、正しい押鍵タイミングおよび正しい鍵位置の押鍵を認識するための中間的な段階を設けることが可能となる。   This allows an intermediate stage for recognizing the correct key press timing and key press at the correct key position by allowing the sound to be generated even when there is a time shift within a certain range or a key shift. Can be provided.

また、本実施の形態においては、指の座標の算出に際して、鍵の座標および押鍵すべき指を示す情報に基づいて、隣接する指が、それぞれ、隣接する白鍵に位置するように、指の鍵盤上の位置を示す指座標情報が生成される。これにより、押鍵される指以外の他の指の位置(座標)を適切に算出することができる。   Further, in the present embodiment, when calculating the finger coordinates, based on the information indicating the key coordinates and the finger to be pressed, the adjacent fingers are positioned on the adjacent white keys. Finger coordinate information indicating the position on the keyboard is generated. Thereby, the position (coordinates) of a finger other than the finger to be pressed can be calculated appropriately.

さらに、本実施の形態においては、和音構成音を構成する他の音符の音符データを参照して、和音構成音を押鍵している指については、前記押鍵している鍵の座標を指座標情報としている。これにより、押鍵されている他の指も考慮した音符データにおける指の位置(座標)を算出することが可能となる。   Further, in the present embodiment, with reference to the note data of other notes constituting the chord constituent sound, for the finger pressing the chord constituent sound, the coordinates of the key being pressed are indicated. It is coordinate information. Thereby, it is possible to calculate the position (coordinates) of the finger in the note data taking into consideration other fingers that are pressed.

本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。   The present invention is not limited to the above embodiments, and various modifications can be made within the scope of the invention described in the claims, and these are also included in the scope of the present invention. Needless to say.

たとえば、上記実施の形態においては、押鍵情報にしたがって、当該押鍵された鍵の音高が、音符データの音高と一致しない場合にも、一定の条件が満たされれば、音符データにしたがった楽音が発音されている。しかしながら、これに限定されず、音高は、音符データ中のものではなく、実際された鍵のものであっても良い。これにより、演奏者は、ミスタッチをしたこと自体を認識することができる。   For example, in the above embodiment, according to the key pressing information, even if the pitch of the key pressed does not match the pitch of the note data, the note data is used if a certain condition is satisfied. The sound is pronounced. However, the present invention is not limited to this, and the pitch may be that of an actual key, not in the note data. As a result, the performer can recognize that a mistouch has occurred.

図1は、本実施の形態にかかる演奏練習支援システムのハードウェア構成を示すブロックダイヤグラムである。FIG. 1 is a block diagram showing a hardware configuration of a performance practice support system according to the present embodiment. 図2は、本実施の形態にかかる演奏練習支援システムの概要を示すブロックダイヤグラムである。FIG. 2 is a block diagram showing an outline of the performance practice support system according to the present embodiment. 図3(a)は、トラックごとの属性を示すトラックデータを示す図、図3(b)は、基本データバッファを示す図、図3(c)は、発音中の音符データの格納バッファ(発音中データバッファ)を示す図である。3A is a diagram showing track data indicating attributes for each track, FIG. 3B is a diagram showing a basic data buffer, and FIG. 3C is a storage buffer (pronunciation of note data being generated). It is a figure which shows a middle data buffer. 図4は、本実施の形態にかかる音符データの構成を示す図である。FIG. 4 is a diagram showing a configuration of note data according to the present embodiment. 図5は、本実施の形態にかかる演奏練習支援システムにて実行されるメインフローの例を示す図である。FIG. 5 is a diagram showing an example of a main flow executed in the performance practice support system according to the present embodiment. 図6は、本実施の形態にかかる演奏支援情報生成処理の例を示すフローチャートである。FIG. 6 is a flowchart showing an example of performance support information generation processing according to the present embodiment. 図7は、本実施の形態にかかる押鍵する指の座標設定処理の例を示すフローチャートである。FIG. 7 is a flowchart illustrating an example of coordinate setting processing for a finger to be pressed according to the present embodiment. 図8は、ステップ708の同じタイミングで押鍵する指の座標の設定処理の例を示すフローチャートである。FIG. 8 is a flowchart illustrating an example of the process for setting the coordinates of the finger to be pressed at the same timing in step 708. 図9は、本実施の形態にかかる現在の状況を考慮した座標設定処理の例を示すフローチャートである。FIG. 9 is a flowchart showing an example of coordinate setting processing in consideration of the current situation according to the present embodiment. 図10は、本実施の形態にかかる現在の状況を考慮した座標設定処理の例を示すフローチャートである。FIG. 10 is a flowchart illustrating an example of the coordinate setting process in consideration of the current situation according to the present embodiment. 図11は、本実施の形態にかかる現在の状況を考慮した座標設定処理の例を示すフローチャートである。FIG. 11 is a flowchart illustrating an example of coordinate setting processing in consideration of the current situation according to the present embodiment. 図12は、本実施の形態にかかる再生処理の例を示すフローチャートである。FIG. 12 is a flowchart showing an example of the reproduction process according to the present embodiment. 図13は、本実施の形態にかかる再生処理の例を示すフローチャートである。FIG. 13 is a flowchart showing an example of the reproduction process according to the present embodiment. 図14は、本実施の形態にかかる時刻計算処理の例を示すフローチャートである。FIG. 14 is a flowchart illustrating an example of time calculation processing according to the present embodiment. 図15は、本実施の形態にかかる発音処理の例を示すフローチャートである。FIG. 15 is a flowchart showing an example of the sound generation process according to the present embodiment. 図16は、本実施の形態にかかる発音処理の例を示すフローチャートである。FIG. 16 is a flowchart showing an example of the sound generation process according to the present embodiment. 図17は、本実施の形態にかかる消音処理の例を示すフローチャートである。FIG. 17 is a flowchart illustrating an example of the mute process according to the present embodiment. 図18は、本実施の形態にかかるMIDI−IN処理の例を示すフローチャートである。FIG. 18 is a flowchart showing an example of MIDI-IN processing according to the present embodiment. 図19は、本実施の形態にかかる発音中データバッファからの検索処理の例を示すフローチャートである。FIG. 19 is a flowchart showing an example of search processing from the sounding data buffer according to this embodiment. 図20は、本実施の形態にかかる発音中データバッファからの検索処理の例を示すフローチャートである。FIG. 20 is a flowchart showing an example of search processing from the sounding data buffer according to the present embodiment. 図21は、本実施の形態にかかる音符データからの検索処理の例を示すフローチャートである。FIG. 21 is a flowchart showing an example of search processing from note data according to the present embodiment. 図22は、本実施の形態にかかる音符データからの検索処理の例を示すフローチャートである。FIG. 22 is a flowchart showing an example of search processing from note data according to the present embodiment. 図23は、本実施の形態にかかる音符データからの検索処理の例を示すフローチャートである。FIG. 23 is a flowchart showing an example of search processing from note data according to the present embodiment.

符号の説明Explanation of symbols

12 CPU
14 RAM
16 ROM
18 入力装置
20 表示装置
22、24 MIDI_I/F
26 鍵盤
28 楽音生成回路
30 サウンドシステム
32 演奏支援情報生成部
34 演奏動作正誤判定部
36 再生処理部
12 CPU
14 RAM
16 ROM
18 Input device 20 Display device 22, 24 MIDI_I / F
26 keyboard 28 musical tone generation circuit 30 sound system 32 performance support information generation unit 34 performance operation correctness determination unit 36 reproduction processing unit

Claims (7)

夫々発音開始タイミング、発音すべき楽音の長さを示す発音時間、音高、および、発音すべき楽音の大きさを示すベロシティを含む複数の音符データを格納する音符データバッファと、
発音中データバッファと、
発音開始タイミングが到来した音符データを前記音符データバッファ内から検索し、当該検索された音符データを特定する発音中データを前記発音中データバッファに格納する格納手段と、
演奏操作に基づくタイミングで入力される音高情報を順次受け入れる入力手段と、
前記発音中データバッファに格納された発音中データの中から、発音が行われていないことを示す発音保留フラグを有し、かつ当該発音中データにより特定される音符データの発音開始タイミングと前記入力手段による音高情報の入力タイミングとの差が所定時間内の発音中データを検索する第1の検索手段と、
この第1の検索手段により検索された発音中データにより特定される音符データの音高と前記音高情報の音高との差が所定範囲内であるか否か判定する第1の判定手段と、
この第1の判定手段により所定範囲内と判定された音符データの音高に基づいた楽音の発音を接続された音源に指示するとともに、当該音符データに対応する発音中データに含まれる発音保留フラグを消去する第1の発音指示手段と、
前記音符データバッファに格納された音符データの中から、発音開始タイミングが前記音高情報の入力タイミングより後でかつ両タイミングの差が所定時間内の音符データを検索する第2の検索手段と、
この第2の検索手段により検索された音符データの音高と前記音高情報の音高との差が所定範囲内であるか否か判定する第2の判定手段と、
この第2の判定手段により所定範囲内と判定された音符データの音高に基づいた楽音の発音を接続された音源に指示する第2の発音指示手段と、
を有し、
前記第1の判定手段および第2の判定手段は、前記発音開始タイミングと、前記押鍵タイミングとの差の絶対値、および、前記発音時間に基づいて、前記差の絶対値が大きくなるのに伴って、前記音源にて発音すべき楽音のベロシティを小さくすることを特徴とする演奏練習支援装置。
A note data buffer for storing a plurality of note data including a start timing, a pronunciation time indicating the length of a musical sound to be generated, a pitch, and a velocity indicating a magnitude of the musical sound to be generated;
The data buffer during pronunciation,
Storage means for searching for note data at which the sounding start timing has arrived from the note data buffer, and storing sounding data for specifying the searched note data in the sounding data buffer;
Input means for sequentially receiving pitch information input at a timing based on performance operation;
The sound generation start timing and the input of the note data specified by the sounding data having a sounding pending flag indicating that sounding is not performed from the sounding data stored in the sounding data buffer First search means for searching for sounding data whose difference from the input timing of pitch information by the means is within a predetermined time;
First determination means for determining whether or not the difference between the pitch of the note data specified by the on-phonetic data searched by the first search means and the pitch of the pitch information is within a predetermined range; ,
The first determination means instructs the connected sound source to generate a musical tone based on the pitch of the note data determined to be within the predetermined range, and also generates a pronunciation on hold flag included in the on-pronunciation data corresponding to the note data. First pronunciation instruction means for erasing
Second search means for searching note data stored in the note data buffer for note data whose sounding start timing is later than the input timing of the pitch information and whose timing difference is within a predetermined time;
Second determination means for determining whether or not a difference between a pitch of the note data searched by the second search means and a pitch of the pitch information is within a predetermined range;
Second sound generation instruction means for instructing a connected sound source to generate a musical sound based on the pitch of the note data determined by the second determination means as being within a predetermined range;
Have
The first determination means and the second determination means are configured to increase the absolute value of the difference based on the absolute value of the difference between the sound generation start timing and the key press timing and the sound generation time. Along with this, a performance practice support device characterized in that the velocity of the musical sound to be generated by the sound source is reduced.
前記第1の判定手段および第2の判定手段は、前記発音時間に対する差の絶対値の比を算出し、前記比が小さくなるのに伴って、前記音源にて発音すべき楽音のベロシティを小さくすることを特徴とする請求項1に記載の演奏練習支援装置。   The first determination means and the second determination means calculate the ratio of the absolute value of the difference with respect to the sound generation time, and decrease the velocity of the musical sound to be generated by the sound source as the ratio decreases. The performance practice support device according to claim 1, wherein: 前記入力手段は、押鍵された鍵に対応する音高情報を当該押鍵のタイミングに応じて出力する鍵盤が接続されるとともに、前記音符データはさらに、前記音高に対応する前記鍵盤上の鍵の位置を示す座標、および、押鍵すべき指を示す情報を含み、
前記音符データの前記鍵の座標および押鍵すべき指を示す情報に基づいて、当該押鍵すべき指で押鍵した場合に他の指の鍵盤上の位置を示す指座標情報を生成し、当該生成された指座標情報を前記音符データバッファに格納する支援情報生成手段をさらに備え、
前記第1及び第2の判定手段は、前記指座標情報を参照して、前記音高情報が示す音高に対応する鍵の座標が、特定の2つの指の座標の間に位置するときに前記所定範囲内であると判定することを特徴とする請求項1または2に記載の演奏練習支援装置。
The input means is connected to a keyboard that outputs pitch information corresponding to the pressed key in accordance with the timing of the key press, and the note data is further stored on the keyboard corresponding to the pitch. Including coordinates indicating the position of the key and information indicating the finger to be pressed,
Based on the coordinate of the key of the note data and information indicating the finger to be pressed, finger coordinate information indicating the position of the other finger on the keyboard is generated when the key to be pressed is pressed, Further comprising support information generating means for storing the generated finger coordinate information in the note data buffer;
The first and second determining means refer to the finger coordinate information, and when the coordinates of the key corresponding to the pitch indicated by the pitch information are located between the coordinates of two specific fingers. The performance practice support device according to claim 1, wherein the performance practice support device is determined to be within the predetermined range.
前記支援情報生成手段が、前記鍵の座標および押鍵すべき指を示す情報に基づいて、隣接する指が、それぞれ、隣接する白鍵に位置するように、前記他の指の鍵盤上の位置を示す指座標情報を生成することを特徴とする請求項3に記載の演奏練習支援装置。   Based on the information indicating the coordinates of the key and the finger to be pressed by the support information generating means, the positions of the other fingers on the keyboard so that the adjacent fingers are respectively positioned in the adjacent white keys 4. The performance practice support apparatus according to claim 3, wherein finger coordinate information indicating the position is generated. 前記支援情報生成手段は、前記音符データが和音構成音のひとつを示す場合、他の和音構成音を示す音符データの音高に対応する鍵の座標を指座標情報とすることを特徴とする請求項4に記載の演奏練習支援装置。   The support information generating means, when the note data indicates one of chord constituent sounds, uses the coordinate of a key corresponding to the pitch of the note data indicating another chord constituent sound as finger coordinate information. Item 5. The performance practice support device according to Item 4. 前記特定の2つの指の座標は、親指の座標および小指の座標であることを特徴とする請求項3ないし5の何れか一項に記載の演奏練習支援装置。   6. The performance practice support apparatus according to claim 3, wherein the coordinates of the two specific fingers are a thumb coordinate and a little finger coordinate. コンピュータに、
夫々発音開始タイミング、音高を含む複数の音符データを格納する音符データバッファから、発音開始タイミングが到来した音符データを検索し、当該検索された音符データを特定する情報及び発音が行われていないことを示す発音保留フラグを含む発音中データを発音中データバッファに格納するステップと、
演奏操作に基づくタイミングで音高情報を順次受け入れるステップと、
前記発音中データバッファに格納された発音中データの中から、前記発音保留フラグを有し、かつ当該発音中データにより特定される音符データの発音開始タイミングと前記音高情報の入力タイミングとの差が所定時間内の発音中データを検索するステップと、
この検索された発音中データにより特定される音符データの音高と前記音高情報の音高との差が所定範囲内であるか否か判定する第1の判定ステップと、
所定範囲内と判定された音符データの音高に基づいた楽音の発音を接続された音源に指示するとともに、当該音符データに対応する発音中データに含まれる発音保留フラグを消去するステップと、
前記音符データバッファに格納された音符データの中から、発音開始タイミングが前記音高情報の入力タイミングより後でかつ両タイミングの差が所定時間内の音符データを検索するステップと、
この検索された音符データの音高と前記音高情報の音高との差が所定範囲内であるか否か判定する第2の判定ステップと、
所定範囲内と判定された音符データの音高に基づいた楽音の発音を前記音源に指示するステップと、
を実行させ、
前記第1の判定ステップおよび第2の判定ステップが、
前記発音開始タイミングと、前記押鍵タイミングとの差の絶対値、および、前記発音時間に基づいて、前記差の絶対値が大きくなるのに伴って、前記音源にて発音すべき楽音のベロシティを小さくするステップを含むことを特徴とする演奏練習支援処理のプログラム。
On the computer,
Each note data buffer that stores a plurality of note data including the sounding start timing and the pitch is searched for the note data at which the sounding start timing has arrived, and the information for identifying the searched note data and the pronunciation are not performed. Storing sounding data including a sounding pending flag indicating that in the sounding data buffer;
Sequentially receiving pitch information at timings based on performance operations;
The difference between the sounding start timing of the note data having the sounding pending flag and specified by the sounding data and the input timing of the pitch information among the sounding data stored in the sounding data buffer Searching for sounding data within a predetermined time;
A first determination step of determining whether or not a difference between a pitch of the note data specified by the searched sounding data and a pitch of the pitch information is within a predetermined range;
Instructing the connected sound source to generate a musical tone based on the pitch of the note data determined to be within the predetermined range, and erasing the pronunciation on hold flag included in the on-pronunciation data corresponding to the note data;
A step of searching for note data stored in the note data buffer for note data whose pronunciation start timing is later than the input timing of the pitch information and whose difference between both timings is within a predetermined time; and
A second determination step of determining whether or not a difference between the pitch of the searched note data and the pitch information of the pitch information is within a predetermined range;
Instructing the sound source to generate a musical sound based on the pitch of the note data determined to be within the predetermined range;
And execute
The first determination step and the second determination step include:
Based on the absolute value of the difference between the sound generation start timing and the key press timing, and the sound generation time, the velocity of the musical sound to be generated by the sound source is increased as the absolute value of the difference increases. A performance practice support processing program characterized by including a step of reducing.
JP2007288019A 2007-11-06 2007-11-06 Performance practice support device and performance practice support processing program Expired - Fee Related JP5145875B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007288019A JP5145875B2 (en) 2007-11-06 2007-11-06 Performance practice support device and performance practice support processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007288019A JP5145875B2 (en) 2007-11-06 2007-11-06 Performance practice support device and performance practice support processing program

Publications (2)

Publication Number Publication Date
JP2009115987A true JP2009115987A (en) 2009-05-28
JP5145875B2 JP5145875B2 (en) 2013-02-20

Family

ID=40783207

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007288019A Expired - Fee Related JP5145875B2 (en) 2007-11-06 2007-11-06 Performance practice support device and performance practice support processing program

Country Status (1)

Country Link
JP (1) JP5145875B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014071329A (en) * 2012-09-28 2014-04-21 Xing Inc Program, music output method, and music output system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03293699A (en) * 1990-04-11 1991-12-25 Brother Ind Ltd Recorded orchestral accompaniment player
JP2002301262A (en) * 2001-04-06 2002-10-15 Data East Kk Game device using music, its computer program and program storage medium
JP2003058154A (en) * 2001-08-13 2003-02-28 Casio Comput Co Ltd Musical performance practicing device and program for musical performance practicing process
JP2005201966A (en) * 2004-01-13 2005-07-28 Daiichikosho Co Ltd Karaoke machine for automatically controlling background chorus sound volume
JP2005249844A (en) * 2004-03-01 2005-09-15 Kawai Musical Instr Mfg Co Ltd Device and program for performance indication
JP2007140067A (en) * 2005-11-17 2007-06-07 Casio Comput Co Ltd Musical sound generator, and program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03293699A (en) * 1990-04-11 1991-12-25 Brother Ind Ltd Recorded orchestral accompaniment player
JP2002301262A (en) * 2001-04-06 2002-10-15 Data East Kk Game device using music, its computer program and program storage medium
JP2003058154A (en) * 2001-08-13 2003-02-28 Casio Comput Co Ltd Musical performance practicing device and program for musical performance practicing process
JP2005201966A (en) * 2004-01-13 2005-07-28 Daiichikosho Co Ltd Karaoke machine for automatically controlling background chorus sound volume
JP2005249844A (en) * 2004-03-01 2005-09-15 Kawai Musical Instr Mfg Co Ltd Device and program for performance indication
JP2007140067A (en) * 2005-11-17 2007-06-07 Casio Comput Co Ltd Musical sound generator, and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014071329A (en) * 2012-09-28 2014-04-21 Xing Inc Program, music output method, and music output system

Also Published As

Publication number Publication date
JP5145875B2 (en) 2013-02-20

Similar Documents

Publication Publication Date Title
JP2022063777A (en) Performance information prediction device, effective string vibration determination model training device, performance information generation system, performance information prediction method, and effective string vibration determination model training method
JP2008015195A (en) Musical piece practice support device
JP2008276187A (en) Musical performance processing apparatus and musical performance processing program
JP4320782B2 (en) Performance control device and program
US20050257667A1 (en) Apparatus and computer program for practicing musical instrument
JP6939922B2 (en) Accompaniment control device, accompaniment control method, electronic musical instrument and program
JP2008145564A (en) Automatic music arranging device and automatic music arranging program
JP5029258B2 (en) Performance practice support device and performance practice support processing program
JP4361327B2 (en) Electronic musical instrument performance evaluation device
JP2009169103A (en) Practice support device
JP5145875B2 (en) Performance practice support device and performance practice support processing program
CN108573689B (en) Electronic musical instrument, musical sound generating method, and recording medium
JP3684774B2 (en) Performance instruction device and medium recording program
JP3753798B2 (en) Performance reproduction device
JP4891135B2 (en) Evaluation device
JP2007178697A (en) Musical performance evaluating device and program
JP2007078724A (en) Electronic musical instrument
JP4618704B2 (en) Code practice device
JP3005915B2 (en) Electronic musical instrument
JP2021081601A (en) Musical sound information output device, musical sound generation device, musical sound information generation method, and program
WO2023182005A1 (en) Data output method, program, data output device, and electronic musical instrument
JP5742592B2 (en) Musical sound generation device, musical sound generation program, and electronic musical instrument
WO2023032137A1 (en) Data modification method, data reproduction method, program, data modification device
JP7425558B2 (en) Code detection device and code detection program
JP2016057389A (en) Chord determination device and chord determination program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101028

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120904

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121112

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151207

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees