JP2009115987A - Performance practice support device and performance practice support processing program - Google Patents
Performance practice support device and performance practice support processing program Download PDFInfo
- 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
Links
Images
Landscapes
- Auxiliary Devices For Music (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
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に交互に送出して点滅させる。
たとえば、演奏教習装置においては、複数の教習段階を設けるのが望ましい。たとえば、押鍵するタイミングを知るために、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
図1の例では、CPU12、RAM14、ROM16、入力装置18、表示装置20およびMIDI_I/F22は、通常のパーソナルコンピュータにより実現され得る。また、MIDI_I/F24、鍵盤26、楽音生成回路28およびサウンドシステム30は、通常の電子鍵盤楽器により実現され得る。したがって、本実施の形態では、パーソナルコンピュータと電子鍵盤楽器とをMIDIケーブルで接続することにより、演奏練習支援システムを構成することができる。
In the example of FIG. 1, the
CPU14は、演奏練習支援システムの制御、後述する音符データ等の読み出し、演奏支援情報の生成、MIDI_I/F22から出力すべきMIDIデータの生成などの処理を実行する。ROM16は、プログラムやプログラムの実行の際に使用される定数などを記憶する。RAM14は、プログラムの実行の過程で必要な変数、入力データ、出力データなどを一時的に記憶する。
The
入力装置18は、キーボードやマウスを含み、演奏者により入力装置18に入力された情報をCPU12に与える。表示装置12の画面上には、楽譜や鍵盤を描いた画像データが表示され得る。
The
楽音生成回路28は、いわゆる音源であり、CPU12からMIDI_I/F24を介して与えられたMIDIデータに基づいて、所定の音高でかつ所定の音量(ベロシティ)の楽音データを生成する。鍵盤26は、演奏者が押鍵した鍵の情報を押鍵情報として、また、離鍵した件の情報を離鍵情報として出力する。押鍵情報は、MIDI_I/F22、24を介して、CPU12に伝達される。
The
サウンドシステム30は、増幅器、スピーカなどを含み、楽音生成回路28により生成された楽音データに基づく音響信号を出力する。
The
図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
また、鍵盤26からは、前述したように押鍵情報および離鍵情報(符号202参照)が与えられる。演奏動作正誤判定部34は、運指情報・指座標情報201と、押鍵情報・離鍵情報202に基づいて、演奏の正誤を判定する。また、楽曲データのうち伴奏パートのデータ(伴奏データ)は、再生処理部36により取得される。演奏の正誤の情報とは、押鍵すべきタイミングで、押鍵すべき鍵が押鍵されたか否かを示す情報、ずれが生じている場合には、タイミングのずれの程度および音高のずれの程度を示す情報などを含む。
Further, from the
再生処理部36は、演奏の正誤情報にしたがって、演奏パートのデータのうち所定の条件を満たすデータに対応する楽音を再生し、或いは、タイミングのずれや音高のずれにしたがってベロシティを変化させた楽音を再生する。また、伴奏データについては、当該伴奏データに示される音高およびベロシティの楽音を再生する。
The
図2に示す演奏支援情報生成部32および演奏動作正誤判定部34は、図1に示すCPU12により実現される。また、図2に示す再生処理部36は、図1に示すCPU12および楽音生成回路28により実現される。
The performance support
概略的に、本実施の形態にかかる演奏練習支援システムにおいては、
第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
図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
図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
発音開始時刻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
図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
発音中の音符データ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
押鍵フラグ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
図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
ここに、ステップ502においては、図3や図4に示す、トラックデータ、発音中データ、基本データも、RAM14やROM16から必要に応じて読み出される。演奏支援情報の生成(ステップ503)については後に詳述する。
Here, in
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
再生中で、かつ、停止指示を受け付けた場合には(ステップ508でYes)、CPU12は、図3(b)の基本データ中の途中停止用フラグinterruptionを「TRUE」にセットする(ステップ509)。
If playback is in progress and a stop instruction is accepted (Yes in step 508), the
ステップ505〜509は、終了指示が受け付けられる(ステップ504でYes)まで繰り返される。
図5のステップ503の演奏支援情報生成処理についてより詳細に説明する。図6は、演奏支援情報生成処理の例を示すフローチャートである。演奏支援情報生成部32(図2参照)は、処理で使用する変数を初期化して(ステップ601)、音符データごとに(つまり音符ごとに)、押鍵する指の座標を算出して、座標を示す情報等を音符データのレコード中、演奏支援情報としてRAM14に格納する(ステップ602)。また、演奏支援情報生成部32は、上記押鍵している状況(現在の状況)を考慮して他の指の座標を算出し、当該座標を示す情報等を、RAM14中の音符データバッファに、演奏支援情報として格納する(ステップ603)。
The performance support information generation process at
次に、ステップ602の押鍵する指の座標設定処理について図7を参照して説明する。図7に示すように、演奏支援情報生成部32は、処理対象の音符データを特定するポインタmeを音符データの先頭レコードに設定する(ステップ701)。演奏支援情報生成部32は、全ての音符データについて処理が終了するまで(ステップ702でYes)、ステップ703以下の処理を実行する。
Next, the coordinate setting process of the finger to be pressed in
まず、演奏支援情報生成部32は、指を使っている否か、つまり、押鍵しているか否かを示すフラグiFigOn[0]〜[4]、同時に押鍵する鍵の中に黒鍵があるか否かを示すフラグiBK[0]〜[4]、および、処理対象となる指を特定するパラメータifigをそれぞれ初期化する(ステップ703)。
First, the performance support
演奏支援情報生成部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
これに対して、パラメータ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
次いで、演奏支援情報生成部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
次いで、演奏支援情報生成部32は、指を特定するパラメータifigをインクリメントする(ステップ711)。
Next, the performance support
図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
また、演奏支援情報生成部32は、パラメータcfigHとして、当該音符データについて割り振られた運指cfigをセットする(ステップ802)とともに、パラメータiFigOn[cfigH]として「1」をセットする(ステップ803)。
In addition, the performance support
次いで、演奏支援情報生成部32は、当該音符データについて、指cfigHに関する指の座標sfigPosX[cfigH]について、上記ポインタmehで特定される音符データについての鍵盤の座標iPosXをセットする(ステップ804)。これらセットされた値は、RAM14に記憶される。
Next, the performance support
演奏支援情報生成部32は、ポインタmehが、処理対象となっている音符データの和音の終端音へのポインタpHTailと一致するか否かを判断し(ステップ805)、ステップ805でYesと判断される場合には、ステップ711に進む。ステップ805でNoと判断された場合には、ポインタmehを次の音符データを示すように移動させて(ステップ806)、ステップ802に戻る。
The performance support
図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
次に、図6のステップ603についてより詳細に説明する。図9〜図11は、現在の状況を考慮した座標設定処理の例を示すフローチャートである。図9に示すように、演奏支援情報生成部32は、処理対象の音符データを特定するポインタmeを音符データの先頭レコードに設定する(ステップ901)。演奏支援情報生成部32は、全ての音符データについて処理が終了するまで(ステップ902でYes)、ステップ903以下の処理を実行する。
Next,
まず、演奏支援情報生成部32は、図7のステップ703と同様に、指を使っている否かを示すフラグiFigOn[0]〜[4]、同時に押鍵する鍵の中に黒鍵があるか否かを示すフラグiBK[0]〜[4]、および、処理対象となる指を特定するパラメータifigをそれぞれ初期化する(ステップ903)。
First, the performance support
演奏支援情報生成部32は、ポインタmehとして、処理対象となっている音符データの和音の先頭音へのポインタpHTopをセットする(ステップ904)。
The performance support
演奏支援情報生成部32は、パラメータcfigHとして、当該音符データについて割り振られた運指cfigをセットする(ステップ905)とともに、パラメータiFigOn[cfigH]として「1」をセットする(ステップ906)。
The performance support
演奏支援情報生成部32は、ポインタmehが、処理対象となっている音符データの和音の終端音へのポインタpHTailと一致するか否かを判断し(ステップ907)、ステップ907でYesと判断される場合には、ステップ1001に進む。ステップ907でNoと判断された場合には、ポインタmehを次の音符データを示すように移動させて(ステップ908)、ステップ905に戻る。
The performance support
ステップ905〜ステップ908においては、和音構成音cfigHについて、iFigOn[cfigH]に初期値「−1」を格納している。
In
図10に示すように、演奏支援情報生成部32は、パラメータifigを「0」に初期化する(ステップ1001)。次いで、演奏支援情報生成部32は、パラメータifigが「5」より小さいか否かを判断する(ステップ1002)。ステップ1002でYesと判断される場合には、演奏支援情報生成部32は、処理対象となる音符データにおいて、フラグiFigOn[ifig]が「0」であるか否かを判断する(ステップ1003)。
As shown in FIG. 10, the performance support
ステップ906においては、フラグiFigOn[cfigH]として「1」がセットされている。つまり、和音構成音については、指が使われていることを示すフラグ「1」がセットされている。したがって、ステップ1003でYesと判断されることは、パラメータifigで示される指が、押鍵のために使われていないことを意味している。
In
ステップ1003でYesと判断された場合には、演奏支援情報生成部32は、指の横方向の座標の高い側の候補値sfigHおよび低い側の候補値sfigLに、初期値「−1」を与える(ステップ1004)。演奏支援情報生成部32は、パラメータifgを、ifig+1と設定して(ステップ1005)、パラメータifgが、0以上5未満であるか否かを判断する(ステップ1006)。
When it is determined Yes in
ステップ1006でYesと判断された場合には、演奏支援情報生成部32は、iFigOn[ifg]が「1」であるか否かを判断する(ステップ1007)。ここでは、パラメータifgで特定される指が押鍵しているか否かが判断されている。
If it is determined Yes in
ステップ1007でYesと判断された場合には、演奏支援情報生成部32は、sFigHとして、処理対象となる音符データにおけるsfigPosX[ifg]に、2*(ifig−ifg)を加えた値をセットする(ステップ1008)。
When it is determined Yes in
次いで、演奏支援情報生成部32は、パラメータifgをインクリメントして(ステップ1009)、ステップ1006に戻る。
Next, the performance support
ステップ1007〜ステップ1009の処理においては、パラメータifigで特定される指の右側に押鍵している指があるか否かが判断され、指が存在する場合には、その指ifgについての横方向の座標sfigPosX[ifg]より白鍵1つだけ右側の鍵に相当する座標値を、sfigHとしてセットしている。
In the processing of
ステップ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
ステップ1103でYesと判断された場合には、演奏支援情報生成部32は、sFigHとして、処理対象となる音符データにおけるsfigPosX[ifg]に、2*(ifig−ifg)を加えた値をセットする(ステップ1104)。
If it is determined Yes in
次いで、演奏支援情報生成部32は、ifgをデクリメントして(ステップ1105)、ステップ1102に戻る。
Next, the performance support
ステップ1103〜ステップ1105の処理においては、パラメータifigで特定される指の右側に押鍵している指があるか否かが判断され、指が存在する場合には、その指ifgについての横方向の座標sfigPosX[ifg]より白鍵1つ分だけ左側の鍵に相当する座標値を、sfigLとしてセットしている。
In the processing from
その後、演奏支援情報生成部32は、処理対象となる音符データのsfigPosX[ifig]、つまり、当該音符データのパラメータifigで特定される指の横方向の座標として、sfigHおよびsfigLの双方が存在すれば、その平均値(sfigH+sfigL)/2をセットし、sfigHのみが存在すれば、sfigHをセットし、或いは、sfigLのみが存在すればsfigLをセットする(ステップ1106)。
After that, the performance support
また、演奏支援情報生成部32は、sfMaxおよびsfMinを更新して、RAM14に一時的に記憶する(ステップ1107)。sfMaxは、sfigHの最高値であり、新たに算出されたsfigH>sfMaxであれば、新たなsfMaxとしてsfigHがセットされる。同様に、sfMinは、sfigLの最小値であり、sfigL<sfMinであれば、新たなsfMinとしてsfigLがセットされる。
Further, the performance support
ステップ1107の処理の後、演奏支援情報生成部32は、パラメータifigをインクリメントして(ステップ1108)、ステップ1002に戻る。
After the processing of
図10のステップ1002でNoと判断された場合、つまり、パラメータifigが5以上である場合には、演奏支援情報生成部32は、処理対象である音符データにおける手の横方向の座標sHandPosXとして、sfMaxおよびsfMinの平均値(sfMmax+sfMin)/2をセットする(ステップ1010)。その後、演奏支援情報生成部32は、処理対象となる音符データを特定するポインタを次のレコードに移動して(ステップ1011)、ステップ902に戻る。
When it is determined No in
図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
次に、ステップ506において起動される再生処理について説明する。図12および図13は、再生処理の例を示すフローチャートである。再生処理部36は、図12に示すように、RAM14に記憶された、再生処理において使用されるパラメータやフラグを初期化する(ステップ1201)。次いで、再生処理部36は、基本データバッファ(図3(b)参照)の基本データ中の現在時刻INowTickとして、システム時刻に基づく再生開始時刻をセットし(ステップ1202)、次いで、トラックを示すパラメータiTrを「0」に初期化する(ステップ1203)。
Next, the reproduction process activated in
再生処理部36は、全てのトラックについての処理が終了する(ステップ1204でNo)まで、ステップ1205以下の処理を実行する。再生処理部36は、処理対象となる音符データを特定するポインタmeとして、Track[iTr]で特定されるトラックデータ(図3(a)参照)中のトラック最初の音符データpFirstMEをセットする(ステップ1205)。
The
次いで、再生処理部36は、ポインタmeにより特定される音符データの発音開始時刻ITime<基本データの現在時刻INowTickであるか否かを判断する(ステップ1206)。ステップ1206においては、現在時刻が、音符データ中の発音開始時刻に達しているか否かが判断される。
Next, the
ステップ1206でNoと判断された場合には、再生処理部36は、トラックを示すパラメータiTrをインクリメントして(ステップ1209)、ステップ1204に戻る。
If it is determined No in
ステップ1206でYesと判断された場合には、再生処理部36は、トラックデータにおいて、トラックiTrの次の音符データへのポインタMidiEvents[iTr]として、meをセットする(ステップ1207)。次いで、再生処理部36は、音符データを特定するポインタmeを、次の音符データを指定するように移動させる(ステップ1208)。
If it is determined Yes in
ステップ1204でNoと判断された場合には、再生処理部36は、基本データの現在時刻INowTickが、最後の音符データに基づく、音符を消音すべき時間より大きいか否かを判断する(ステップ1301)。上記音符を消音すべき時間とは、末尾の音符データの発音開始時刻ITime+発音時間IGateに相当する。
If it is determined No in
ステップ1301でYesと判断された場合には、再生処理は終了する。その一方、ステップ1301でNoと判断された場合には、再生処理部36は、時刻計算処理(ステップ1302)、発音処理(ステップ1303)および消音処理(ステップ1304)を実行する。ステップ1302〜1304の各処理については後述する。
If it is determined Yes in
また、基本データの途中停止フラグ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
次いで、再生処理部36は、ITickTmpとして、(60*1000/INowTempo)/Resoloution/ISysGateをセットし(ステップ1403)、セットされたITickTmpが「0」より大きいか否かを判断する(ステップ1404)。
Next, the
ここに、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
図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
ステップ1504でNoと判断された場合には、再生処理部36は、音符データの発音開始時刻ITimeが、現在時刻INowTickを経過しているか否かを判断する(ステップ1505)。
When it is determined No in
ステップ1505でNoと判断された場合には、再生処理部36は、処理対象を次のトラックとする(ステップ1510)。
When it is determined No in
ステップ1505でYesと判断された場合には、再生処理部36は、発音中データバッファに、当該音符データを特定するためのポインタpMEを格納する(ステップ1506)。次いで、再生処理部36は、発音中データバッファに格納したポインタpMEにより示される音符データの発音を楽音生成回路28に対して指示する(ステップ1507)。
If it is determined Yes in
再生処理部36は、基本データにおいて、処理対象となっているトラックの音符データとして、次の音符データを示すポインタを格納する(ステップ1508)。その後、当該処理対象を次の音符データとする(ステップ1509)。
In the basic data, the
ステップ1504でNoと判断された場合には、再生処理部36は、音符データにおいて、再生時の状態iPlayStatusが「1」であるか否かを判断する(ステップ1601)。ステップ1601でYesと判断された場合には、再生処理部36は、発音中データバッファに、当該音符データを示すポインタを追加する(ステップ1602)。
If it is determined No in
その一方、ステップ1601でNoと判断された場合には、再生処理部36は、音符データの発音開始時刻ITimeが、現在時刻INowTickを経過しているか否かを判断する(ステップ1603)。ステップ1603でNoと判断された場合には、再生処理部36は、検索すべきトラックを次のトラックとする(ステップ1510)。
On the other hand, when it is determined No in
ステップ1603でYesと判断された場合には、再生処理部36は、発音中データバッファに、当該音符データを特定するためのポインタpMEを格納する(ステップ1604)。次いで、再生処理部36は、発音中データバッファの発音中データにおいて、発音保留フラグiStatusに「0」をセットする(ステップ1605)。
If it is determined Yes in
また、再生処理部36は、基本データバッファの演奏状態iPStatusを「2」、つまり、待機中であることを示す値にセットする(ステップ1606)とともに、基本データバッファの待機開始時刻IwaitStartに、現在のシステム時刻をセットする(ステップ1607)。
In addition, the
その後、再生制御データの基本データにおいて、処理対象となっているトラックの音符データとして、次の音符データを示すポインタを格納する(ステップ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
その一方、ステップ1601において、再生時の状態iPlayStatusが「1」以外であることは、少なくとも早いタイミングでの押鍵はなかったことを意味している。この場合には、発音開始時間より遅く押鍵される場合もあるし、押鍵されない場合もある。したがって、ステップ1605において、発音データバッファの対応する発音中データにおいて、発音保留フラグiStatusを「0」にセットしておくことで、後述するように、発音開始時間より遅いタイミングであっても、許容時間内に押鍵があれば、発音できるようにする。
On the other hand, in
次に、消音処理について説明する。図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
再生処理部36は、全ての発音中データについての検索が終了していなければ(ステップ1702でNo)、発音中データバッファに格納された音符データへのポインタpMEを参照して、音符データを特定して、データを取得する(ステップ1703)。
If the search for all sounding data has not been completed (No in step 1702), the
再生処理部36は、音符データの消音時刻(該当トラックの発音開始時刻ITime+発音時間IGate)が、現在時刻INowTickを経過しているか否かを判断する(ステップ1704)。
The
ステップ1704でNoと判断された場合には、再生処理部36は、処理対象を次の発音中データとする(ステップ1707)。
If it is determined No in
ステップ1704でYesと判断された場合には、再生処理部36は、発音中データバッファの発音中データをクリアする(ステップ1705)。次いで、再生処理部36は、発音中データバッファに格納されていたポインタpMEにより示される音符データの消音を楽音生成回路28に対して指示する(ステップ1706)。次いで、再生処理部36は、処理対象を次の発音中データとする(ステップ1707)。
If it is determined Yes in
次に、本実施の形態にかかる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
次いで、ポインタ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
以下、発音中データバッファからの検索処理(ステップ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
再生処理部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
ステップ1903でNoと判断された場合には、再生処理部36は、処理対象を、発音中データバッファの次の発音中データに移動させる(ステップ1910)。
If it is determined No in
ステップ1903でYesと判断された場合には、再生処理部36は、ポインタmepにより示される発音中データ中のポインタpMeを参照して、音符データのレコードを取得する(ステップ1904)。
If it is determined Yes in
次いで、演奏データ正誤判定部34は、現在時刻INowTickと、前記ポインタmepにより特定される音符データの発音開始時刻ITimeとを比較して、INowTick−ITimeが、許容時間を示す所定の閾値より小さいか否かを判断する(ステップ1905)。ステップ1905でNoと判断された場合には、ステップ2001に進む。
Next, the performance data correctness /
ステップ1905でYesと判断された場合には、演奏データ正誤判定部34は、押鍵された鍵の座標iPitを取得し(ステップ1906)、取得した座標iPitが、音符データ中の、親指の横方向の座標および小指の横方向の座標の範囲内に含まれるか否か(sfigPosX[0]<iPit<sfigPosX[4])であるか否かを判断する(ステップ1907)。
If it is determined Yes in
ステップ1907でYesと判断された場合には、演奏データ正誤判定部34は、さらに、ポインタmepにより特定される音符データのピッチPitchと押鍵された鍵の座標iPitとの差の絶対値、および、後述するポインタmeplayにより特定される音符データのピッチPitchと押鍵された鍵の座標iPitとの差の絶対値を比較する(ステップ1908)。
If it is determined Yes in
ステップ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
その後、再生処理部36は、処理対象を、発音中データバッファの次の発音中データに移動させる(ステップ1910)。
Thereafter, the
ステップ1908および1909について以下に説明する。発音中データバッファには、複数の発音中データが格納されている可能性がある。そこで、発音中データバッファ中の発音中データで、所定の条件をみたす(iStatusが「0」で、かつ、発音開始時刻とのずれおよび音高のずれが所定の許容範囲であること)ものの中で、その音高が、最も押鍵された鍵の音高に近いものを見出し、その音符データを示すポインタmeplayを保存し、当該meplayにより示される音符データの発音を行わせている。音符データの発音については、図20を参照して説明する。
図20に示すように、再生処理部36は、ポインタmeplayが存在するか否かを判断する(ステップ2001)。ステップ2001でYesと判断された場合には、再生処理部36は、基本データ中の演奏状態iPStatusが「2」、つまり待機中であるか否かを判断する(ステップ2002)。
As shown in FIG. 20, the
ステップ9002でNoと判断された場合には、再生処理部36は、ポインタmeplayにより示される音符データに基づく楽音の発音を、楽音生成回路28に対して指示する(ステップ2006)。
If it is determined No in step 9002, the
これに対して、ステップ2002でYesと判断された場合には、再生処理部36は、パラメータmGateとして、ポインタmeplayにより示される音符データの発音時間IGateをセットする(ステップ2003)。
On the other hand, when it is determined Yes in
再生処理部36は、発音すべき楽音のベロシティiVelnew=iVel*(1−{abs(INowTick−IwaitStart)/mGate})を算出する(ステップ2004)。また、再生処理部36は、基本データ中の演奏状態iPStatusを「1」にセットする(ステップ2005)。
The
ステップ2004においては、押鍵された時刻に相当する現在時刻INowTickと、待機状態となった時刻IwaitStartとの差の絶対値に応じて、差の絶対値が大きくなるのにしたがって発音すべき楽音のベロシティが小さくなるように、当該ベロシティを調整している。特に、本実施の形態においては、発音時間全体に対する、上記差の絶対値の比を算出し、その比に基づいてベロシティを調整している。ここでは、発音時間に対して差の絶対値が大きいこと、つまり比が小さくなるのに伴って、ベロシティは小さくなる。
In
次いで、再生処理部36は、ポインタmeplayにより示される音符データに基づく楽音の発音を、楽音生成回路28に対して指示する(ステップ2006)。
Next, the
再生処理部36は、ポインタmeplayにより示される音符データにおいて、再生時の状態iPlayStatusを「1(ミディイベントおよびノートオンの双方あり)」にセットする(ステップ2007)。
The
次に、本実施の形態にかかる音符データからの検索処理について説明する。図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
ステップ2101でYesと判断された場合には、再生処理部36は、再生制御データの基本データバッファを検索する(ステップ2102)。再生処理部36は、全てのトラックについての検索が終了していなければ(ステップ2103でNo)、トラックデータ(図3(a))を参照して、処理対象となるトラックデータのトラック種類iPlayTypeから、当該トラックが演奏データであるか否かを判断する(ステップ2104)。
If it is determined Yes in
ステップ2104でNoと判断された場合には、再生処理部36は、処理対象を次のトラックに移動する(ステップ2105)。
If it is determined No in
ステップ2104でYesと判断された場合には、再生処理部36は、当該処理対象となるトラックについて、ポインタmepとして、基本データ中のMidiEvent[トラック番号]をセットする(ステップ2106)。
If it is determined Yes in
再生処理部36および演奏データ正誤判定部34は、処理対象となっているトラックについて音符データの検索が終了する(音符データの末尾のレコードとなる:ステップ2201でYes)まで、ステップ2202以下の処理を実行する。
The
ステップ2201でNoと判断された場合には、演奏データ正誤判定部34は、現在時刻INowTickと、mepにより特定される音符データ中の発音開始時刻ITimeとを比較して、ITime−INowTickが、許容時間を示す所定の閾値以上であるか否かを判断する(ステップ2202)。ステップ2202でYesと判断された場合には、ステップ2301に進む。
If it is determined No in
その一方、ステップ2202でNoと判断された場合には、演奏データ正誤判定部34は、0<ITime−INowTick<所定の閾値であるか否かを判断する(ステップ2203)。
On the other hand, if it is determined No in
ステップ2203でYesと判断された場合には、演奏データ正誤判定部34は、押鍵された鍵の座標iPitを取得し(ステップ2504)、取得した座標iPitが、ポインタmepにより特定される音符データ中の、親指の横方向の座標および小指の横方向の座標の範囲内に含まれるか否か(sfigPosX[0]<iPit<sfigPosX[4])であるか否かを判断する(ステップ2205)。
If it is determined Yes in
ステップ2205でYesと判断された場合には、演奏データ正誤判定部34は、さらに、ポインタmepにより特定される音符データ中のピッチPitchと押鍵された鍵の座標iPitとの差の絶対値、および、ポインタmeplayにより特定される音符データ中のピッチPitchと押鍵された鍵の座標iPitとの差の絶対値を比較する(ステップ2206)。
If it is determined Yes in
ステップ2206において、前者(ポインタmepにより特定される音符データ中のピッチPitchと押鍵された鍵の座標iPitとの差の絶対値)の方が小さかった場合には、再生処理部36は、ポインタmeplayとして、ポインタmepに示す発音中データのpMeをセットする(ステップ2207)。
In
その後、再生処理部36は、処理対象を次の音符データに移動する(ステップ2208)。
Thereafter, the
ステップ2202でYesと判断された場合には、再生処理部36は、meplayが存在するか否かを判断する(ステップ2301)。ステップ2301でYesと判断された場合には、再生処理部36は、基本データ中の演奏状態iPStatusが「2」、つまり待機中であるかどかを判断する(ステップ2302)。ステップ2302でNoと判断された場合には、再生処理部36は、ポインタmeplayにより示される音符データの楽音の発音を、楽音生成回路28に対して指示する(ステップ2306)。
If it is determined Yes in
ステップ2302でYesと判断された場合には、再生処理部36は、パラメータmGateとして、ポインタmeplayにより示される音符データの発音時間IGateをセットする(ステップ2303)。
When it is determined Yes in
再生処理部36は、発音すべき楽音のベロシティiVelnew=iVel*(1−{abs(INowTick−IwaitStart)/mGate})を算出する(ステップ2304)。また、再生処理部36は、基本データ中の演奏状態iPStatusを「1」にセットする(ステップ2305)。
The
ステップ2304においては、押鍵された時刻に相当する現在時刻INowTickと、待機状態となった時刻IwaitStartとの差の絶対値に応じて、差の絶対値が大きくなるのにしたがって発音すべき楽音のベロシティが小さくなるように、当該ベロシティを調整している。特に、本実施の形態においては、発音時間全体に対する、上記差の絶対値の比を算出し、その比に基づいてベロシティを調整している。
In
次いで、再生処理部36は、ポインタmeplayにより示される音符データに基づく楽音の発音を、楽音生成回路28に対して指示する(ステップ2306)。
Next, the
再生処理部36は、ポインタmeplayにより示される音符データにおいて、再生時の状態iPlayStatusを「1(ミディイベントおよびノートオンの双方あり)」にセットする(ステップ2307)。
The
本発明においては、音符データに含まれる、ある音符の発音開始時刻より押鍵が先行し、或いは、遅れた場合であっても、その先行或いは押鍵が、許容時間内であれば、対応する音符データにより示される音高の楽音を発音する。すなわち、所定の時間的条件が満たされる場合には、押鍵タイミングのずれを許容する。 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.
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
26
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の判定手段は、前記指座標情報を参照して、前記音高情報が示す音高に対応する鍵の座標が、特定の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.
夫々発音開始タイミング、音高を含む複数の音符データを格納する音符データバッファから、発音開始タイミングが到来した音符データを検索し、当該検索された音符データを特定する情報及び発音が行われていないことを示す発音保留フラグを含む発音中データを発音中データバッファに格納するステップと、
演奏操作に基づくタイミングで音高情報を順次受け入れるステップと、
前記発音中データバッファに格納された発音中データの中から、前記発音保留フラグを有し、かつ当該発音中データにより特定される音符データの発音開始タイミングと前記音高情報の入力タイミングとの差が所定時間内の発音中データを検索するステップと、
この検索された発音中データにより特定される音符データの音高と前記音高情報の音高との差が所定範囲内であるか否か判定する第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.
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)
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)
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 |
-
2007
- 2007-11-06 JP JP2007288019A patent/JP5145875B2/en not_active Expired - Fee Related
Patent Citations (6)
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)
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 |