JP4678365B2 - Music score display apparatus and music score display processing program - Google Patents
Music score display apparatus and music score display processing program Download PDFInfo
- Publication number
- JP4678365B2 JP4678365B2 JP2006339014A JP2006339014A JP4678365B2 JP 4678365 B2 JP4678365 B2 JP 4678365B2 JP 2006339014 A JP2006339014 A JP 2006339014A JP 2006339014 A JP2006339014 A JP 2006339014A JP 4678365 B2 JP4678365 B2 JP 4678365B2
- Authority
- JP
- Japan
- Prior art keywords
- measure
- comparison
- pointer
- sound
- coincidence
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
- Auxiliary Devices For Music (AREA)
Description
本発明は、楽曲の構造に即した見易い楽譜を表示する楽譜表示装置および楽譜表示処理プログラムに関する。 The present invention relates to a score display apparatus and a score display processing program that display easy-to-read score corresponding to the structure of music.
曲を構成する各音を表す曲データを楽譜化して表示する楽譜表示装置が知られている。例えば、特許文献1には、連桁(ビーム)で繋ぐ音の両端の音の符頭表示位置の差を検出し、検出した符頭表示位置の差(音高差)が所定値より小さければ、連桁の傾きを水平に設定し、一方、符頭表示位置の差(音高差)が所定値より大きければ、連桁の傾きを所定に傾きに設定することによって、連桁で繋ぐ両端の音の音程が小さい場合や音程が極端に大きい場合でも演奏者が見易いように連桁を表示するものが開示されている。
2. Description of the Related Art Music score display apparatuses that display music data representing each sound constituting a music in a musical score are known. For example, in
ところで、上記特許文献1に開示の手法では、単に連桁する音符が見易くなるように楽譜表示するだけであり、例えば複数小節からなる段をページあたり複数段表示する形式の楽譜において、曲の構造の切れ目で段送りする等、楽曲の構造に即した見易い楽譜を表示することができない、という問題がある。
By the way, in the method disclosed in the above-mentioned
本発明は、上述した事情に鑑みてなされたもので、楽曲の構造に即した見易い楽譜を表示することができる楽譜表示装置および楽譜表示処理プログラムを提供することを目的としている。 The present invention has been made in view of the above-described circumstances, and an object of the present invention is to provide a score display device and a score display processing program capable of displaying a score that is easy to see according to the structure of music.
上記目的を達成するため、請求項1に記載の発明では、楽曲を構成する各音を表す曲データを記憶する記憶手段と、前記記憶手段に記憶される曲データを分析して得た曲構造に従って楽曲を複数の区間に分割する曲分割手段と、前記記憶手段に記憶される曲データが複数の段から形成される楽譜として表示される場合に、前記曲分割手段により分割された各区間の終わりを、楽譜の各段末尾となるように表示設定する表示設定手段と、この表示設定手段にて表示設定された楽譜を表示手段に表示出力する出力手段と、を具備する楽譜表示装置において、前記曲分割手段は、前記記憶手段に記憶される曲データのひとつの小節に比較元小節を割り当てるとともに残りの他の小節に比較先小節を割り当てて当該比較元小節に対する比較先小節夫々の一致度を判定する動作を、前記曲データに含まれる小節全てに比較元小節が割り当てられるまで繰り返す判定手段と、前記判定手段により各比較元小節に対してそれぞれ判定された各比較先小節の一致度の中から閾値以上の一致度が連続する比較先小節の範囲を、楽曲中の1つの区間として分割する分割手段とを具備することを特徴とする。 In order to achieve the above object, according to the first aspect of the present invention, storage means for storing music data representing each sound constituting the music, and a music structure obtained by analyzing the music data stored in the storage means According to the music dividing means for dividing the music into a plurality of sections, and when the music data stored in the storage means is displayed as a score formed from a plurality of stages, each section divided by the music dividing means In a score display apparatus comprising: display setting means for displaying and setting the end to be at the end of each stage of the score; and output means for displaying and outputting the score set by the display setting means on the display means. The music dividing means assigns a comparison source measure to one measure of music data stored in the storage means and assigns a comparison destination measure to the remaining other measures, and each comparison destination measure for the comparison source measure The operation of determining the degree of coincidence is repeated until a comparison source measure is assigned to all the measures included in the music data, and the comparison destination measures determined by the determination unit for each comparison source measure And a dividing unit that divides a range of a comparison target bar having a degree of coincidence equal to or higher than a threshold value as one section in the music .
上記請求項1に従属する請求項2に記載の発明では、前記判定手段は、小節の先頭から後端まで所定の時間幅で歩進させる毎に、その歩進された時間幅中に比較元小節で発音している比較元音と比較先小節で発音している比較先音との音高が同一の場合および比較元音と比較先音とが共に存在しない場合に完全一致と判定する完全一致判定手段と、前記完全一致判定手段により完全一致と判定された時間幅を累算した完全一致期間を、小節長に相当する時間で除算して完全一致度を算出する完全一致度算出手段とを備え、前記分割手段は、前記完全一致度算出手段により算出された各比較先小節の完全一致度の中から閾値以上の完全一致度が連続する比較先小節の範囲を、完全一致区間として分割する完全一致区間分割手段を具備することを特徴とする。
In the invention of
上記請求項1に従属する請求項3に記載の発明では、前記判定手段は、小節の先頭から後端まで所定の時間幅で歩進させる毎に、その歩進された時間幅中に比較元小節で発音している比較元音と比較先小節で発音している比較先音とが存在し、かつ比較元音と比較先音とが転調関係にある場合に相対一致と判定する相対一致判定手段と、前記相対一致判定手段により相対一致と判定された時間幅を累算した相対一致期間を、小節長に相当する時間で除算して相対一致度を算出する相対一致度算出手段とを備え、前記分割手段は、前記相対一致度算出手段により算出された各比較先小節の相対一致度の中から閾値以上の相対一致度が連続する比較先小節の範囲を、相対一致区間として分割する相対一致区間分割手段を具備することを特徴とする。
In the invention described in
上記請求項1に従属する請求項4に記載の発明では、前記判定手段は、小節の先頭から後端まで所定の時間幅で歩進させる毎に、その歩進された時間幅中に比較元小節で発音している比較元音と比較先小節で発音している比較先音とが存在し、かつ比較元小節の先頭音の音高と比較元音との音高差の方向が、比較先小節の先頭音の音と比較先音との音高差との方向に一致する場合に相対方向一致と判定する相対方向一致判定手段と、前記相対方向一致判定手段により相対方向一致と判定された時間幅を累算した相対方向一致期間を、小節長に相当する時間で除算して相対方向一致度を算出する相対方向一致度算出手段とを備え、前記分割手段は、前記相対方向一致度算出手段により算出された各比較先小節の相対方向一致度の中から閾値以上の相対方向一致度が連続する比較先小節の範囲を、相対方向一致区間として分割する相対方向一致区間分割手段を具備することを特徴とする。
In the invention described in
上記請求項1に従属する請求項5に記載の発明では、前記判定手段は、小節の先頭から後端まで所定の時間幅で歩進させる毎に、その歩進された時間幅中に比較元小節で発音している比較元音と比較先小節で発音している比較先音とが存在し、かつ比較元音と比較先音との発音開始時間並びに消音時間の差が許容範囲内である場合および歩進された時間幅中に発音する比較元音および比較先音が共に存在せず、かつ現在判定対象となる比較元音および比較先音のそれぞれについて前音の消音時間と次音の発音開始時間とが許容範囲内にある場合にリズム一致と判定するリズム一致判定手段と、前記リズム一致判定手段によりリズム一致と判定された時間幅を累算したリズム一致期間を、小節長に相当する時間で除算してリズム一致度を算出するリズム一致度算出手段とを備え、前記分割手段は、前記リズム一致度算出手段により算出された各比較先小節のリズム一致度の中から閾値以上のリズム一致度が連続する比較先小節の範囲を、リズム一致区間として分割するリズム一致区間分割手段を具備することを特徴とする。
In the invention described in
請求項6に記載の発明では、記憶手段に記憶され、かつ楽曲を構成する各音を表す曲データのひとつの小節に比較元小節を割り当てるとともに残りの他の小節に比較先小節を割り当てて当該比較元小節に対する比較先小節夫々の一致度を判定する動作を、前記曲データに含まれる小節全てに比較元小節が割り当てられるまで繰り返す判定処理と、この判定処理により各比較元小節に対してそれぞれ判定された各比較先小節の一致度の中から閾値以上の一致度が連続する比較先小節の範囲を、楽曲中の1つの区間として分割する分割処理と、曲データが複数の段から形成される楽譜として表示される場合に、前記曲分割処理により分割された各区間の終わりを、楽譜の各段末尾となるように表示設定する表示設定処理と、この表示設定処理にて表示設定された楽譜を表示手段に表示出力する出力処理とをコンピュータで実行させることを特徴とする。 According to the sixth aspect of the present invention, the comparison source measure is assigned to one measure of the song data stored in the storage means and representing each sound constituting the song, and the comparison destination measure is assigned to the remaining other measures. The operation of determining the degree of coincidence of each comparison target measure with respect to the comparison source measure is repeated until the comparison source measure is assigned to all the measures included in the music data, and this comparison processing is performed for each comparison source measure. A division process for dividing a range of comparison destination bars in which the degree of coincidence equal to or higher than a threshold value from among the degree of coincidence of each determined comparison destination bar is divided into one section in the music, and music data is formed from a plurality of stages. that if it is displayed as a score, the end of each section divided by the music division processing, and a display setting process for displaying set so that each stage trailing score at the display setting process Characterized in that to execute the output process of displaying and outputting the shown set score to the display unit by a computer.
本発明では、楽曲を構成する各音を表す曲データを分析して得た曲構造に従って楽曲を複数の区間に分割しておき、曲データが複数の段から形成される楽譜として表示される場合に、分割された各区間の終わりを、楽譜の各段末尾となるように表示設定するので、楽曲の構造に即した見易い楽譜を表示することができる。 In the present invention, the music is divided into a plurality of sections according to the music structure obtained by analyzing the music data representing each sound constituting the music, and the music data is displayed as a score formed from a plurality of stages. In addition, since the end of each divided section is set to be the end of each stage of the score, it is possible to display a score that is easy to see according to the structure of the music.
以下、図面を参照して本発明の実施の形態について説明する。
[第1実施形態]
A.構成
(1)全体構成
図1は、本発明の第1実施形態による楽譜表示装置の全体構成を示すブロック図である。楽譜表示装置は、CPU1、ROM2、RAM3、入力部4、表示部5およびMIDIインタフェース6を備える。CPU1は、後述する入力部4の指示に従い、例えばMIDIインタフェース6を介して外部の電子楽器7から取込んだSMF形式の曲データMidiEventから曲の各小節を表す小節データMeasureを派生させ、曲データMidiEventおよび小節データMeasureを参照して曲構造を分析し、その分析結果に基づいて楽曲の構造に即した楽譜を表示部5に画面表示させる。本発明の要旨に係わる、こうしたCPU1の処理動作については追って詳述する。
Embodiments of the present invention will be described below with reference to the drawings.
[First Embodiment]
A. Constitution
(1) Overall configuration
FIG. 1 is a block diagram showing the overall configuration of the score display apparatus according to the first embodiment of the present invention. The score display device includes a
ROM2は、CPU1にロードされる各種プログラムやテーブル等を記憶する。ここで言う各種制御プログラムとは、後述するメインルーチン、構造分析処理演、奏難易度計算処理および表示条件設定処理を含む。
The
RAM3は、CPU1の演算に用いられる各種レジスタ・フラグデータを一時記憶するワークエリアと、MIDIインタフェース6を介して外部の電子楽器7より取込むSMF形式の曲データMidiEventが格納される曲データエリアと、この曲データエリアに格納された曲データMidiEventから派生させた小節データMeasureを記憶する小節データエリアとを備える。曲データMidiEventおよび小節データMeasureの各構成については追って説明する。入力部4は、ユーザ操作に対応した操作イベントを発生してCPU1に供給する。表示部5は、CPU1の制御の下に、上記曲データMidiEventおよび小節データMeasureを参照して、楽曲の構造に即した楽譜を画面表示する。
The
(2)データ構成
次に、図2〜図4を参照してRAM3に格納される曲データMidiEventおよび小節データMeasureの各構成を説明する。図2は、RAM3の曲データエリアに格納される曲データMidiEventの構成を示す図である。曲データMidiEvent[0]〜[N]は楽曲を構成する各音(メロディ)を表し、その終端には曲の終わりを表すENDデータを備える。
(2) Data structure
Next, each structure of the music data MidiEvent and the bar data Measurement stored in the
1つのメロディ音を表す曲データMidiEventは、曲開始時点からの経過時間で表現される発音開始時間ITime、発音期間を表す音長lGate、音高Pitch、音量Vel、本音を押鍵する指を指定する運指情報cfig、本音の弾き難さ(難易度)を表す運指コストiCost、ポインタprevおよびポインタnextから構成される。 The song data MidiEvent representing one melody sound designates the sound generation start time ITime expressed by the elapsed time from the start of the song, the sound length lGate indicating the sound generation period, the pitch Pitch, the volume Vel, and the finger for pressing the real sound Fingering information cfig, fingering cost iCost indicating difficulty of playing the real intention (degree of difficulty), pointer prev, and pointer next.
運指情報cfigは、「0」の場合に親指、「1」の場合に人差し指、「2」の場合に中指、「3」の場合に薬指、「4」の場合に小指を指定する。運指コストiCostは、「0」〜「16」で難易度を表し、「0〜2:とても易しい」、「3〜5:易しい」、「6〜8:標準」、「9〜11:難しい」、「12〜14:とても難しい」および「15〜:不可能」を表す。ポインタprevは、1つ前の演奏データMidiEventのアドレスを指定する。ポインタnextは、次の演奏データMidiEventのアドレスを指定する。 The fingering information cfig specifies the thumb when “0”, the index finger when “1”, the middle finger when “2”, the ring finger when “3”, and the little finger when “4”. The fingering cost iCost represents a difficulty level from “0” to “16”, and “0 to 2: very easy”, “3 to 5: easy”, “6 to 8: standard”, and “9 to 11: difficult”. ”,“ 12-14: very difficult ”and“ 15-: impossible ”. The pointer prev designates the address of the previous performance data MidiEvent. The pointer next designates the address of the next performance data MidiEvent.
図3は、RAM3の小節データエリアに格納される小節データMeasureの構成を示す図である。小節データMeasure[0]〜[N]は、各小節毎の属性を表す。1つの小節データMeasureは、曲開始時点からの経過時間で表現される開始時刻lTime、小節長lGate、小節に付与されるラベル番号iLavel、ラベルオプションiLvOption、ラベル内状態iLvStatus、段番号iRow、ページ番号iPage、段送りフラグiRPass、ページ送りフラグiPPass、演奏コストiCost、ポインタprevおよびポインタnextから構成される。
FIG. 3 is a diagram showing the configuration of the measure data Measurement stored in the measure data area of the
ラベル番号iLavel、ラベルオプションiLvOption、ラベル内状態iLvStatusは、後述する構造分析処理によって付与されるデータであり、これらが意図する内容については追って述べる。ポインタprevは、1つ前の小節データMeasureのアドレスを指定する。演奏コストiCostは、演奏難易度を表す。ポインタnextは、次の小節データMeasureのアドレスを指定する。 The label number iLevel, the label option iLvOption, and the in-label state iLvStatus are data given by a structural analysis process described later, and the contents intended by these will be described later. The pointer prev designates the address of the previous measure data Measurement. The performance cost iCost represents the performance difficulty level. The pointer next designates the address of the next measure data Measurement.
段番号iRow、ページ番号iPage、段送りフラグiRPassおよびページ送りフラグiPPassは、後述する表示条件設定処理にて付与されるデータである。ここで、図4を参照してこれらデータ(段番号iRow、ページ番号iPage、段送りフラグiRPassおよびページ送りフラグiPPass)の関係について説明する。図4(a)は、ラベル番号iLavelで指定される小節に付与される段番号iRow、ページ番号iPage、段送りフラグiRPassおよびページ送りフラグiPPassの一例である。段番号iRowは、1ページ内に表示される楽譜段の番号を表す。 The column number iRow, the page number iPage, the column advance flag iRPass, and the page advance flag iPPpass are data provided in the display condition setting process described later. Here, the relationship among these data (stage number iRow, page number iPage, advance flag iRPass, and page advance flag iPPpass) will be described with reference to FIG. FIG. 4A is an example of the column number iRow, the page number iPage, the column advance flag iRPass, and the page feed flag iPPpass assigned to the measure specified by the label number iLevel. The column number iRow represents the number of the musical score column displayed in one page.
段送りフラグiRPassは、「0」の場合に段送り無しを表し、「1」の場合に段送り有りを表す。ページ番号iPageは、楽譜の表示ページを表す。ページ送りフラグiPPassは、「0」の場合にページ送り無しを表し、「1」の場合にページ送り有りを表す。したがって、図4(a)に図示した一例の段番号iRow、ページ番号iPage、段送りフラグiRPassおよびページ送りフラグiPPassに従うと、同図(b)に図示する書式で楽譜表示が行われる。 The step-up flag iRPass indicates that there is no step-feed when it is “0”, and indicates that there is step-up when it is “1”. The page number iPage represents a musical score display page. The page feed flag iPPpass represents “no page feed” when “0”, and “page feed present” when “1”. Therefore, according to the example of the column number iRow, the page number iPage, the page advance flag iRPass, and the page feed flag iPPpass shown in FIG. 4A, the score is displayed in the format shown in FIG. 4B.
すなわち、図4(b)に図示する通り、段番号iRow「0」の段では、ラベル番号iLavel「0」で指定される小節M[0]と、ラベル番号iLavel「1」で指定される小節M[1]とが表示される。そして、小節M[1]で段送りされた後の段番号iRow「1」の段では、ラベル番号iLavel「2」で指定される小節M[2]と、ラベル番号iLavel「3」で指定される小節M[3]が表示される。以後、同様にラベル番号iLavel「4」〜「7」でそれぞれ指定される小節M[4]〜小節M[7]がページ番号iPage「0」のページに楽譜表示される。そして、小節M[7]の後にページ送りが行われ、ページ番号iPage「1」の先頭にラベル番号iLavel「8」で指定される小節M[8]が表示されるようになっている。 That is, as shown in FIG. 4B, in the stage of the stage number iRow “0”, the bar M [0] specified by the label number iLevel “0” and the bar specified by the label number iLevel “1” are displayed. M [1] is displayed. Then, in the stage of the stage number iRow “1” after being advanced by the bar M [1], the bar is designated by the bar M [2] specified by the label number iLevel “2” and the label number iLevel “3”. Bar M [3] is displayed. Thereafter, the measures M [4] to M [7] respectively designated by the label numbers iLevel “4” to “7” are displayed on the page with the page number iPage “0”. Then, page feed is performed after the bar M [7], and bar M [8] designated by the label number iLevel “8” is displayed at the head of the page number iPage “1”.
B.動作
次に、図5〜図17を参照して第1実施形態の動作について説明する。以下では、CPU1が実行するメインルーチン、構造分析処理、演奏難易度計算処理および表示条件設定処理の各動作について述べる。なお、構造分析処理は、マトリクス処理およびグループラベリング処理から構成される。グループラベリング処理は、ラベリング処理、類似部分ラベリング補正1処理、類似部分ラベリング補正2処理、類似部分ラベリング補正3処理およびラベリング検証処理から構成される。表示条件設定処理は、段送り判定処理を含む。
B. Action
Next, the operation of the first embodiment will be described with reference to FIGS. Hereinafter, operations of the main routine, the structure analysis process, the performance difficulty calculation process, and the display condition setting process executed by the
(1)メインルーチンの動作
入力部4からCPU1にメインルーチンの実行を指示するイベントが供給されると、CPU1は図4に図示するメインルーチンを実行してステップSA1に進み、曲データの読み込みを実行する。すなわち、MIDIインタフェース6を介して外部の電子楽器7からSMF形式の曲データMidiEvent[0]〜[N]を取込んでRAM3の曲データエリアに格納する。また、ステップSA1では、RAM3の曲データエリアに格納した曲データMidiEvent[0]〜[N]に基づき、小節データMeasure[0]〜[N]を派生させてRAM3の小節データエリアに格納する。
(1) Main routine operation
When an event for instructing the
なお、ここで派生される小節データMeasure[0]〜[N]は、ラベルオプションiLvOptionおよびラベル状態iLvStatusを含まない。ラベルオプションiLvOptionおよびラベル状態iLvStatusは、後述するグループラベリング処理(図9参照)にて生成される。 The bar data Measurement [0] to [N] derived here does not include the label option iLvOption and the label state iLvStatus. The label option iLvOption and the label state iLvStatus are generated by a group labeling process (see FIG. 9) described later.
また、本実施の形態では、RAM3の曲データエリアに格納した曲データMidiEvent[0]〜[N]から小節データMeasure[0]〜[N]を派生する態様としたが、これに限らず、電子楽器7側で生成された小節データMeasure[0]〜[N]を、MIDIインタフェース6を介して取込む態様としても構わない。
In the present embodiment, the measure data Measurement [0] to [N] are derived from the song data MidiEvent [0] to [N] stored in the song data area of the
次いで、ステップSA2では、曲データMidiEventおよび小節情報Measureを参照して曲構造を分析する構造分析処理を実行する。そして、ステップSA3では、曲構造の分析により得られた曲の各区間毎の演奏難易度を算出し、その区間に対応する小節データMeasureの演奏コストiCostとして付与する演奏難易度計算処理を実行する。続いて、ステップSA4では、曲構造の分析により得られた曲の各区間の終わりで段送りを行うように設定する表示条件設定処理を実行する。この後、ステップSA5に進み、上記ステップSA4にて設定された表示条件に従って楽曲の構造に即した楽譜を表示部5に表示出力する。
Next, in step SA2, a structure analysis process for analyzing the music structure is performed with reference to the music data MidiEvent and the bar information Measurement. In step SA3, a performance difficulty level is calculated for each section of the music obtained by analyzing the music structure, and given as the performance cost iCost of measure data corresponding to the section. . Subsequently, in step SA4, a display condition setting process is performed for setting to perform step feed at the end of each section of the music obtained by analyzing the music structure. Thereafter, the process proceeds to step SA5, and a score corresponding to the structure of the music is displayed and output on the
(2)構造分析処理の動作
次に、図6を参照して構造分析処理の動作を説明する。上述したメインルーチンのステップSA3(図5参照)を介して本処理が実行されると、CPU1は図6に図示するステップSB1に進み、マトリクス処理(後述する)を実行した後、ステップSB2に進み、グループラベリング処理(後述する)を実行する。
(2) Structure analysis processing operations
Next, the operation of the structural analysis process will be described with reference to FIG. When this processing is executed through step SA3 (see FIG. 5) of the main routine described above, the
(3)マトリクス処理の動作
次に、図7を参照してマトリクス処理の動作を説明する。上述した構造分析処理のステップSB1(図6参照)を介して本処理が実行されると、CPU1は図7に図示するステップSC1に進み、比較元となる小節を指定するポインタReに、曲先頭の小節を指定する値をセットする。次いで、ステップSC2では、ポインタReで指定される比較元小節が曲終端を超えたか否かを判断する。ポインタReで指定される比較元小節が曲終端を超えていなければ、判断結果は「NO」になり、ステップSC3に進み、比較先となる小節を指定するポインタLuに、曲先頭の小節を指定する値をセットする。
(3) Matrix processing operation
Next, the operation of matrix processing will be described with reference to FIG. When this process is executed through step SB1 (see FIG. 6) of the structural analysis process described above, the
続いて、ステップSC4では、ポインタLuで指定される比較先小節が曲終端を超えたか否かを判断する。曲終端を超えていなければ、判断結果は「NO」になり、ステップSC5に進み、小節内時間tを初期化する。すなわち、ポインタLuで指定される比較先小節の小節データMeasure中の開始時刻lTimeを小節内時間tにセットする。次いで、ステップSC6では、小節内時間tが小節を超えたか否か、つまりポインタLuで指定される比較先小節の小節データMeasure中の小節長lGateを超えたかどうかを判断する。小節内時間tが小節を超えなければ、判断結果は「NO」となり、ステップSC7に進み、一致判定処理を実行する。 Subsequently, in step SC4, it is determined whether or not the comparison destination bar designated by the pointer Lu has exceeded the end of the song. If the song end is not exceeded, the determination result is “NO”, the process proceeds to step SC5, and the in-measure time t is initialized. That is, the start time lTime in the measure data Measurement of the comparison measure specified by the pointer Lu is set to the in-measure time t. Next, in step SC6, it is determined whether or not the intra-measure time t has exceeded the measure, that is, whether or not the measure length lGate in the measure data Measure of the comparison destination measure specified by the pointer Lu has been exceeded. If the in-measure time t does not exceed the measure, the determination result is “NO”, the process proceeds to step SC7, and the coincidence determination process is executed.
一致判定処理では、ポインタReで指定される比較元小節において小節内時間tで発音している比較元音の音高と、ポインタLuで指定される比較先小節において小節内時間tで発音している比較先音との有無を判断し、同一音高の比較元音と比較先音とが存在する場合や、比較元音と比較先音とが共に存在しない場合にフラグs1、s2、s3をそれぞれ「1」をセットする。 In the coincidence determination process, the pitch of the comparison source sound that is sounded at the in-measure time t in the comparison source measure designated by the pointer Re and the sound at the time t in the measure at the comparison destination measure designated by the pointer Lu. If the comparison source sound and the comparison destination sound having the same pitch are present, or if both the comparison source sound and the comparison destination sound are not present, the flags s1, s2, and s3 are set. Set “1” for each.
また、一致判定処理では、比較元音と比較先音とが転調関係にある相対一致の場合、すなわち小節内時間tで発音している比較元音と比較先音とが有り、かつ比較元音と基準音(比較元小節の先頭音の音高)との音高差と、比較先音と基準音(比較先小節の先頭音の音高)との音高差とが一致する場合にフラグs1を「0」、フラグs2を「1」、フラグs3を「1」にセットする。 In the coincidence determination process, when the comparison original sound and the comparison target sound are in a relative matching relationship, that is, there is a comparison original sound and a comparison target sound generated at the time t in the bar, and the comparison original sound Flag when the pitch difference between the reference tone (pitch of the first note of the comparison measure) and the reference note (pitch of the first note of the comparison measure) match Set s1 to “0”, flag s2 to “1”, and flag s3 to “1”.
さらに、一致判定処理では、比較元音と比較先音とが相対方向的に一致する場合、すなわち基準音(比較元小節の先頭音の音高)と比較元音との音高差の方向が、基準音(比較先小節の先頭音の音高)と比較先音との音高差との方向に一致する場合にフラグs1を「0」、フラグs2を「0」、フラグs3を「1」にセットする。 Further, in the coincidence determination process, when the comparison original sound and the comparison target sound coincide with each other in a relative direction, that is, the direction of the pitch difference between the reference sound (the pitch of the first note of the comparison source measure) and the comparison original sound is determined. , The flag s1 is set to “0”, the flag s2 is set to “0”, and the flag s3 is set to “1” when the reference sound (pitch of the first note of the comparison target measure) and the pitch difference between the comparison target sounds coincide with each other. Set to "".
加えて、一致判定処理では、比較元音と比較先音とがリズム一致する場合、すなわち小節内時間tで発音している比較元音と比較先音とが有り、かつ両音間の発音開始時間および消音時間の差が許容範囲内である場合や、小節内時間tで発音する比較元音および比較先音が共に存在せず、かつ現在一致判定の対象とされている比較元音および比較先音のそれぞれについて前音の消音時間と次音の発音開始時間とが許容範囲内にある場合にフラグs4を「1」にセットする。 In addition, in the coincidence determination process, when the comparison source sound and the comparison destination sound are in rhythm coincidence, that is, there is a comparison source sound and a comparison destination sound that are sounded at the time t in the bar, and the sound generation between the two sounds is started. If the difference between the time and the mute time is within an allowable range, or the comparison original sound and the comparison target sound that are pronounced at the time t in the bar do not exist, the comparison original sound and the comparison that are currently subject to coincidence determination The flag s4 is set to “1” when the mute time of the previous sound and the sounding start time of the next sound are within the allowable range for each of the previous sounds.
そして、ステップSC8では、上記ステップSC7の一致判定処理により設定されるフラグs1の値をレジスタsum1に、フラグs2の値をレジスタsum2に、フラグs3の値をレジスタsum3に、フラグs4の値をレジスタsum4にそれぞれ加算する。この後、ステップSC9に進み、小節内時間tを歩進させた後、上述のステップSC6に処理を戻す。 In step SC8, the value of the flag s1 set by the match determination process in step SC7 is registered in the register sum1, the value of the flag s2 is registered in the register sum2, the value of the flag s3 is registered in the register sum3, and the value of the flag s4 is registered. Add each to sum4. Thereafter, the process proceeds to step SC9, and the in-measure time t is incremented, and then the process returns to step SC6.
以後、歩進される小節内時間tが、ポインタLuで指定される比較先小節を超える迄、上述したステップSC6〜SC9を繰り返す。これにより、レジスタsum1にはフラグs1が「1」となる完全一致期間を累算した積算時間が格納され、レジスタsum2にはフラグs2が「1」となる相対一致期間を累算した積算時間が格納され、レジスタsum3にはフラグs3が「1」となる相対方向的一致期間を累算した積算時間が格納され、さらにレジスタsum4にはフラグs4が「1」となるリズム一致期間を累算した積算時間が格納される。 Thereafter, the above-described steps SC6 to SC9 are repeated until the time t in which the step is advanced exceeds the comparison destination bar specified by the pointer Lu. Thereby, the accumulated time obtained by accumulating the complete coincidence period in which the flag s1 is “1” is stored in the register sum1, and the accumulated time obtained by accumulating the relative coincidence period in which the flag s2 is “1” is stored in the register sum2. The accumulated time obtained by accumulating the relative direction coincidence period in which the flag s3 is “1” is stored in the register sum3, and the rhythm coincidence period in which the flag s4 is “1” is accumulated in the register sum4. The accumulated time is stored.
そして、歩進される小節内時間tが、ポインタLuで指定される比較先小節を超えると、上記ステップSC6の判断結果が「YES」となり、ステップSC10に進む。ステップSC10では、レジスタsum1に格納される積算時間を比較先小節分の時間tで除算して得られる一致率(sum1/t)を、マトリクス要素Mat1[Re][Lu]にストアする。また、ステップSC10では、レジスタsum2に格納される積算時間を比較先小節分の時間tで除算して得られる一致率(sum2/t)を、マトリクス要素Mat2[Re][Lu]にストアする。 When the time t within the measure to be incremented exceeds the comparison target measure specified by the pointer Lu, the determination result at step SC6 is “YES”, and the process proceeds to step SC10. In step SC10, the coincidence rate (sum1 / t) obtained by dividing the accumulated time stored in the register sum1 by the time t for the comparison measure is stored in the matrix element Mat1 [Re] [Lu]. In step SC10, the coincidence rate (sum2 / t) obtained by dividing the accumulated time stored in the register sum2 by the time t for the comparison measure is stored in the matrix element Mat2 [Re] [Lu].
さらに、ステップSC10では、レジスタsum3に格納される積算時間を比較先小節分の時間tで除算して得られる一致率(sum3/t)を、マトリクス要素Mat3[Re][Lu]にストアする。加えて、ステップSC10では、レジスタsum4に格納される積算時間を比較先小節分の時間tで除算して得られる一致率(sum4/t)を、マトリクス要素Mat4[Re][Lu]にストアして本処理を終える。 Further, in step SC10, the coincidence rate (sum3 / t) obtained by dividing the accumulated time stored in the register sum3 by the time t for the comparison target bar is stored in the matrix element Mat3 [Re] [Lu]. In addition, in step SC10, the coincidence rate (sum4 / t) obtained by dividing the accumulated time stored in the register sum4 by the time t for the comparison measure is stored in the matrix element Mat4 [Re] [Lu]. To finish this process.
なお、ここで言うマトリクス要素Mat1[Re][Lu]、Mat2[Re][Lu]、Mat3[Re][Lu]およびMat4[Re][Lu]とは、それぞれポインタReとポインタLuとで配列要素を指定する2次元レジスタである。 The matrix elements Mat1 [Re] [Lu], Mat2 [Re] [Lu], Mat3 [Re] [Lu], and Mat4 [Re] [Lu] referred to here are arrayed by a pointer Re and a pointer Lu, respectively. It is a two-dimensional register that specifies elements.
次いで、ステップSC11では、ポインタLuを歩進させ、比較先小節を次の小節に設定した後、上述のステップSC4に処理を戻す。以後、曲終端を超えるまでポインタLuで指定される比較先小節を歩進させる毎に、上述したステップSC5〜SC11を繰り返し実行する。そして、ポインタLuで指定される比較先小節が曲終端を超えると、上記ステップSC4の判断結果が「YES」になり、ステップSC12に進み、ポインタReを歩進させ、比較元小節を次の小節に設定した後、上述のステップSC2に処理を戻す。以後、ポインタReが曲終端を超える迄、ステップSC2以降を繰り返す。そして、ポインタRe(比較元小節)が曲終端を超えると、ステップSC2の判断結果が「YES」となり、本処理を終える。 Next, in step SC11, the pointer Lu is incremented, the comparison measure is set to the next measure, and then the process returns to step SC4. Thereafter, the above-described steps SC5 to SC11 are repeatedly executed each time the comparison destination bar designated by the pointer Lu is advanced until the end of the music is exceeded. When the comparison measure specified by the pointer Lu exceeds the end of the song, the determination result in step SC4 is “YES”, the process proceeds to step SC12, the pointer Re is incremented, and the comparison source measure is changed to the next measure. Then, the process returns to step SC2. Thereafter, steps SC2 and after are repeated until the pointer Re exceeds the end of the music piece. When the pointer Re (comparison source measure) exceeds the end of the song, the determination result in step SC2 is “YES”, and this process is finished.
以上のように、マトリクス処理では、RAM3の小節データエリアに格納された小節データMeasure[0]〜[N]を参照して、RAM3の曲データエリアに格納した曲データMidiEvent[0]〜[N]を、ポインタReで指定される比較元小節とポインタLuで指定される比較元小節とに区別しておき、比較元小節Reの比較元音と比較先小節Luの比較先音との関係を小節内時間t毎に判定する。
As described above, in the matrix processing, the music data MidiEvent [0] to [N] stored in the music data area of the
すなわち、比較元小節Reにおいて小節内時間tで発音している比較元音の音高と、比較先小節Luにおいて小節内時間tで発音している比較先音の音高とが一致している場合もしくは小節内時間tで発音する比較元音および比較先音が共に存在しない場合に「完全一致」と判定する。また、小節内時間tで発音している比較元音と比較先音とが有り、かつ比較元音と基準音(例えば小節先頭の音の音高)との音高差と、比較先音と基準音との音高差とが一致する場合、つまり比較元音と比較先音とが転調関係にある場合に「相対一致」と判定する。 That is, the pitch of the comparison original sound that is pronounced at the in-measure time t in the comparison source measure Re and the pitch of the comparison destination sound that is pronounced at the in-measure time t in the comparison destination measure Lu match. In this case, or when both the comparison original sound and the comparison target sound generated at the time t in the bar do not exist, it is determined as “completely coincident”. In addition, there is a comparison original sound and a comparison destination sound that are generated at the time t in the measure, and a difference in pitch between the comparison original sound and a reference sound (for example, the pitch of the first sound of the measure), a comparison destination sound, When the pitch difference with the reference sound matches, that is, when the comparison original sound and the comparison target sound are in a transposition relationship, it is determined as “relative match”.
さらに、小節内時間tで発音している比較元音と比較先音とが有り、かつ基準音(比較元小節の先頭音の音高)と比較元音との音高差の方向が、基準音(比較先小節の先頭音の音高)と比較先音との音高差の方向に一致する場合に「相対方向的一致」と判定する。加えて、小節内時間tで発音している比較元音と比較先音とが有り、かつ両音間の発音開始時間および消音時間の差が許容範囲内である場合もしくは小節内時間tで発音する比較元音および比較先音が共に存在せず、かつ現在一致判定の対象とされている比較元音および比較先音のそれぞれについて前音の消音時間と次音の発音開始時間とが許容範囲内にある場合に「リズム一致」と判定する。 Furthermore, there are a comparison original sound and a comparison destination sound that are pronounced at the time t in the bar, and the direction of the pitch difference between the reference sound (pitch of the first note of the comparison source measure) and the comparison original sound is the reference. When the pitch matches the direction of the pitch difference between the sound (the pitch of the first note of the comparison measure) and the comparison target sound, it is determined as “relative direction match”. In addition, if there is a comparison source sound and a comparison destination sound that are sounded at the measure time t, and the difference between the sound generation start time and the mute time between the two sounds is within the allowable range, or sound at the measure time t There is no comparison source sound and comparison destination sound, and the mute time of the previous sound and the start time of the next sound are acceptable for each of the comparison source sound and comparison target sound that are currently subject to matching If it is within the range, it is determined as “rhythm match”.
こうして一致判定し終えると、ポインタReで指定される比較元小節中の各比較元音と、ポインタLuで指定される比較先小節中の比較先音との完全一致期間を累算して得た積算時間を、比較先小節分の時間tで除算して一致率(sum1/t)を算出し、算出した一致率をポインタReとポインタLuとで指定されるマトリクス要素Mat1[Re][Lu]にストアする。 When the match determination is completed in this way, the complete match period between each comparison source sound in the comparison source measure designated by the pointer Re and the comparison destination sound in the comparison destination measure designated by the pointer Lu is obtained by accumulation. The integration time is divided by the time t for the comparison target bar to calculate the coincidence rate (sum1 / t), and the calculated coincidence rate is a matrix element Mat1 [Re] [Lu] specified by the pointer Re and the pointer Lu. To store.
また、ポインタReで指定される比較元小節中の各比較元音と、ポインタLuで指定される比較先小節中の比較先音との相対一致期間を累算して得た積算時間を、比較先小節分の時間tで除算して一致率(sum2/t)を算出し、算出した一致率をポインタReとポインタLuとで指定されるマトリクス要素Mat2[Re][Lu]にストアする。 Also, the accumulated time obtained by accumulating the relative coincidence period of each comparison source sound in the comparison source measure specified by the pointer Re and the comparison destination sound in the comparison destination measure specified by the pointer Lu is compared. The coincidence rate (sum2 / t) is calculated by dividing by the time t of the last measure, and the calculated coincidence rate is stored in the matrix element Mat2 [Re] [Lu] specified by the pointer Re and the pointer Lu.
さらに、ポインタReで指定される比較元小節中の各比較元音と、ポインタLuで指定される比較先小節中の比較先音との相対方向的一致期間を累算して得た積算時間を、比較先小節分の時間tで除算して一致率(sum3/t)を算出し、算出した一致率をポインタReとポインタLuとで指定されるマトリクス要素Mat3[Re][Lu]にストアする。 Further, the accumulated time obtained by accumulating the relative direction matching periods between the respective comparison original sounds in the comparison source measure designated by the pointer Re and the comparison destination sound in the comparison destination measure designated by the pointer Lu Then, the match rate (sum3 / t) is calculated by dividing by the time t for the comparison measure, and the calculated match rate is stored in the matrix element Mat3 [Re] [Lu] specified by the pointer Re and the pointer Lu. .
加えて、ポインタReで指定される比較元小節中の各比較元音と、ポインタLuで指定される比較先小節中の比較先音とのリズム一致期間を累算して得た積算時間を、比較先小節分の時間tで除算して一致率(sum4/t)を算出し、算出した一致率をポインタReとポインタLuとで指定されるマトリクス要素Mat4[Re][Lu]にストアする。 In addition, the accumulated time obtained by accumulating the rhythm coincidence period of each comparison source sound in the comparison source measure designated by the pointer Re and the comparison destination sound in the comparison destination measure designated by the pointer Lu, The coincidence rate (sum4 / t) is calculated by dividing by the time t for the comparison measure, and the calculated coincidence rate is stored in the matrix element Mat4 [Re] [Lu] specified by the pointer Re and the pointer Lu.
(4)グループラベリング処理の動作
次に、図8を参照してグループラベリング処理の動作を説明する。前述した構造分析処理のステップSB2(図6参照)を介して本処理が実行されると、CPU1は図8に図示するステップSD1を介してラベリング処理を実行する。ラベリング処理では、後述するように、ポインタReおよびポインタLuで指定されるマトリクス要素Mat1[Re][Lu]の中から閾値以上の一致率が規定数以上連続する範囲(小節区間)を探し出し、その範囲に対応する小節データMeasure中のラベル番号iLavelに同じ番号を付与すると共に、完全一致を表す値「0」をラベルオプションiLvOptionとして登録する。
(4) Group labeling operation
Next, the operation of the group labeling process will be described with reference to FIG. When this process is executed via step SB2 (see FIG. 6) of the structural analysis process described above, the
続いて、ステップSD2では、類似部分ラベリング補正1処理を実行する。類似部分ラベリング補正1処理では、後述するように、ポインタReで指定される比較元小節とポインタLuで指定される比較先小節とに同じラベル番号iLavelが付与されておらず、しかもマトリクス要素Mat2[Re][Lu]の中から閾値以上の相対一致率が規定数以上連続する範囲、つまり比較元小節と比較先小節とが転調関係にあると見られる小節区間を探し出し、それに該当する小節区間を「類似性のある範囲」と表すように、対応する小節データMeasureのラベル番号iLavelおよびラベルオプションiLvOptionを設定する。
Subsequently, in step SD2, a similar
次いで、ステップSD3では、類似部分ラベリング補正2処理を実行する。類似部分ラベリング補正2処理は、上記ステップSD2の類似部分ラベリング補正1処理とほぼ同一であるであるので、その詳細な動作フローの説明については省略する。類似部分ラベリング補正2処理では、ポインタReで指定される比較元小節とポインタLuで指定される比較先小節とに同じラベル番号iLavelが付与されておらず、しかもマトリクス要素Mat3[Re][Lu]の中から閾値以上の相対方向的な一致率が規定数以上連続する範囲(小節区間)を探し出し、それに該当する小節区間を「音高差が類似する範囲」と表すように、対応する小節データMeasureのラベル番号iLavelおよびラベルオプションiLvOptionを設定する。
Next, in step SD3, a similar
次に、ステップSD4を介して類似部分ラベリング補正3処理を実行する。類似部分ラベリング補正3処理は、上記ステップSD2の類似部分ラベリング補正1処理とほぼ同一であるであるので、その詳細な動作フローの説明については省略する。類似部分ラベリング補正3処理では、ポインタReで指定される比較元小節とポインタLuで指定される比較先小節とに同じラベル番号iLavelが付与されておらず、しかもマトリクス要素Mat4[Re][Lu]の中から閾値以上のリズム一致率が規定数以上連続する範囲(小節区間)を探し出し、それに該当する小節区間を「リズムが一致する範囲」と表すように、対応する小節データMeasureのラベル番号iLavelおよびラベルオプションiLvOptionを設定する。
Next, a similar
そして、ステップSD5を介してラベリング検証処理を実行する。このラベリング検証処理では、後述するように、上記ステップSD1のラベリング処理によりラベリングされた小節区間が長過ぎる場合、すなわちラベリング先頭小節(ポインタRe)と、そこから規定数以上連続した小節(ポインタRetmp)とで指定されるマトリクス要素Mat1[Re][Retmp]の一致率が閾値以上の場合、そのポインタRetmpで指定される小節の1つ前の小節を区間終端とするようにラベリングされた小節区間を分割するようになっている。 Then, a labeling verification process is executed via step SD5. In this labeling verification process, as will be described later, when the measure section labeled by the labeling process in step SD1 is too long, that is, a labeling start measure (pointer Re) and a number of consecutive measures (pointer Retmp) from there. If the matching rate of the matrix element Mat1 [Re] [Retmp] specified by the above is greater than or equal to the threshold value, a bar section labeled so as to end the section immediately before the bar specified by the pointer Retmp It comes to divide.
(5)ラベリング処理の動作
次に、図9を参照してラベリング処理の動作を説明する。上述したグループラベリング処理のステップSD1(図8参照)を介して本処理が実行されると、図9に図示するステップSE1に進み、先頭小節を指定する値をポインタReにセットする。続いて、ステップSE2では、ポインタReで指定される比較元小節が曲終端を超えたか否かを判断する。曲終端を超えていなければ、判断結果は「NO」となり、ステップSE3に進む。
(5) Labeling process operation
Next, the operation of the labeling process will be described with reference to FIG. When this process is executed via step SD1 (see FIG. 8) of the group labeling process described above, the process proceeds to step SE1 shown in FIG. 9, and a value specifying the first measure is set in the pointer Re. Subsequently, in step SE2, it is determined whether or not the comparison source measure designated by the pointer Re has exceeded the end of the song. If it does not exceed the end of the song, the determination result is “NO”, and the flow proceeds to step SE3.
ステップSE3では、ポインタReで指定される比較元小節にラベル付与されているか否かを判断する。ラベル付与とは、ポインタReおよびポインタLuで指定されるマトリクス要素Mat1[Re][Lu]の中で、閾値以上の一致率を有するマトリクス要素が連続する範囲(小節区間)を一致性の高いグループとし、そのグループにラベル番号(後述する)を付与することを意味する。そして、ポインタReで指定される比較元小節にラベル付与済みならば、上記ステップSE3の判断結果は「NO」になり、ステップSE13に進み、ポインタReを歩進させた後、上述のステップSE2に処理を戻す。 In step SE3, it is determined whether or not a label is attached to the comparison source measure designated by the pointer Re. Labeling is a group having a high consistency in a range (a bar section) in which matrix elements having a matching rate equal to or higher than a threshold value are continuous among matrix elements Mat1 [Re] [Lu] specified by the pointer Re and the pointer Lu. And a label number (to be described later) is assigned to the group. If the comparison source measure specified by the pointer Re has already been labeled, the determination result in step SE3 is “NO”, the process proceeds to step SE13, the pointer Re is incremented, and then the process proceeds to step SE2. Return processing.
一方、ポインタReで指定される比較元小節にラベル付与がなされていなければ、上記ステップSE3の判断結果は「YES」になり、ステップSE4に進み、先頭小節を指定する値をポインタLuにセットする。次いで、ステップSE5では、ポインタLuで指定される比較先小節が曲終端を超えたか否かを判断する。曲終端を超えていなければ、判断結果は「NO」となり、ステップSE6に進む。 On the other hand, if the comparison source measure specified by the pointer Re is not labeled, the determination result in step SE3 is “YES”, and the process proceeds to step SE4, in which a value specifying the first measure is set in the pointer Lu. . Next, in step SE5, it is determined whether or not the comparison destination bar specified by the pointer Lu has exceeded the end of the song. If it does not exceed the end of the song, the determination result is “NO”, and the flow proceeds to step SE6.
ステップSE6では、ポインタReおよびポインタLuで指定されるマトリクス要素Mat1[Re][Lu]の一致率が閾値以上であるかどうかを判断する。マトリクス要素Mat1[Re][Lu]の一致率が閾値未満ならば、判断結果は「NO」になり、ステップSE10に進み、ポインタLuを歩進させ、比較先小節を次の小節に設定した後、上述のステップSE5に処理を戻す。 In step SE6, it is determined whether or not the matching rate of the matrix elements Mat1 [Re] [Lu] specified by the pointer Re and the pointer Lu is equal to or greater than a threshold value. If the coincidence rate of the matrix element Mat1 [Re] [Lu] is less than the threshold value, the determination result is “NO”, the process proceeds to step SE10, the pointer Lu is incremented, and the comparison target bar is set to the next bar. Then, the process returns to step SE5.
一方、マトリクス要素Mat1[Re][Lu]の一致率が閾値以上ならば、上記ステップSE6の判断結果は「NO」になり、ステップSE7に進む。ステップSE7では、閾値以上の一致率を有するマトリクス要素Mat1[Re][Lu]の範囲i(小節数)、すなわちMat1[Re+i][Lu+i]を検出する。次いで、ステップSE8では、閾値以上の一致率が連続した小節数iを保存する。そして、ステップSE9では、現在のポインタLuに、閾値以上の一致率が連続した小節数iを加算してポインタLuを更新させた後、上述のステップSE5に処理を戻す。 On the other hand, if the coincidence rate of the matrix elements Mat1 [Re] [Lu] is equal to or greater than the threshold value, the determination result in Step SE6 is “NO”, and the flow proceeds to Step SE7. In step SE7, a range i (the number of measures) of the matrix element Mat1 [Re] [Lu] having a matching rate equal to or higher than the threshold, that is, Mat1 [Re + i] [Lu + i] is detected. Next, in step SE8, the number of bars i having a coincidence rate equal to or higher than the threshold value is stored. In step SE9, the pointer Lu is updated by adding the current pointer Lu with the number of measures i having a matching rate equal to or higher than the threshold value, and then the process returns to step SE5.
以後、更新されたポインタLuが曲終端を超える迄、一致率が連続して閾値を超える小節数iを検出する。そして、更新されたポインタLuが曲終端を超えると、上記ステップSE5の判断結果が「YES」になり、ステップSE11に進む。ステップSE11では、規定数以上の小節が閾値以上であるか否かを判断する。検出した小節数iが規定数未満であると、判断結果は「NO」になり、ステップSE13に進み、ポインタReを歩進させた後、前述したステップSE2に処理を戻す。 Thereafter, until the updated pointer Lu exceeds the end of the song, the number i of bars whose coincidence rate continuously exceeds the threshold is detected. When the updated pointer Lu exceeds the end of the music piece, the determination result in step SE5 is “YES”, and the flow proceeds to step SE11. In step SE11, it is determined whether or not more than a specified number of measures is greater than or equal to a threshold value. If the detected number of bars i is less than the specified number, the determination result is “NO”, the process proceeds to step SE13, the pointer Re is incremented, and the process returns to step SE2.
これに対し、検出した小節数iが規定数以上ならば、上記ステップSE11の判断結果が「YES」になり、ステップSE12に進み、採番およびラベリングを行う。すなわち、ステップSE12では、RAM3の小節データエリアに格納される小節データMeasure[0]〜[N]の内、閾値以上の一致率が連続した小節データMeasure中のラベル番号iLavelに同じ番号を付与すると共に、ラベルオプションiLvOptionとして、完全一致を表す値「0」をセットする。
On the other hand, if the detected number of bars i is greater than or equal to the specified number, the determination result in step SE11 is “YES”, and the process proceeds to step SE12 to perform numbering and labeling. That is, in step SE12, among the measure data Measurement [0] to [N] stored in the measure data area of the
この後、ステップSE13に進み、ポインタReを歩進させた後、前述したステップSE2に処理を戻す。以後、歩進されたポインタReで指定される比較元小節が曲終端を超える迄、上述したステップSE3以降の動作を繰り返す。そして、歩進されたポインタReで指定される比較元小節が曲終端を超えると、ステップSE2の判断結果が「YES」となり、本処理を終える。 Thereafter, the process proceeds to step SE13, the pointer Re is incremented, and the process returns to step SE2 described above. Thereafter, the operation from step SE3 onward is repeated until the comparison source measure designated by the stepped pointer Re exceeds the end of the music piece. Then, when the comparison source measure specified by the stepped pointer Re exceeds the end of the music piece, the determination result in step SE2 is “YES”, and this processing is finished.
このように、ラベリング処理では、ポインタReおよびポインタLuで指定されるマトリクス要素Mat1[Re][Lu]の中から閾値以上の一致率が規定数以上連続する範囲(小節区間)を探し出し、その範囲に対応する小節データMeasure中のラベル番号iLavelに同じ番号を付与すると共に、完全一致を表す値「0」をラベルオプションiLvOptionとして登録する。 As described above, in the labeling process, a range (bar segment) in which the matching rate equal to or higher than the threshold value continues from the matrix element Mat1 [Re] [Lu] specified by the pointer Re and the pointer Lu continues for a specified number or more is searched for. The same number is assigned to the label number iLevel in the measure data Measurement corresponding to, and a value “0” representing complete match is registered as a label option iLvOption.
なお、マトリクス要素Mat1[Re][Lu]中で閾値以上の一致率が規定数以上連続する範囲(小節区間)を検索し、該当する区間の各小節データMeasureにラベル番号iLavelを付与すると共に、完全一致を表す値「0」をラベルオプションiLvOptionに登録する処理操作全体をラベリングと称す。 In addition, a range (bar segment) in which the matching rate equal to or greater than the threshold value continues in the matrix element Mat1 [Re] [Lu] continues for a specified number or more, and a label number iLevel is assigned to each measure data Measurement in the corresponding segment. The entire processing operation for registering the value “0” representing complete match in the label option iLvOption is referred to as labeling.
(6)類似部分ラベリング補正1処理の動作
次に、図10を参照して類似部分ラベリング補正1処理の動作を説明する。上述したグループラベリング処理のステップSD2(図8参照)を介して本処理が実行されると、CPU1は図10に図示するステップSF1に進み、小節の先頭を指定する値をポインタReにセットする。続いて、ステップSF2では、ポインタReで指定される比較元小節が曲終端を超えたか否かを判断する。曲終端を超えていなければ、判断結果は「NO」となり、次のステップSF3に進む。
(6) Operation of similar
Next, the operation of the similar
ステップSF3では、小節の先頭を指定する値をポインタLuにセットする。次いで、ステップSF4では、ポインタLuで指定される比較先小節が曲終端を超えたか否かを判断する。曲終端を超えていなければ、判断結果は「NO」となり、ステップSF5に進む。ステップSF5では、ポインタReで指定される比較元小節とポインタLuで指定される比較先小節とに同じラベル番号iLavelが付与されていないかどうかを判断する。同じラベル番号iLavelが付与されていれば、判断結果は「NO」になり、ステップSF12に進み、ポインタLuを歩進させた後、上述のステップSF4に処理を戻す。 In step SF3, a value for designating the head of the measure is set in the pointer Lu. Next, in step SF4, it is determined whether or not the comparison destination bar designated by the pointer Lu has exceeded the end of the song. If it does not exceed the end of the song, the determination result is “NO”, and the flow proceeds to step SF5. In step SF5, it is determined whether or not the same label number iLevel is assigned to the comparison source measure designated by the pointer Re and the comparison destination measure designated by the pointer Lu. If the same label number iLevel is assigned, the determination result is “NO”, the process proceeds to step SF12, the pointer Lu is incremented, and the process returns to step SF4 described above.
一方、ポインタReで指定される比較元小節とポインタLuで指定される比較先小節とに同じラベル番号iLavelが付与されていない場合には、上記ステップSF5の判断結果が「YES」になり、ステップSF6に進む。ステップSF6では、ポインタReおよびポインタLuで指定されるマトリクス要素Mat2[Re][Lu]の相対一致率が閾値以上であるかどうかを判断する。マトリクス要素Mat2[Re][Lu]の相対一致率が閾値未満ならば、判断結果は「NO」になり、ステップSF12に進み、ポインタLuを歩進させた後、上述のステップSF4に処理を戻す。 On the other hand, if the same label number iLevel is not assigned to the comparison source measure specified by the pointer Re and the comparison destination measure specified by the pointer Lu, the determination result in step SF5 is “YES”. Proceed to SF6. In step SF6, it is determined whether or not the relative coincidence rate of the matrix element Mat2 [Re] [Lu] specified by the pointer Re and the pointer Lu is equal to or greater than a threshold value. If the relative coincidence rate of the matrix element Mat2 [Re] [Lu] is less than the threshold value, the determination result is “NO”, the process proceeds to step SF12, the pointer Lu is incremented, and the process returns to step SF4 described above. .
これに対し、マトリクス要素Mat2[Re][Lu]の相対一致率が閾値以上ならば、上記ステップSF6の判断結果が「YES」になり、ステップSF7に進む。ステップSF7では、閾値以上の相対一致率を有するマトリクス要素Mat2[Re][Lu]の範囲i(小節数)、すなわちMat2[Re+i][Lu+i]を検出する。次いで、ステップSF8では、閾値以上の相対一致率が連続した小節数iを保存する。そして、ステップSF9では、上記ステップSF7にて検出した小節数iが規定小節以上であるか否かを判断する。 On the other hand, if the relative coincidence rate of the matrix element Mat2 [Re] [Lu] is equal to or greater than the threshold value, the determination result in Step SF6 is “YES”, and the process proceeds to Step SF7. In step SF7, a range i (the number of measures) of the matrix element Mat2 [Re] [Lu] having a relative coincidence rate equal to or higher than the threshold, that is, Mat2 [Re + i] [Lu + i] is detected. Next, in step SF8, the number of measures i in which the relative coincidence rate equal to or higher than the threshold is continuous is stored. In step SF9, it is determined whether or not the number of measures i detected in step SF7 is equal to or greater than a specified measure.
検出した小節数iが規定小節未満ならば、判断結果は「NO」になり、ステップSF12に進み、ポインタLuを歩進させた後、上述のステップSF4に処理を戻す。一方、検出した小節数iが規定小節以上であると、上記ステップSF9の判断結果が「YES」になり、ステップSF10に進み、ラベル付け替え処理を実行する。 If the detected number of measures i is less than the specified measure, the determination result is “NO”, the process proceeds to step SF12, the pointer Lu is incremented, and the process returns to step SF4 described above. On the other hand, if the detected number of bars i is equal to or greater than the specified number of bars, the determination result in step SF9 is “YES”, and the process proceeds to step SF10 to execute label reassignment processing.
ラベル付け替え処理では、
(イ)比較元小節Reおよび比較先小節Luの双方にラベル番号iLavelが付与されている場合には、比較先小節Luのラベル番号iLavelを比較元小節Reのラベル番号iLavelに書き換え、比較先小節LuのラベルオプションiLvOptionに類似(相対一致)を表す値「1」を設定する。
In the relabeling process,
(A) When the label number iLevel is assigned to both the comparison source measure Re and the comparison destination measure Lu, the label number iLabel of the comparison destination measure Lu is rewritten to the label number iLevel of the comparison source measure Re, and the comparison destination measure Re A value “1” representing similarity (relative match) is set in the Lu label option iLvOption.
(ロ)比較元小節Reだけにラベル番号iLavelが付与されている場合には、そのラベル番号iLavelを比較先小節Luのラベル番号iLavelに設定すると共に、比較先小節LuのラベルオプションiLvOptionに値「1」を設定する。 (B) When the label number iLabel is assigned only to the comparison source measure Re, the label number iLevel is set to the label number iLabel of the comparison target measure Lu, and the value “LvOption” of the comparison target measure Lu is set to “ 1 ”is set.
(ハ)比較先小節Luだけにラベル番号iLavelが付与されている場合には、そのラベル番号iLavelを比較元小節Reのラベル番号iLavelに設定すると共に、比較元小節ReのラベルオプションiLvOptionに値「1」を設定する。 (C) When the label number iLabel is assigned only to the comparison target measure Lu, the label number iLevel is set to the label number iLabel of the comparison source measure Re, and the value “LvOption” of the comparison source measure Re is set to the value “L”. 1 ”is set.
(ニ)比較元小節Reおよび比較先小節Luの双方にラベル番号iLavelが付与されていない場合には、新たに採番したラベル番号を、比較元小節Reおよび比較先小節Luのラベル番号iLavelに設定すると共に、比較元小節ReのラベルオプションiLvOptionに値「0」を、比較先小節LuのラベルオプションiLvOptionに値「1」を設定する。 (D) When the label number iLabel is not given to both the comparison source measure Re and the comparison destination measure Lu, the newly assigned label number is assigned to the label number iLevel of the comparison source measure Re and the comparison destination measure Lu. At the same time, the value “0” is set in the label option iLvOption of the comparison source measure Re, and the value “1” is set in the label option iLvOption of the comparison destination measure Lu.
こうしたラベル付け替え処理が完了すると、ステップSF11に進み、現在のポインタLuに、閾値以上の相対一致率が連続した小節数iを加算してポインタLuを更新させた後、上述のステップSF4に処理を戻す。以後、更新されたポインタLuで指定される比較先小節が曲終端を超える迄、相対一致率が規定小節以上連続して閾値を超える小節数iを探し出し、該当する小節区間についてラベル付け替えする処理を繰り返す。 When such label reassignment processing is completed, the process proceeds to step SF11, and the pointer Lu is updated by adding the current pointer Lu to the number of measures i having a relative coincidence rate equal to or higher than the threshold value, and then the process proceeds to step SF4 described above. return. Thereafter, until the comparison destination bar specified by the updated pointer Lu exceeds the end of the song, a process is performed in which the number of bars i whose relative coincidence rate exceeds the specified bar and continuously exceeds the threshold is searched, and the corresponding bar section is relabeled. repeat.
そして、更新されたポインタLuで指定される比較先小節が曲終端を超えると、上記ステップSF4の判断結果が「YES」になり、ステップSF13に進み、ポインタReを歩進させた後、上述のステップSF2に処理を戻す。以後、歩進されたポインタReで指定される比較元小節が曲終端を超える迄、上述したステップSF3以降の処理を繰り返す。そして、歩進されたポインタReで指定される比較元小節が曲終端を超えると、ステップSF2の判断結果が「YES」となり、本処理を終える。 Then, if the comparison measure specified by the updated pointer Lu exceeds the end of the song, the determination result in step SF4 is “YES”, the process proceeds to step SF13, the pointer Re is incremented, and The process returns to step SF2. Thereafter, the above-described processing after step SF3 is repeated until the comparison source measure designated by the stepped pointer Re exceeds the end of the song. Then, when the comparison source measure specified by the stepped pointer Re exceeds the end of the song, the determination result in step SF2 is “YES”, and this processing is finished.
以上のように、類似部分ラベリング補正1処理では、ポインタReで指定される比較元小節とポインタLuで指定される比較先小節とに同じラベル番号iLavelが付与されておらず、しかもマトリクス要素Mat2[Re][Lu]の中から閾値以上の相対一致率が規定数以上連続する範囲、すなわち比較元小節と比較先小節とが転調関係にあると見られる小節区間を探し出し、該当する小節区間を「類似性のある範囲」と表すように対応する小節データMeasureのラベル番号iLavelおよびラベルオプションiLvOptionを設定するようになっている。
As described above, in the similar
(7)ラベリング検証処理の動作
次に、図11〜図13を参照してラベリング検証処理の動作を説明する。上述したグループラベリング処理のステップSD5(図8参照)を介して本処理が実行されると、CPU1は図11に図示するステップSG1に処理を進め、先頭小節を指定する値をポインタReにセットする。続いて、ステップSG2では、ポインタReで指定される小節が曲終端を超えたか否かを判断する。曲終端を超えていなければ、判断結果は「NO」になり、ステップSG3に進む。ステップSG3では、ポインタReで指定される小節が、ラベリングされた区間の先頭小節(以下、ラベリング先頭小節と称す)であるか否かを判断する。
(7) Labeling verification processing operation
Next, the operation of the labeling verification process will be described with reference to FIGS. When this processing is executed via the above-described group labeling processing step SD5 (see FIG. 8), the
ラベリング先頭小節でなければ、判断結果は「NO」になり、ステップSG4に進み、ポインタReを歩進させた後、上記ステップSG2に処理を戻す。以後、上記ステップSG2〜SG4を繰り返すことによって、曲終端に達するまでの間、ポインタReを歩進させながらラベリング先頭小節を検索する。そして、その過程でラベリング先頭小節が見つかると、上記ステップSG3の判断結果が「YES」になり、ステップSG5に進み、現在のポインタReを、ラベリング先頭小節を指定するポインタRetmpにセットする。 If it is not the labeling head measure, the determination result is “NO”, the process proceeds to step SG4, the pointer Re is incremented, and the process returns to step SG2. Thereafter, by repeating the above steps SG2 to SG4, the labeling head measure is searched while incrementing the pointer Re until the end of the music is reached. If a labeling head measure is found in the process, the determination result in step SG3 is “YES”, the process proceeds to step SG5, and the current pointer Re is set to a pointer Retmp that designates the labeling head measure.
次いで、ステップSG6では、ポインタRetmpがラベリングされた小節の後端(以下、ラベリング後端小節と称す)に達したか否かを判断し、続いて、図12に図示するステップSG7では、ポインタRetmpがラベリング先頭小節を指定するか否かを判断する。以下、ポインタRetmpがラベリング先頭小節を指定する場合と、ラベリング先頭後端を指定する場合とに分けて動作を説明する。 Next, in step SG6, it is determined whether or not the pointer Retmp has reached the rear end of the labeled measure (hereinafter referred to as the labeled rear end measure). Subsequently, in step SG7 shown in FIG. 12, the pointer Retmp Determines whether or not specifies the first bar of the labeling. The operation will be described separately for the case where the pointer Retmp designates the labeling head measure and the case where the labeling head rear end is designated.
<ポインタRetmpがラベリング先頭小節を指定する場合>
上記ステップSG5(図11参照)を介して最初にステップSG6へ進むパスでは、ポインタRetmpがラベリング先頭小節を指定するので、上記ステップSG6の判断結果は「NO」になり、図12に図示するステップSG7に進み、ここでの判断結果が「YES」になり、ステップSG8に進む。
<When pointer Retmp specifies the first measure of labeling>
In the path that first proceeds to step SG6 via step SG5 (see FIG. 11), the pointer Retmp designates the labeling head measure, so the determination result in step SG6 is “NO”, and the step shown in FIG. Proceed to SG7, and the determination result here is “YES”, and the process proceeds to Step SG8.
ステップSG8では、ポインタReからポインタRetmpまでの小節数が規定数以上であるかどうかを判断する。初めてステップSG8に進むパスでは、ポインタReとポインタRetmpとが同一なので、判断結果は「NO」になり、ステップSG9に進む。ステップSG9では、ポインタRetmpで指定されるラベリング先頭小節の小節データMeasureに含まれるラベル内状態iLvStatusを「0」にセットして先頭の状態を解除する。 In step SG8, it is determined whether or not the number of bars from the pointer Re to the pointer Retmp is greater than or equal to a specified number. In the path that proceeds to step SG8 for the first time, since the pointer Re and the pointer Retmp are the same, the determination result is “NO”, and the flow proceeds to step SG9. In step SG9, the in-label state iLvStatus included in the measure data Measurement of the labeling head measure specified by the pointer Retmp is set to “0” to cancel the head state.
なお、小節データMeasure中のラベル内状態iLvStatus(図3参照)は、ラベリングされた小節の先頭であることを表す場合に「1」、ラベリングされた小節の後端であることを表す場合に「2」、状態解除を表す場合に「0」となるフラグである。 The in-label state iLvStatus (see FIG. 3) in the measure data “Measure” is “1” when indicating the beginning of the labeled measure, and “1” when indicating the trailing end of the labeled measure. 2 ”is a flag that becomes“ 0 ”when the state is released.
さて、こうして先頭の状態を解除し終えると、ステップSG10に進み、ポインタRetmpを歩進させた後、再び図11に図示するステップSG6に処理を戻す。以後、ポインタRetmpがラベリング先頭小節を指定し、かつポインタReからポインタRetmpまでの小節数が規定数以上存在するようになるまで、上述したステップSG6〜SG10を繰り返す。そして、ポインタRetmpの歩進に応じて、上記条件を満たすと、ステップSG8の判断結果が「YES」になり、ステップSG11に進む。 When the leading state has been canceled, the process proceeds to step SG10, the pointer Retmp is incremented, and the process is returned to step SG6 shown in FIG. Thereafter, the above steps SG6 to SG10 are repeated until the pointer Retmp designates the labeling head measure and the number of measures from the pointer Re to the pointer Retmp is greater than or equal to the specified number. If the above condition is satisfied in accordance with the progress of the pointer Retmp, the determination result in step SG8 is “YES”, and the flow proceeds to step SG11.
ステップSG11では、ポインタReとポインタRetmpとで指定されるマトリクス要素Mat1[Re][Lu]の一致率が閾値以上であるか否かを判断する。閾値未満ならば、判断結果が「NO」になり、上述したステップSG9に進む。 In step SG11, it is determined whether or not the matching rate of the matrix elements Mat1 [Re] [Lu] specified by the pointer Re and the pointer Retmp is equal to or greater than a threshold value. If it is less than the threshold value, the determination result is “NO”, and the process proceeds to step SG9 described above.
一方、マトリクス要素Mat1[Re][Retmp]の一致率が閾値以上であると、上記ステップSG11の判断結果が「YES」になり、ステップSG12に進む。ステップSG12では、ポインタRetmpで指定される小節の1つ前の小節データMeasureに含まれるラベル内状態iLvStatusを「2」にセットしてラベリング後端小節に設定する。これによりラベリングされた小節区間が切断される。 On the other hand, if the coincidence rate of the matrix elements Mat1 [Re] [Retmp] is equal to or greater than the threshold value, the determination result in Step SG11 is “YES”, and the process proceeds to Step SG12. In step SG12, the in-label state iLvStatus included in the measure data Measurement immediately before the measure specified by the pointer Retmp is set to “2” and set to the labeling rear end measure. As a result, the labeled bar section is cut.
<ポインタRetmpがラベリングされた小節の後端に達した場合>
以上のようにして、ラベリングされた小節区間が切断された後に、ステップSG10を介してポインタRetmpを歩進させた後、再び図11に図示するステップSG6に処理を戻す。そして、歩進されたポインタRetmpがラベリング後端小節に達すると、このステップSG6の判断結果が「YES」になり、図12に図示するステップSG13に進む。
<When the pointer Retmp reaches the end of the labeled bar>
As described above, after the labeled bar section is cut, the pointer Retmp is incremented via step SG10, and then the process returns to step SG6 shown in FIG. When the stepped pointer Retmp reaches the labeling rear end bar, the determination result in step SG6 becomes “YES”, and the process proceeds to step SG13 shown in FIG.
ステップSG13では、エラー状態の有無を判断する。エラー状態とは、ポインタRetmpで指定される小節のラベル番号iLavelと、次小節のラベル番号iLavelとが同じで、ポインタRetmpの次の小節の小節データMeasure中のラベル内状態iLvStatusが「1(先頭)」でない状態を指す。そして、エラー状態でなければ、判断結果は「NO」になり、ステップSG14に進み、ポインタRetmpをポインタReにセットした後、前述のステップSG4(図11参照)に処理を戻す。 In step SG13, it is determined whether there is an error state. In the error state, the label number iLabel of the bar specified by the pointer Retmp is the same as the label number iLabel of the next bar, and the in-label state iLvStatus in the bar data Measurement of the next bar of the pointer Retmp is “1 (first ) "Means a state that is not. If it is not in an error state, the determination result is “NO”, the process proceeds to step SG14, the pointer Retmp is set to the pointer Re, and then the process returns to step SG4 (see FIG. 11).
以後、上述した過程を実行し、ラベリング先頭小節から規定数以上存在し、かつポインタReとポインタRetmpとで指定されるマトリクス要素Mat1[Re][Retmp]の一致率が閾値以上であれば、ポインタRetmpで指定される小節の1つ前の小節データMeasureに含まれるラベル内状態iLvStatusを「2」にセットしてラベリングされた小節区間を切断する。 Thereafter, the above-described process is executed, and if there is a predetermined number or more from the labeling head measure and the matching rate of the matrix elements Mat1 [Re] [Retmp] specified by the pointer Re and the pointer Retmp is equal to or greater than a threshold value, the pointer The labeled section section is cut by setting the in-label state iLvStatus included in the measure data Measurement immediately before the measure specified by Retmp to “2”.
一方、上記ステップSG13にてエラー状態が検出されると、当該ステップSG13の判断結果が「YES」になり、ステップSG15に進み、ポインタRetmpを歩進させる。次いで、ステップSG16では、ポインタReとポインタRetmpとで指定されるマトリクス要素Mat1[Re][Retmp]の一致率が閾値以上であるか否かを判断する。 On the other hand, if an error state is detected in step SG13, the determination result in step SG13 is “YES”, the process proceeds to step SG15, and the pointer Retmp is incremented. Next, in step SG16, it is determined whether or not the matching rate of the matrix elements Mat1 [Re] [Retmp] specified by the pointer Re and the pointer Retmp is equal to or greater than a threshold value.
マトリクス要素Mat1[Re][Retmp]の一致率が閾値以上ならば、判断結果は「YES」になり、ステップSG17に進み、ポインタRetmpで指定される小節の小節データMeasureに含まれるラベル内状態iLvStatusを「1」にセットしてラベリング先頭小節に設定した後、上述のステップSG10に処理を戻す。 If the matching rate of the matrix element Mat1 [Re] [Retmp] is equal to or greater than the threshold value, the determination result is “YES”, the process proceeds to step SG17, and the in-label state iLvStatus included in the measure data Measurement of the measure specified by the pointer Retmp. Is set to “1” and set to the labeling head measure, and then the process returns to step SG10 described above.
これに対し、ポインタReとポインタRetmpとで指定されるマトリクス要素Mat1[Re][Retmp]の一致率が閾値未満であると、上記ステップSG16の判断結果が「NO」となり、ステップSG18に進み、ポインタRetmpで指定される小節の小節データMeasureに含まれるラベル番号iLavelおよびラベル内状態iLvStatusを初期化してラベル解除する。 On the other hand, if the matching rate of the matrix elements Mat1 [Re] [Retmp] specified by the pointer Re and the pointer Retmp is less than the threshold value, the determination result in step SG16 is “NO”, and the process proceeds to step SG18. The label number iLevel and the in-label state iLvStatus included in the measure data Measure of the measure specified by the pointer Retmp are initialized and the label is released.
そして、ステップSG19では、ポインタRetmpで指定される小節のラベル番号iLavelと、次小節のラベル番号iLavelとが同じになるか否か、つまりエラー状態が連続しているかどうかを判断する。エラー状態が連続していると、判断結果が「YES」になり、ステップSG20に進み、ポインタRetmpを歩進させた後、上記ステップSG18に処理を戻す。以後、エラー状態が連続すれば、ステップSG18〜SG20を繰り返す。そして、エラー状態でなくなると、上記ステップSG19の判断結果が「NO」になり、上述したステップSG14に処理を進める。 In step SG19, it is determined whether or not the label number iLevel of the bar specified by the pointer Retmp is the same as the label number iLevel of the next bar, that is, whether or not the error state is continuous. If the error state continues, the determination result is “YES”, the process proceeds to step SG20, the pointer Retmp is incremented, and the process returns to step SG18. Thereafter, if the error state continues, steps SG18 to SG20 are repeated. When the error state disappears, the determination result in step SG19 is “NO”, and the process proceeds to step SG14 described above.
以上のように、ラベリング検証処理では、ラベリングされた小節区間が長過ぎる場合、つまりラベリング先頭小節から規定値以上の小節数が連続する場合には、ポインタReとポインタRetmpとで指定されるマトリクス要素Mat1[Re][Retmp]を参照し、その一致率が閾値以上であれば、ポインタRetmpで指定される小節の1つ前の小節データMeasureに含まれるラベル内状態iLvStatusを「2」にセットしてラベリングされた小節区間を切断する。 As described above, in the labeling verification process, when the labeled measure section is too long, that is, when the number of measures equal to or greater than the specified value continues from the labeling start measure, the matrix element specified by the pointer Re and the pointer Retmp If Mat1 [Re] [Retmp] is referenced and the matching rate is equal to or greater than the threshold, the in-label state iLvStatus included in the measure data Measurement immediately before the measure specified by the pointer Retmp is set to “2”. Cut the labeled bar section.
例えば、マトリクス要素Mat1[Re][Retmp]において、図13(a)に図示するように、ラベリングされた小節区間が長過ぎ、ラベリング先頭小節から規定数以上連続するような場合には、同図(b)に図示する通り、ポインタRetmpで指定される小節の1つ前の小節で分断するようになっている。 For example, in the matrix element Mat1 [Re] [Retmp], as shown in FIG. 13A, when the labeled bar section is too long and continues from the labeling head bar by a predetermined number or more, As shown in FIG. 5B, the measure is divided at the measure immediately before the measure specified by the pointer Retmp.
(8)演奏難易度計算処理の動作
次に、図14を参照して演奏難易度計算処理の動作を説明する。前述したメインルーチンのステップSA3(図5参照)を介して本処理が実行されると、CPU1は図14に図示するステップSH1に進み、RAM3の曲データエリアに格納される曲データMidiEvent[0]〜[N]に運指情報cfigが付与されているか否かを判断する。運指情報cfigが付与されていなければ、判断結果は「NO」になり、ステップSH2に進み、曲データMidiEvent[0]〜[N]に基づき運指情報cfigを生成して曲データMidiEvent[0]〜[N]に付与する運指情報生成処理を実行した後、ステップSH3に進む。
(8) Performance difficulty calculation processing
Next, the operation of the performance difficulty level calculation process will be described with reference to FIG. When this process is executed via step SA3 (see FIG. 5) of the main routine described above, the
一方、運指情報cfigが既に曲データMidiEvent[0]〜[N]に付与されている場合には、上記ステップSH1の判断結果が「YES」になり、ステップSH3に進む。ステップSH3では、先頭小節を指定する値をポインタMsにセットする。続いて、ステップSH4では、ポインタMsで指定される小節が曲終端を超えたか否かを判断する。曲終端を超えていなければ、判断結果は「NO」となり、次のステップSH5に進む。 On the other hand, if the fingering information cfg is already assigned to the song data MidiEvent [0] to [N], the determination result in step SH1 is “YES”, and the process proceeds to step SH3. In step SH3, a value for designating the first measure is set in the pointer Ms. Subsequently, in step SH4, it is determined whether or not the measure specified by the pointer Ms has exceeded the end of the song. If the song end is not exceeded, the determination result is “NO”, and the flow proceeds to the next step SH5.
ステップSH5では、ポインタMsで指定される小節の小節データMeasure中にラベル番号iLavelが付与され、かつポインタMsで指定される小節がラベリング先頭小節であるか否かを判断する。ラベル番号iLavelが付与され、かつラベリング先頭小節でなければ、判断結果は「NO」になり、ステップSH12に進み、ポインタMsを歩進させて次の小節を指定した後、上述したステップSH4に処理を戻す。 In step SH5, it is determined whether or not the label number iLabel is given in the measure data Measurement of the measure specified by the pointer Ms, and the measure specified by the pointer Ms is the labeling first measure. If the label number iLevel is assigned and the label is not the first bar of the labeling, the determination result is “NO”, the process proceeds to step SH12, the pointer Ms is incremented to specify the next bar, and the process proceeds to step SH4 described above. To return.
一方、ポインタMsで指定される小節の小節データMeasureにラベル番号iLavelが付与され、かつポインタMsで指定される小節がラベリング先頭小節ならば、上記ステップSH5の判断結果は「YES」になり、ステップSH6に進む。ステップSH6では、ポインタMsで指定される小節の次の小節を指定するポインタをポインタMstにストアする。次いで、ステップSH7〜SH8では、ポインタMstを歩進させながら、ラベル番号iLavelが付与され、かつラベリング後端の小節を探し出す。そして、該当する小節(ラベル番号iLavelが付与され、かつラベリング後端の小節)が見つかると、ステップSH7の判断結果が「YES」になり、ステップSH9に進む。 On the other hand, if the label data iMeasure is assigned to the measure data Measure of the measure specified by the pointer Ms and the measure specified by the pointer Ms is the labeling start measure, the determination result in step SH5 is “YES”. Proceed to SH6. In step SH6, a pointer designating the next measure after the measure designated by the pointer Ms is stored in the pointer Mst. Next, in steps SH7 to SH8, while the pointer Mst is incremented, a label number iLevel is given and a bar at the end of labeling is searched. When the corresponding bar (label number iLabel and the labeling rear end bar) is found, the determination result in step SH7 is “YES”, and the process proceeds to step SH9.
ステップSH9では、ポインタMsで指定される小節からポインタMstで指定される小節までの区間における演奏難易度を算出する区間難易度計算処理を実行する。区間難易度計算処理では、先ず対応する区間中の各音を表す曲データMidiEventに含まれる運指情報cfigを参照して隣の音(次音)を押鍵する際の弾き易さを数値化した演奏コストiCostを生成し、生成された区間中の各音の演奏コストiCostを加算平均して当該区間の演奏難易度を定義する。 In step SH9, a section difficulty level calculation process for calculating a performance difficulty level in a section from the measure specified by the pointer Ms to the measure specified by the pointer Mst is executed. In the section difficulty calculation processing, first, the ease of playing when pressing the next sound (next sound) with reference to the fingering information cfig included in the music data MidiEvent representing each sound in the corresponding section is quantified. The performance cost iCost is generated, and the performance cost iCost of each sound in the generated section is added and averaged to define the performance difficulty level of the section.
次いで、ステップSH10では、ポインタMsで指定される小節の小節データMeasureの演奏コストiCost(Ms.iCost)として、上記ステップSH9で算出した演奏難易度をストアする。続いて、ステップSH11ではポインタMstの値をポインタMsにセットした後、ステップSH12に進み、ポインタMsを歩進させた後、上述のステップSH4に処理を戻す。以後、ポインタMsで指定される小節が曲終端を超えるまで、ステップSH4〜SH12を繰り返す。そして、ステップSH12にて歩進されたポインタMsが曲終端を超えると、ステップSH4の判断結果が「YES」となり、本処理を終える。 Next, in step SH10, the performance difficulty calculated in step SH9 is stored as the performance cost iCost (Ms.iCost) of the measure data Measurement of the measure specified by the pointer Ms. Subsequently, in step SH11, after the value of the pointer Mst is set to the pointer Ms, the process proceeds to step SH12, the pointer Ms is incremented, and the process returns to the above-described step SH4. Thereafter, steps SH4 to SH12 are repeated until the measure specified by the pointer Ms exceeds the end of the song. If the pointer Ms advanced in step SH12 exceeds the end of the music piece, the determination result in step SH4 is “YES”, and this process ends.
このように、演奏難易度計算処理では、ラベル番号iLavelを備えたラベリング先頭小節およびラベリング後端小節からなる区間を探し出し、該当する区間が見つかる毎に、その区間中の各音を表す曲データMidiEventに含まれる運指情報cfigを参照して隣の音(次音)を押鍵する際の弾き易さを数値化した演奏コストiCostを生成し、生成された区間中の各音の演奏コストiCostを加算平均して当該区間の演奏難易度を算出し、算出した演奏難易度をポインタMsで指定される小節の小節データMeasureの演奏コストiCost(Ms.iCost)として登録する。 In this way, in the performance difficulty level calculation process, a section composed of a labeling head measure and a labeling end measure having a label number iLabel is searched, and each time a corresponding section is found, song data MidiEvent representing each sound in that section is found. A performance cost iCost is generated by quantifying the ease of playing when the next sound (next sound) is pressed with reference to the fingering information cfig included in the performance information, and the performance cost iCost of each sound in the generated section is generated. Is added and averaged to calculate the performance difficulty level of the section, and the calculated performance difficulty level is registered as the performance cost iCost (Ms.iCost) of the measure data Measurement of the measure specified by the pointer Ms.
(9)表示条件設定処理の動作
次に、図15を参照して表示条件設定処理の動作を説明する。前述したメインルーチンのステップSA4(図5参照)を介して本処理が実行されると、CPU1は図15に図示するステップSJ1に進む。ステップSJ1〜SJ2では、ページ番号iPageを保持するレジスタPage、段番号iRowを保持するレジスタRow、段数を計数するカウンタRwCntおよび1段内の小節数を計数するカウンタMsCntを初期化(ゼロリセット)する。続いて、ステップSJ3では、最初の小節を指定する値をポインタMsにセットする。
(9) Display condition setting process operation
Next, the operation of the display condition setting process will be described with reference to FIG. When this process is executed via step SA4 (see FIG. 5) of the main routine described above, the
次いで、ステップSJ4では、ポインタMsで指定される小節が曲終端を超えているか否かを判断する。曲終端を超えていなければ、判断結果は「NO」になり、ステップSJ5を介して段送り判定処理を実行する。段送り判定処理では、後述するように、ポインタMsで指定される小節の次がラベリング先頭小節になる場合や1段で表示可能な標準小節数を超える場合に、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasureの段番号iRow(Ms.iRow)として登録すると共に、段送り有りを表す値「1」の段送りフラグiRPass(Ms.iRPass)を設定する。 Next, in step SJ4, it is determined whether or not the measure specified by the pointer Ms exceeds the end of the song. If it does not exceed the end of the song, the determination result is “NO”, and a step feed determination process is executed via step SJ5. In the step-by-step determination process, as will be described later, the value stored in the register Row when the next of the measure specified by the pointer Ms becomes the labeling start measure or when the number of standard measures that can be displayed in one step is exceeded. Is registered as the step number iRow (Ms.iRow) of the measure data Measurement of the measure specified by the pointer Ms, and the step flag iRPass (Ms.iRPass) having a value “1” indicating the presence of step feed is set.
続いて、ステップSJ6では、ポインタMsで指定される小節の小節データMeasure中の段送りフラグiRPass(Ms.iRPass)が、段送り有りを表す値「1」であるか否かを判断する。段送りフラグiRPass(Ms.iRPass)が「0」(段送り無し)ならば、判断結果は「NO」になり、ステップSJ7に進む。ステップSJ7では、レジスタPageの値を、ポインタMsで指定される小節の小節データMeasureのページ番号iPage(Ms.iPage)として登録すると共に、ページ送り無しを表す値「0」のページ送りフラグiPPass(Ms.iPPass)を設定する。そして、ステップSJ11に進み、ポインタMsを次の小節を指定するよう歩進させた後、上述のステップSJ4に処理を戻す。 Subsequently, in step SJ6, it is determined whether or not the advance flag iRPass (Ms.iRPass) in the measure data Measurement of the measure specified by the pointer Ms is a value “1” indicating the presence of advance. If the advance flag iRPass (Ms.iRPass) is “0” (no advance), the determination result is “NO”, and the flow proceeds to step SJ7. In step SJ7, the value of the register Page is registered as the page number iPage (Ms.iPage) of the measure data Measure of the measure specified by the pointer Ms, and the page feed flag iPPpass (0) indicating no page feed is set. Ms.iPPpass). Then, the process proceeds to step SJ11, the pointer Ms is incremented to designate the next measure, and then the process returns to step SJ4 described above.
一方、段送りフラグiRPass(Ms.iRPass)が「1」(段送り有り)であると、上記ステップSK6の判断結果は「YES」になり、ステップSJ8に進む。ステップSJ8では、段数を計数するカウンタRwCntの値が1ページの標準段数以上であるか否かを判断する。カウンタRwCntの値が標準段数未満であると、判断結果は「NO」になり、上述したステップSJ7に進む。 On the other hand, if the step feed flag iRPass (Ms.iRPass) is “1” (step feed is present), the determination result in Step SK6 is “YES”, and the flow proceeds to Step SJ8. In step SJ8, it is determined whether or not the value of the counter RwCnt that counts the number of stages is equal to or larger than the standard number of stages of one page. If the value of the counter RwCnt is less than the standard stage number, the determination result is “NO”, and the process proceeds to step SJ7 described above.
これに対し、前述した段送り判定処理(ステップSJ5)で段送りが生じ、これにより歩進されたカウンタRwCntの値が、1ページの標準段数を超えると、上記ステップSJ8の判断結果は「YES」になり、ステップSJ9に進む。ステップSJ9では、レジスタPageの値を、ポインタMsで指定される小節の小節データMeasureのページ番号iPage(Ms.iPage)として登録すると共に、ページ送り有りを表す値「1」のページ送りフラグiPPass(Ms.iPPass)を設定する。 On the other hand, when step feed occurs in the step feed determination process (step SJ5) described above, and the value of the counter RwCnt advanced by this exceeds the standard number of pages of one page, the judgment result in step SJ8 is “YES”. The process proceeds to step SJ9. In step SJ9, the value of the register Page is registered as the page number iPage (Ms.iPage) of the measure data Measure of the measure specified by the pointer Ms, and the page feed flag iPPpass (1) indicating the presence of page feed is displayed. Ms.iPPpass).
続いて、ステップSJ10では、ページ送り設定に応じて、レジスタPageの値をインクリメントして歩進させると共に、カウンタRwCntの値をゼロリセットする。そして、ステップSJ11に進み、ポインタMsを次の小節を指定するよう歩進させた後、上述のステップSJ4に処理を戻す。以後、ポインタMsで指定される小節が曲終端を超えるまで、上述したステップSJ4〜SJ11を繰り返す。そして、ポインタMsで指定される小節が曲終端を超えると、ステップSJ4の判断結果が「YES」になり、本処理を終える。 Subsequently, in step SJ10, the value of the register Page is incremented according to the page feed setting, and the value of the counter RwCnt is reset to zero. Then, the process proceeds to step SJ11, the pointer Ms is incremented to designate the next measure, and then the process returns to step SJ4 described above. Thereafter, steps SJ4 to SJ11 described above are repeated until the measure specified by the pointer Ms exceeds the end of the music piece. When the measure specified by the pointer Ms exceeds the end of the song, the determination result in step SJ4 is “YES”, and the process is completed.
以上のように、表示条件設定処理では、ポインタMsで指定される小節データMeasure毎に、段番号iRow(Ms.iRow)およびページ番号iPage(Ms.iPage)を付与する過程で、ポインタMsで指定される現小節の次の小節がラベリング先頭小節の場合や、1段で表示可能な標準小節数を超える場合に、現小節の小節データMeasureの段送りフラグiRPass(Ms.iRPass)に「1」をセットして段送りを設定し、段送りに応じて歩進される段数が1ページの標準段数を超えると、現小節の小節データMeasureのページ送りフラグiPPass(Ms.iPPass)に「1」をセットしてページ送りを設定する。 As described above, in the display condition setting process, the column number iRow (Ms.iRow) and the page number iPage (Ms.iPage) are assigned by the pointer Ms for each measure data Measurement specified by the pointer Ms. When the next measure after the current measure to be labeled is the first measure of labeling or when the number of standard measures that can be displayed in one step is exceeded, “1” is set in the step flag iRPass (Ms.iRPass) of measure data Measure of the current measure. Is set to set the step feed, and when the number of steps advanced in accordance with the step feed exceeds the standard step number of one page, the page feed flag iPPpass (Ms.iPPpass) of the measure data Measure of the current measure is set to “1”. Set to page feed.
(10)段送り判定処理の動作
図16は、段送り判定処理の動作を示すフローチャートである。上述した表示条件設定処理のステップSJ5(図15参照)を介して本処理が実行されると、CPU1は図16に図示するステップSK1に進み、カウンタMsCntをインクリメントして歩進させる。次いで、ステップSK2では、ポインタMsで指定される小節の次の小節を指定する値を、ポインタMsNにセットする。そして、ステップSK3では、ポインタMsNで指定される小節がラベリング先頭小節であるか否かを判断する。
(10) Operation of step feed judgment processing
FIG. 16 is a flowchart showing the operation of the step feed determination process. When this process is executed via step SJ5 (see FIG. 15) of the display condition setting process described above, the
ラベリング先頭小節であると、判断結果は「YES」になり、ステップSK4に進む。ステップSK4では、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録する一方、当該小節データMeasure中の段送りフラグiRPass(Ms.iRPass)として、段送り有りを表す値「1」をセットする。次いで、ステップSK5では、レジスタRowおよびカウンタRwCntをインクリメントして歩進させる一方、1段内に含まれる小節数をカウントするカウンタMsCntをゼロリセットして本処理を終える。 If it is the labeling head measure, the determination result is “YES”, and the process proceeds to step SK4. In step SK4, the value stored in the register Row is registered as the stage number iRow (Ms.iRow) in the measure data Measurement of the measure specified by the pointer Ms, while the advance flag iRPAss in the measure data Measurement. As (Ms.iRPass), a value “1” representing the presence of step feed is set. Next, in step SK5, the register Row and the counter RwCnt are incremented and incremented, while the counter MsCnt that counts the number of measures included in one stage is reset to zero and the process is terminated.
このように、ポインタMsで指定される小節の次がラベリング先頭小節の場合には、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録すると共に、段送り有りを表す値「1」の段送りフラグiRPass(Ms.iRPass)を設定する。 As described above, when the next of the measure specified by the pointer Ms is the labeling head measure, the value stored in the register Row is set to the column number iRow (Ms in the measure data Measurement of the measure specified by the pointer Ms. .IRow) and a step-up flag iRPass (Ms.iRPass) having a value “1” indicating the presence of step-feed is set.
一方、ポインタMsで指定される小節の次がラベリング先頭小節でなければ、上記ステップSK3の判断結果は「NO」になり、ステップSK6に進む。ステップSK6では、1段内に含まれる小節数をカウントするカウンタMsCntの値が1段の標準小節数以上であるか否かを判断する。カウンタMsCntの値が1段の標準小節数未満であると、判断結果は「NO」になり、ステップSK12に進み、レジスタRowにストアされている値を、ポインタMsで指定される現小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録すると共に、段送り無しを表す値「0」の段送りフラグiRPassを設定して本処理を終える。 On the other hand, if the next of the measure specified by the pointer Ms is not the first labeling label, the determination result in step SK3 is “NO”, and the flow proceeds to step SK6. In step SK6, it is determined whether or not the value of the counter MsCnt for counting the number of bars included in one stage is equal to or greater than the number of standard bars in one stage. If the value of the counter MsCnt is less than the number of standard measures in one stage, the determination result is “NO”, the process proceeds to step SK12, and the value stored in the register Row is changed to the measure of the current measure specified by the pointer Ms. The step number iRow (Ms.iRow) in the data Measurement is registered, and a step flag iRPass having a value “0” indicating no step feed is set, and this processing is completed.
これに対し、カウンタMsCntの値が1段の標準小節数以上ならば、上記ステップSK6の判断結果が「YES」になり、ステップSK7に進み、ポインタiMsに初期値「1」をセットする。次いで、ステップSK8では、ポインタiMsが所定の検索数を超えたかどうか、つまり1段で表示可能な小節数を超えたか否かを判断する。1段で表示可能な小節数を超えていなければ、判断結果は「YES」になり、ステップSK9に進む。 On the other hand, if the value of the counter MsCnt is greater than or equal to the standard number of bars in one stage, the determination result in step SK6 is “YES”, the process proceeds to step SK7, and the initial value “1” is set to the pointer iMs. Next, in step SK8, it is determined whether or not the pointer iMs has exceeded a predetermined number of searches, that is, whether or not the number of bars that can be displayed in one stage has been exceeded. If the number of bars that can be displayed in one row is not exceeded, the determination result is “YES”, and the flow proceeds to step SK9.
ステップSK9では、ポインタMsで指定される小節からポインタiMs個先(Ms+iMs)の小節を指定する値をポインタMsNにセットする。続いて、ステップSK10では、ポインタMsNで指定される小節がラベリング先頭小節であるか否かを判断する。ラベリング先頭小節でなければ、判断結果は「NO」になり、ステップSK11に進み、ポインタiMsを歩進させた後、上述のステップSK8に処理を戻す。 In step SK9, the pointer MsN is set to a value that specifies a measure iMs ahead (Ms + iMs) from the measure specified by the pointer Ms. Subsequently, in step SK10, it is determined whether or not the measure designated by the pointer MsN is the labeling head measure. If it is not the labeling head measure, the determination result is “NO”, the process proceeds to step SK11, the pointer iMs is incremented, and the process returns to step SK8 described above.
以後、歩進されたポインタiMsが所定の検索数を超えるまで、すなわち1段で表示可能な小節数を超えるまでの間、上記ステップSK8〜SK11を繰り返すことによって、ポインタMsで指定される小節の次の小節から1段で表示可能な小節数に達するまでの間でラベリング先頭小節の有無を検索する。 Thereafter, the above steps SK8 to SK11 are repeated until the incremented pointer iMs exceeds the predetermined number of searches, that is, until the number of bars that can be displayed in one stage is exceeded. From the next measure until the number of measures that can be displayed in one row is reached, the presence or absence of a labeling head measure is searched.
ラベリング先頭小節が検索されず、歩進されたポインタiMsが所定の検索数を超えて1段で表示可能な小節数に達すると、上記ステップSK8の判断結果が「NO」となり、上述したステップSK4に進み、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録する一方、当該小節データMeasure中の段送りフラグiRPass(Ms.iRPass)として、段送り有りを表す値「1」をセットする。次いで、ステップSK5では、レジスタRowおよびカウンタRwCntをインクリメントして歩進させる一方、1段内に含まれる小節数をカウントするカウンタMsCntをゼロリセットして本処理を終える。 When the labeling head measure is not searched and the incremented pointer iMs exceeds the predetermined number of searches and reaches the number of measures that can be displayed in one stage, the determination result in step SK8 is “NO”, and the above-described step SK4 is performed. The value stored in the register Row is registered as the column number iRow (Ms.iRow) in the measure data Measurement of the measure specified by the pointer Ms, while the step advance flag iRPass (in the measure data Measurement) is registered. Ms.iRPass) is set to a value “1” indicating the presence of step feed. Next, in step SK5, the register Row and the counter RwCnt are incremented and incremented, while the counter MsCnt that counts the number of measures included in one stage is reset to zero and the process is terminated.
一方、ポインタMsで指定される小節の次の小節から検索数個先の小節までの間にラベリング先頭小節が見つかると、上記ステップSK10の判断結果が「YES」になり、ステップSK12に進み、レジスタRowにストアされている値を、ポインタMsで指定される現小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録すると共に、段送り無しを表す値「0」の段送りフラグiRPass(Ms.iRPass)を設定した後、本処理を終える。 On the other hand, if a labeling head measure is found between the measure next to the measure specified by the pointer Ms and the measures several search ahead, the determination result in step SK10 is “YES”, and the process proceeds to step SK12. The value stored in the Row is registered as the column number iRow (Ms.iRow) in the measure data Measurement of the current measure specified by the pointer Ms, and the step flag iRPass having a value “0” indicating no step advance. After setting (Ms.iRPass), this process is terminated.
このように、段送り判定処理では、ポインタMsで指定される小節の次がラベリング先頭小節になる場合や1段で表示可能な標準小節数を超える場合に、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasureの段番号iRow(Ms.iRow)として登録すると共に、段送り有りを表す値「1」の段送りフラグiRPass(Ms.iRPass)を設定する段送り設定を行う。 As described above, in the step-by-step determination process, the value stored in the register Row is used when the next measure after the measure specified by the pointer Ms becomes the labeling start measure or when the number of standard measures that can be displayed in one step is exceeded. Are registered as the step number iRow (Ms.iRow) of the measure data Measure of the measure specified by the pointer Ms, and the step feed flag iRPass (Ms.iRPass) having a value “1” indicating the presence of step feed is set. Set up.
以上説明したように、第1実施形態では、小節データMeasure[0]〜[N]および曲データMidiEvent[0]〜[N]に基づき曲構造を分析することによって、曲中でメロディが重複したり類似する区間などの複数の区間(ラベリングされた小節区間)に分割する。そして、図17に図示する一例のように、分割された各区間の終わりを、楽譜表示される各段末尾の小節となるように表示設定するので、楽曲の構造に即した見易い楽譜を表示することが可能になる。 As described above, in the first embodiment, by analyzing the song structure based on the measure data Measurement [0] to [N] and the song data MidiEvent [0] to [N], the melody overlaps in the song. It is divided into a plurality of sections (labeled bar sections) such as sections similar to each other. Then, as in the example shown in FIG. 17, since the end of each divided section is set to be a bar at the end of each stage displayed as a score, an easy-to-read score corresponding to the music structure is displayed. It becomes possible.
また、本実施形態では、構造分析処理(図9参照)によって、比較元小節Reに対する比較先小節Luの一致度を判定し、判定された一致度の中から閾値以上の「完全一致度」、「相対一致度」、「相対方向的一致度」および「リズム一致度」が連続する比較先小節Luの範囲を、「完全一致区間」、「相対一致区間」、「相対方向的一致区間」および「リズム一致区間」に分割するので、曲構造に応じて楽曲を複数の区間、つまりメロディが重複する区間、メロディが類似する区間、音高変化が類似する区間およびリズムが一致する区間に分割することができる。 Further, in the present embodiment, the degree of coincidence of the comparison destination bar Lu with respect to the comparison source bar Re is determined by the structural analysis process (see FIG. 9). The range of the comparison measure Lu, in which “relative matching degree”, “relative directional matching degree” and “rhythm matching degree” are consecutive, is expressed as “perfect matching section”, “relative matching section”, “relative directional matching section” and Since it is divided into “rhythm matching sections”, the music is divided into a plurality of sections, that is, a section where melody overlaps, a section where melody is similar, a section where pitch changes are similar, and a section where rhythms match according to the music structure. be able to.
[第2実施形態]
次に、図18〜図20を参照して第2実施形態について説明する。第2実施形態の構成は、前述した第1実施形態と同一なので、その説明については省略する。上述した第1実施形態では、分割された各区間の終わりを、楽譜表示される各段末尾の小節となるように段送り設定したのに対し、第2実施形態では、分割された区間が複数の段にまたがる際に、前段から後段への継続音が生じないように楽譜表示される各段末尾の小節を選んで段送り設定する。以下では、こうした第2実施形態による「段送り判定処理」の動作を説明する。
[Second Embodiment]
Next, a second embodiment will be described with reference to FIGS. Since the configuration of the second embodiment is the same as that of the first embodiment described above, the description thereof is omitted. In the first embodiment described above, the end of each divided section is set so as to be a bar at the end of each stage displayed in the score, whereas in the second embodiment, there are a plurality of divided sections. When straddling the stage, the bar at the end of each stage displayed in the score is selected and set so that no continuous sound from the preceding stage to the subsequent stage is generated. Hereinafter, the operation of the “step feed determination process” according to the second embodiment will be described.
(1)段送り判定処理の動作
図18は、第2実施形態による段送り判定処理の動作を示すフローチャートである。上述した第1実施形態と同様に、表示条件設定処理のステップSJ5(図15参照)を介して本処理が実行されると、CPU1は図18に図示するステップSL1に進み、1段内の小節数を計数するカウンタMsCntをインクリメントして歩進させる。次いで、ステップSL2では、ポインタMsで指定される小節の次の小節を指定する値を、ポインタMsNにセットする。そして、ステップSL3では、ポインタMsNで指定される小節がラベリング先頭小節であるか否かを判断する。
(1) Operation of step feed judgment processing
FIG. 18 is a flowchart showing the operation of the advance determination process according to the second embodiment. As in the first embodiment described above, when this process is executed via step SJ5 (see FIG. 15) of the display condition setting process, the
ラベリング先頭小節ならば、判断結果は「YES」になり、ステップSL4に進む。ステップSL4では、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録する一方、当該小節データMeasure中の段送りフラグiRPass(Ms.iRPass)として、段送り有りを表す値「1」をセットする。次いで、ステップSL5では、レジスタRowおよびカウンタRwCntをインクリメントして歩進させる一方、カウンタMsCntをゼロリセットして本処理を終える。 If it is a labeling head measure, the determination result is “YES”, and the flow proceeds to step SL4. In step SL4, the value stored in the register Row is registered as the stage number iRow (Ms.iRow) in the measure data Measurement of the measure specified by the pointer Ms, while the advance flag iRPAss in the measure data Measurement is included. As (Ms.iRPass), a value “1” representing the presence of step feed is set. Next, in step SL5, the register Row and the counter RwCnt are incremented and incremented, while the counter MsCnt is reset to zero and the process is terminated.
このように、ポインタMsで指定される小節の次がラベリング先頭小節であると、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録すると共に、段送り有りを表す値「1」の段送りフラグiRPass(Ms.iRPass)を設定する。 As described above, when the next of the measure specified by the pointer Ms is the labeling head measure, the value stored in the register Row is set to the column number iRow (Ms.Ms.) in the measure data Measurement of the measure specified by the pointer Ms. iRow) and a step flag iRPass (Ms.iRPass) having a value “1” indicating the presence of step feed is set.
一方、ポインタMsで指定される小節の次がラベリング先頭小節でなければ、上記ステップSL3の判断結果は「NO」になり、ステップSL6に進む。ステップSL6では、1段内に含まれる小節数をカウントするカウンタMsCntの値が1段の標準小節数以上であるか否かを判断する。カウンタMsCntの値が1段の標準小節数未満であると、判断結果は「NO」になり、ステップSL12に進み、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録すると共に、段送り無しを表す値「0」の段送りフラグiRPassを設定して本処理を終える。 On the other hand, if the next of the measure specified by the pointer Ms is not the labeling first measure, the determination result in step SL3 is “NO”, and the flow proceeds to step SL6. In step SL6, it is determined whether or not the value of the counter MsCnt that counts the number of bars included in one stage is equal to or greater than the number of standard bars in one stage. If the value of the counter MsCnt is less than the number of standard measures in one stage, the determination result is “NO”, the process proceeds to step SL12, and the value stored in the register Row is used as the measure data of the measure specified by the pointer Ms. While registering as a step number iRow (Ms.iRow) in Measurement, a step flag iRPass having a value “0” indicating no step feed is set, and this processing is completed.
これに対し、カウンタMsCntの値が1段の標準小節数以上ならば、上記ステップSL6の判断結果が「YES」になり、ステップSL7に進み、ポインタiMsに初期値「1」をセットする。次いで、ステップSL8では、ポインタiMsが所定の検索数を超えたかどうか、つまり1段で表示可能な小節数を超えたか否かを判断する。1段で表示可能な小節数を超えていなければ、判断結果は「YES」になり、ステップSL9に進む。 On the other hand, if the value of the counter MsCnt is equal to or larger than the number of standard measures in one stage, the determination result in step SL6 is “YES”, the process proceeds to step SL7, and the initial value “1” is set to the pointer iMs. Next, in step SL8, it is determined whether or not the pointer iMs has exceeded a predetermined number of searches, that is, whether or not the number of bars that can be displayed in one stage has been exceeded. If the number of bars that can be displayed in one row is not exceeded, the determination result is “YES”, and the flow proceeds to step SL9.
ステップSL9では、ポインタMsで指定される小節からポインタiMs個先(Ms+iMs)の小節を指定する値をポインタMsNにセットする。続いて、ステップSL10では、ポインタMsNで指定される小節がラベリング先頭小節であるか否かを判断する。ラベリング先頭小節でなければ、判断結果は「NO」になり、ステップSL11に進み、ポインタiMsを歩進させた後、上述のステップSL8に処理を戻す。 In step SL9, the pointer MsN is set to a value that specifies a measure iMs ahead (Ms + iMs) from the measure specified by the pointer Ms. Subsequently, in step SL10, it is determined whether or not the measure specified by the pointer MsN is the labeling head measure. If it is not the labeling first measure, the determination result is “NO”, the process proceeds to step SL11, the pointer iMs is incremented, and the process returns to step SL8 described above.
以後、歩進されたポインタiMsが所定の検索数を超えるまで、すなわち1段で表示可能な小節数を超えるまでの間、上記ステップSL8〜SL11を繰り返すことによって、ポインタMsで指定される小節の次の小節から1段で表示可能な小節数に達するまでの間でラベリング先頭小節の有無を検索する。 Thereafter, the steps SL8 to SL11 are repeated until the stepped pointer iMs exceeds the predetermined number of searches, that is, the number of bars that can be displayed in one stage is reached. From the next measure until the number of measures that can be displayed in one row is reached, the presence or absence of a labeling head measure is searched.
ラベリング先頭小節が検索されず、歩進されたポインタiMsが所定の検索数を超えて1段で表示可能な小節数に達すると、上記ステップSL8の判断結果が「NO」となり、ステップSL13に進み、継続音チェック処理を実行して本処理を終える。継続音チェック処理では、後述するように、1段で表示可能な小節数に達するまでの間に、小節をまたぐ継続音を有していない小節を探し出し、該当する小節で段送り設定する。 When the labeling head measure is not searched and the incremented pointer iMs exceeds the predetermined number of searches and reaches the number of measures that can be displayed in one stage, the determination result in step SL8 is “NO”, and the process proceeds to step SL13. Then, the continuous sound check process is executed to finish the present process. In the continuous sound check process, as will be described later, a bar that does not have a continuous sound that crosses the bars is searched until the number of bars that can be displayed in one stage is reached, and a step is set in the corresponding bar.
これに対し、1段で表示可能な小節数を超えるまでの間にラベリング先頭小節が見つかると、上記ステップSL10の判断結果が「YES」になり、ステップSL12に進む。ステップSL12では、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録すると共に、段送り無しを表す値「0」の段送りフラグiRPass(Ms.iRPass)を設定した後、本処理を終える。 On the other hand, if a labeling head measure is found before the number of measures that can be displayed in one row is exceeded, the determination result in step SL10 is “YES”, and the flow advances to step SL12. In step SL12, the value stored in the register Row is registered as the step number iRow (Ms.iRow) in the measure data Measurement of the measure specified by the pointer Ms, and the value “0” representing no advance is set. After the step-up flag iRPass (Ms.iRPass) is set, this process ends.
(2)継続音チェック処理の動作
次に、図19〜図20を参照して継続音チェック処理の動作を説明する。上述した段送り判定処理のステップSL13(図18参照)を介して本処理が実行されると、CPU1は図19に図示するステップSM1に進み、ポインタMsで指定される小節から次の小節をまたぐ継続音の有無を判断する。継続音が無ければ、判断結果は「YES」になり、ステップSM2に進む。
(2) Operation of Continuous Sound Check Process Next, the operation of the continuous sound check process will be described with reference to FIGS. When this processing is executed through step SL13 (see FIG. 18) of the above-described step-up determination processing, the
ステップSM2では、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録する一方、当該小節データMeasure中の段送りフラグiRPass(Ms.iRPass)として、段送り有りを表す値「1」をセットする。続いて、ステップSM3では、レジスタRowおよびカウンタRwCntをインクリメントして歩進させると共に、1段内に含まれる小節数をカウントするカウンタMsCntをゼロリセットして本処理を終える。 In step SM2, the value stored in the register Row is registered as the column number iRow (Ms.iRow) in the measure data Measurement of the measure specified by the pointer Ms, while the step flag iRPAss in the measure data Measurement is stored. As (Ms.iRPass), a value “1” representing the presence of step feed is set. Subsequently, in step SM3, the register Row and the counter RwCnt are incremented and incremented, and the counter MsCnt that counts the number of measures included in one stage is reset to zero and the process is terminated.
一方、ポインタMsで指定される小節から次の小節にまたぐ継続音が存在すると、上記ステップSM1の判断結果が「NO」になり、ステップSM4に進む。ステップSM4では、ポインタiMsに初期値「1」をセットする。そして、ステップSM5〜SM10では、1段で表示可能な小節数に達するまでポインタiMsを歩進させながら、段またぎをしない小節、つまり小節をまたぐ継続音を有していない小節を探し出す。 On the other hand, if there is a continuous sound that extends from the measure specified by the pointer Ms to the next measure, the determination result in step SM1 is “NO”, and the process proceeds to step SM4. In step SM4, an initial value “1” is set to the pointer iMs. In steps SM5 to SM10, while the pointer iMs is stepped up until the number of bars that can be displayed in one stage is reached, a bar that is not stepped over, that is, a bar that does not have a continuous sound across the bars is searched for.
すなわち、ステップSM5では、ポインタiMsが所定の検索数を超えたかどうか、つまり1段で表示可能な小節数を超えたか否かを判断する。1段で表示可能な小節数を超えていなければ、判断結果は「YES」になり、ステップSM6に進む。ステップSM6では、ポインタMsで指定される小節からポインタiMs個前(Ms−iMs)の小節を指定する値をポインタMscにセットする。続いて、ステップSM7では、ポインタMscで指定される小節から次の小節にまたぐ継続音の有無を判断する。 That is, in step SM5, it is determined whether or not the pointer iMs has exceeded a predetermined number of searches, that is, whether or not the number of bars that can be displayed in one stage has been exceeded. If the number of bars that can be displayed in one row is not exceeded, the determination result is “YES”, and the flow proceeds to step SM6. In step SM6, the pointer Msc is set to a value that specifies a measure iMs previous (Ms-iMs) from the measure specified by the pointer Ms. Subsequently, at step SM7, it is determined whether or not there is a continuous sound extending from the measure specified by the pointer Msc to the next measure.
継続音が有ると、ここでの判断結果は「NO」になり、ステップSM8に進む。ステップSM8では、ポインタMsで指定される小節からポインタiMs個後(Ms+iMs)の小節を指定する値をポインタMscにセットする。続いて、ステップSM9では、ポインタMscで指定される小節から次の小節にまたぐ継続音の有無を判断する。継続音が有ると、ここでの判断結果は「NO」になり、ステップSM10に進み、ポインタiMsを歩進させた後、上述のステップSM5に処理を戻す。 If there is a continuous sound, the determination result here is “NO”, and the process proceeds to step SM8. In step SM8, the pointer Msc is set to a value that specifies a measure iMs (Ms + iMs) after the measure specified by the pointer Ms. Subsequently, in step SM9, it is determined whether or not there is a continuous sound extending from the measure specified by the pointer Msc to the next measure. If there is a continuous sound, the determination result here is “NO”, the process proceeds to step SM10, the pointer iMs is incremented, and then the process returns to step SM5 described above.
以後、歩進されたポインタiMsが所定の検索数を超えるまで、すなわち1段で表示可能な小節数に達するまでの間、上記ステップSM5〜SM10を繰り返すことによって、小節をまたぐ継続音を有していない小節を探し出す。そして、該当する小節が検索されなければ、上記ステップSM5の判断結果が「NO」となり、上述したステップSM3に進み、レジスタRowおよびカウンタRwCntをインクリメントして歩進させると共に、カウンタMsCntをゼロリセットして本処理を終える。 Thereafter, until the stepped pointer iMs exceeds a predetermined number of searches, that is, until the number of bars that can be displayed in one stage is reached, the above steps SM5 to SM10 are repeated to have a continuous sound across the bars. Find the bars that are not. If the corresponding bar is not searched, the determination result in step SM5 is “NO”, the process proceeds to step SM3 described above, the register Row and the counter RwCnt are incremented, and the counter MsCnt is reset to zero. To finish this process.
これに対し、ポインタMsで指定される小節からポインタiMs個前(Ms−iMs)の小節に継続音が存在しない場合には、上記ステップSM7の判断結果が「YES」となり、図20に図示するステップSM11に進む。また、ポインタMsで指定される小節からポインタiMs個後(Ms+iMs)の小節に継続音が存在しない場合には、上記ステップSM9の判断結果が「YES」になり、図20に図示するステップSM18に進む。以下、ポインタiMs個前(Ms−iMs)の小節に継続音が存在しない場合と、ポインタiMs個後(Ms+iMs)の小節に継続音が存在しない場合とに分けて動作説明を進める。 On the other hand, when there is no continuation sound in the measure iMs ahead of the measure specified by the pointer Ms (Ms-iMs), the determination result in step SM7 is “YES”, which is shown in FIG. Proceed to step SM11. If there is no continuous sound at the measure iMs after the measure specified by the pointer Ms (Ms + iMs), the determination result at step SM9 is “YES”, and step SM18 shown in FIG. move on. In the following, description of the operation will be divided into a case where no continuous sound exists in the measure iMs before (Ms-iMs) and a case where no continuous sound exists in the measure iMs after (Ms + iMs).
<ポインタiMs個前(Ms−iMs)の小節に継続音が存在しない場合>
この場合、図20に図示するステップSM11に進み、ポインタMscで指定される小節の小節データMeasureに、段送り有りを表す値「1」の段送りフラグiRPass(Ms.iRPass)をセットする。次いで、ステップSM12では、レジスタRowおよびカウンタRwCntをインクリメントして歩進させると共に、カウンタMsCntをゼロリセットする。続いて、ステップSM13では、1つ後の小節を指定するようポインタMscを更新する。
<When no continuous sound exists in the measure iMs before (Ms-iMs)>
In this case, the process proceeds to step SM11 shown in FIG. 20, and a step flag iRPass (Ms.iRPass) having a value “1” indicating the presence of step advance is set in the measure data Measurement of the measure designated by the pointer Msc. Next, at step SM12, the register Row and the counter RwCnt are incremented and incremented, and the counter MsCnt is reset to zero. Subsequently, in step SM13, the pointer Msc is updated so as to designate the next measure.
この後、ステップSM14〜SM16では、ポインタMscで指定される小節がポインタMsで指定される小節に一致するまでポインタMscを歩進させる毎に、その歩進されるポインタMscで指定される小節の小節データMeasureの段番号iRow(Msc.iRow)としてレジスタRowにストアされている値を登録する一方、ポインタMsで指定される小節の小節データMeasure中の段送りフラグiRPass(Ms.iRPass)として、段送り無しを表す値「0」をセットする。そして、ポインタMscで指定される小節がポインタMsで指定される小節に一致すると、ステップSM14の判断結果が「NO」になり、本処理を終える。 Thereafter, in steps SM14 to SM16, every time the pointer Msc is incremented until the measure designated by the pointer Msc matches the measure designated by the pointer Ms, the measure designated by the incremented pointer Msc is changed. While registering the value stored in the register Row as the step number iRow (Msc.iRow) of the measure data Measurement, as the step-up flag iRPass (Ms.iRPass) in the measure data Measurement of the measure specified by the pointer Ms, A value “0” representing no step feed is set. When the measure specified by the pointer Msc matches the measure specified by the pointer Ms, the determination result in step SM14 is “NO”, and the present process ends.
<ポインタiMs個後(Ms+iMs)の小節に継続音が存在しない場合>
この場合、図20に図示するステップSM18に進み、ポインタMscで指定される小節の小節データMeasureに、段送り有りを表す値「1」の段送りフラグiRPass(Ms.iRPass)をセットする。次いで、ステップSM19〜SM21では、ポインタMsで指定される小節がポインタMscで指定される小節に一致するまでポインタMsを歩進させる毎に、その歩進されるポインタMsで指定される小節の小節データMeasureの段番号iRow(Ms.iRow)としてレジスタRowにストアされている値を登録する一方、ポインタMsで指定される小節の小節データMeasure中の段送りフラグiRPass(Ms.iRPass)として、段送り無しを表す値「0」をセットする。
<When no continuous sound exists in the bar after iMs pointers (Ms + iMs)>
In this case, the process proceeds to step SM18 shown in FIG. 20, and a step flag iRPass (Ms.iRPass) having a value “1” representing the presence of step advance is set in the measure data Measurement of the measure designated by the pointer Msc. Next, in steps SM19 to SM21, every time the pointer Ms is incremented until the measure designated by the pointer Ms matches the measure designated by the pointer Msc, the measure of the measure designated by the incremented pointer Ms. The value stored in the register Row is registered as the step number iRow (Ms.iRow) of the data Measurement, while the step flag iRPass (Ms.iRPass) in the measure data Measurement of the measure specified by the pointer Ms is used. A value “0” representing no feed is set.
そして、ポインタMsで指定される小節がポインタMscで指定される小節に一致すると、ステップSM19の判断結果が「NO」になり、ステップSM17に進み、レジスタRowおよびカウンタRwCntをインクリメントして歩進させると共に、1段内に含まれる小節数をカウントするカウンタMsCntをゼロリセットして本処理を終える。このように、継続音チェック処理では、1段で表示可能な小節数に達するまでの間に、小節をまたぐ継続音を有していない小節を探し出し、該当する小節で段送り設定を行う。 When the measure specified by the pointer Ms matches the measure specified by the pointer Msc, the determination result in step SM19 becomes “NO”, the process proceeds to step SM17, and the register Row and the counter RwCnt are incremented to be incremented. At the same time, the counter MsCnt that counts the number of measures included in one stage is reset to zero, and the process ends. In this way, in the continuous sound check process, a bar that does not have a continuous sound that crosses the bars is searched until the number of bars that can be displayed in one stage is reached, and the step-up setting is performed at the corresponding bar.
以上のように、第2実施形態による段送り判定処理では、1段で表示可能な標準小節数を超えて段送りを行う際に、小節をまたぐ継続音を有していない小節を探し出し、該当する小節で段送り設定を行うので、見易い楽譜を表示することが可能になる。 As described above, in the step-by-step determination process according to the second embodiment, when performing step-up exceeding the number of standard measures that can be displayed in one step, a measure that does not have a continuous sound that straddles the measure is searched for. Since the step-up setting is performed at the bars to be displayed, it is possible to display an easy-to-read score.
[第3実施形態]
次に、図21〜図23を参照して第3実施形態について説明する。第3実施形態の構成は、前述した第1実施形態と同一なので、その説明については省略する。上述した第1実施形態では、分割された各区間の終わりを、楽譜表示される各段末尾の小節となるように段送り設定したのに対し、第3実施形態では、分割された区間が複数の段にまたがる際に、できる限り段の上下で類似性の高い小節が並ぶように段送り設定する。以下では、こうした第3実施形態による「段送り判定処理」の動作を説明する。
[Third Embodiment]
Next, a third embodiment will be described with reference to FIGS. Since the structure of 3rd Embodiment is the same as 1st Embodiment mentioned above, it abbreviate | omits about the description. In the first embodiment described above, the end of each divided section is set so as to be a bar at the end of each stage displayed in the score, whereas in the third embodiment, there are a plurality of divided sections. When straddling the steps, set the step feed so that bars with high similarity are arranged as much as possible above and below the steps. Hereinafter, the operation of the “step feed determination process” according to the third embodiment will be described.
(1)段送り判定処理の動作
図21は、第3実施形態による段送り判定処理の動作を示すフローチャートである。上述した第1実施形態と同様に、表示条件設定処理のステップSJ5(図15参照)を介して本処理が実行されると、CPU1は図21に図示するステップSN1に進み、1段に含まれる小節数を計数するカウンタMsCntをインクリメントして歩進させる。次いで、ステップSN2では、ポインタMsで指定される小節の次の小節を指定する値を、ポインタMsNにセットする。そして、ステップSN3では、ポインタMsNで指定される小節がラベリング先頭小節であるか否かを判断する。
(1) Operation of step feed judgment processing
FIG. 21 is a flowchart showing the operation of the advance determination process according to the third embodiment. As in the first embodiment described above, when this process is executed via step SJ5 (see FIG. 15) of the display condition setting process, the
ラベリング先頭小節であると、判断結果は「YES」になり、ステップSN4に進む。ステップSN4では、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録する一方、当該小節データMeasure中の段送りフラグiRPass(Ms.iRPass)として、段送り有りを表す値「1」をセットする。次いで、ステップSL5では、レジスタRowおよびカウンタRwCntをインクリメントして歩進させる一方、カウンタMsCntをゼロリセットして本処理を終える。 If it is a labeling head measure, the determination result is “YES”, and the process proceeds to Step SN4. In step SN4, the value stored in the register Row is registered as the column number iRow (Ms.iRow) in the measure data Measurement of the measure specified by the pointer Ms, while the step flag iRPAss in the measure data Measurement is registered. As (Ms.iRPass), a value “1” representing the presence of step feed is set. Next, in step SL5, the register Row and the counter RwCnt are incremented and incremented, while the counter MsCnt is reset to zero and the process is terminated.
このように、ポインタMsで指定される小節の次がラベリング先頭小節であると、レジスタRowにストアされている値を、ポインタMsで指定される現小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録すると共に、段送り有りを表す値「1」の段送りフラグiRPass(Ms.iRPass)を設定する。 Thus, if the next measure after the measure specified by the pointer Ms is the labeling start measure, the value stored in the register Row is set to the column number iRow (Ms in the measure data Measurement of the current measure specified by the pointer Ms. .IRow) and a step-up flag iRPass (Ms.iRPass) having a value “1” indicating the presence of step-feed is set.
一方、ポインタMsで指定される小節の次がラベリング先頭小節でなければ、上記ステップSN3の判断結果は「NO」になり、ステップSN6に進む。ステップSN6では、1段内に含まれる小節数を計数するカウンタMsCntの値が1段の標準小節数以上であるか否かを判断する。カウンタMsCntの値が1段の標準小節数未満ならば、判断結果は「NO」になり、ステップSN12に進み、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録すると共に、段送り無しを表す値「0」の段送りフラグiRPass(Ms.iRPass)を設定して本処理を終える。 On the other hand, if the next of the measure specified by the pointer Ms is not the labeling first measure, the determination result in step SN3 is “NO”, and the process proceeds to step SN6. In step SN6, it is determined whether or not the value of the counter MsCnt for counting the number of bars included in one stage is equal to or greater than the number of standard bars in one stage. If the value of the counter MsCnt is less than the number of standard measures in one stage, the determination result is “NO”, the process proceeds to step SN12, and the value stored in the register Row is used as the measure data for the measure specified by the pointer Ms. While registering as the middle row number iRow (Ms.iRow), a step flag iRPass (Ms.iRPass) with a value “0” indicating no step feed is set, and this processing is completed.
これに対し、カウンタMsCntの値が1段の標準小節数以上ならば、上記ステップSN6の判断結果が「YES」になり、ステップSN7に進み、ポインタiMsに初期値「1」をセットする。次いで、ステップSN8では、ポインタiMsが所定の検索数を超えたかどうか、つまり1段で表示可能な小節数を超えたか否かを判断する。1段で表示可能な小節数を超えていなければ、判断結果は「YES」になり、ステップSN9に進む。 On the other hand, if the value of the counter MsCnt is equal to or larger than the standard number of bars in one stage, the determination result in step SN6 is “YES”, the process proceeds to step SN7, and the initial value “1” is set to the pointer iMs. Next, in step SN8, it is determined whether or not the pointer iMs has exceeded a predetermined number of searches, that is, whether or not the number of bars that can be displayed in one stage has been exceeded. If the number of bars that can be displayed in one row is not exceeded, the determination result is “YES”, and the flow proceeds to step SN9.
ステップSN9では、ポインタMsで指定される小節からポインタiMs個先(Ms+iMs)の小節を指定する値をポインタMsNにセットする。続いて、ステップSN10では、ポインタMsNで指定される小節がラベリング先頭小節であるか否かを判断する。ラベリング先頭小節でなければ、判断結果は「NO」になり、ステップSN11に進み、ポインタiMsを歩進させた後、上述のステップSN8に処理を戻す。 In step SN9, a value that designates a measure iMs ahead (Ms + iMs) from the measure designated by the pointer Ms is set in the pointer MsN. Subsequently, in step SN10, it is determined whether or not the measure designated by the pointer MsN is the labeling head measure. If it is not the labeling head measure, the determination result is “NO”, the process proceeds to step SN11, the pointer iMs is incremented, and the process returns to step SN8 described above.
以後、歩進されたポインタiMsが所定の検索数を超えるまで、すなわち1段で表示可能な小節数を超えるまでの間、上記ステップSN8〜SN11を繰り返すことによって、ポインタMsで指定される小節の次の小節から1段で表示可能な小節数に達するまでの間でラベリング先頭小節の有無を検索する。 Thereafter, the steps SN8 to SN11 are repeated until the incremented pointer iMs exceeds a predetermined number of searches, that is, until the number of bars that can be displayed in one stage is exceeded. From the next measure until the number of measures that can be displayed in one row is reached, the presence or absence of a labeling head measure is searched.
ラベリング先頭小節が検索されず、歩進されたポインタiMsが所定の検索数を超えて1段で表示可能な小節数に達すると、上記ステップSN8の判断結果が「NO」となり、ステップSN13に進み、類似箇所チェック処理を実行して本処理を終える。類似箇所チェック処理では、後述するように、1段で表示可能な小節数に達するまでの間に、上段先頭小節に類似する小節を探し出し、該当する小節で段送り設定を行う。 When the labeling head measure is not searched and the incremented pointer iMs exceeds the predetermined number of searches and reaches the number of measures that can be displayed in one stage, the determination result in step SN8 is “NO”, and the process proceeds to step SN13. Then, the similar part check process is executed to finish the present process. In the similar part check processing, as will be described later, a measure similar to the top measure in the upper row is searched until the number of measures that can be displayed in one row is reached, and a step advance setting is performed in the corresponding measure.
これに対し、1段で表示可能な小節数を超えるまでの間にラベリング先頭小節が見つかると、上記ステップSN10の判断結果が「YES」になり、ステップSN12に進み、レジスタRowにストアされている値を、ポインタMsで指定される現小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録すると共に、段送り無しを表す値「0」の段送りフラグiRPass(Ms.iRPass)を設定して本処理を終える。 On the other hand, if a labeling head measure is found before the number of measures that can be displayed in one row is exceeded, the determination result in step SN10 is “YES”, the process proceeds to step SN12, and is stored in the register Row. The value is registered as the step number iRow (Ms.iRow) in the measure data Measurement of the current measure specified by the pointer Ms, and the step flag iRPass (Ms.iRPass) having a value “0” indicating no step is set. Set and finish this process.
(2)類似箇所チェック処理の動作
次に、図22〜図23を参照して類似箇所チェック処理の動作を説明する。上述した段送り判定処理のステップSN13(図21参照)を介して本処理が実行されると、CPU1は図22に図示するステップSP1に進む。ステップSP1では、ポインタMsで指定される小節Aと、楽譜として表示した時に小節Aを含む段の上に位置する段の先頭小節Bとの一致率を前述したマトリクス要素Mat1[A][B]から読み出し、読み出した一致率が一致閾値の半数以上であるか、つまりポインタMsで指定される小節が上段先頭小節に類似しているかどうかを判断する。
(2) Operation of Similar Location Check Processing Next, the operation of the similar location check processing will be described with reference to FIGS. When this process is executed via step SN13 (see FIG. 21) of the above-described advance determination process, the
ポインタMsで指定される小節が上段先頭小節に類似していれば、判断結果は「YES」になり、ステップSP2に進み、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasure中の段番号iRow(Ms.iRow)として登録する一方、当該小節データMeasure中の段送りフラグiRPass(Ms.iRPass)として、段送り有りを表す値「1」をセットする。そして、ステップSP3に進み、レジスタRowおよびカウンタRwCntをインクリメントして歩進させると共に、カウンタMsCntをゼロリセットして本処理を終える。 If the measure specified by the pointer Ms is similar to the top first measure, the determination result is “YES”, the process proceeds to step SP2, and the value stored in the register Row is set to the value of the measure specified by the pointer Ms. While being registered as a column number iRow (Ms.iRow) in the measure data Measurement, a value “1” indicating that there is a feed is set as the step flag iRPass (Ms.iRPass) in the measure data Measurement. In step SP3, the register Row and the counter RwCnt are incremented and incremented, and the counter MsCnt is reset to zero to complete the present process.
一方、ポインタMsで指定される小節が上段先頭小節に類似していていなければ、上記ステップSP1の判断結果が「NO」になり、ステップSP4に進む。ステップSP4では、ポインタiMsに初期値「1」をセットする。そして、ステップSP5〜SP10では、1段で表示可能な小節数に達するまでポインタiMsを歩進させながら、上段先頭小節に類似する小節を探し出す。 On the other hand, if the measure specified by the pointer Ms is not similar to the upper first measure, the determination result in step SP1 is “NO”, and the process proceeds to step SP4. In step SP4, an initial value “1” is set to the pointer iMs. Then, in steps SP5 to SP10, the bar iMs is incremented until the number of bars that can be displayed in one row is reached, and a measure similar to the top head measure is searched.
すなわち、ステップSP5では、ポインタiMsが所定の検索数を超えたかどうか、つまり1段で表示可能な小節数を超えたか否かを判断する。1段で表示可能な小節数を超えていなければ、判断結果は「YES」になり、ステップSP6に進む。ステップSP6では、ポインタMsで指定される小節からポインタiMs個前(Ms−iMs)の小節を指定する値をポインタMscにセットする。続いて、ステップSP7では、ポインタMscで指定される小節が上段先頭小節に類似しているかどうかを判断する。 That is, in step SP5, it is determined whether or not the pointer iMs has exceeded a predetermined number of searches, that is, whether or not the number of bars that can be displayed in one stage has been exceeded. If the number of bars that can be displayed in one row is not exceeded, the determination result is “YES”, and the flow proceeds to step SP6. In step SP6, the pointer Msc is set to a value that specifies a measure iMs previous (Ms-iMs) from the measure specified by the pointer Ms. Subsequently, in step SP7, it is determined whether or not the measure specified by the pointer Msc is similar to the top first measure.
ポインタMscで指定される小節が上段先頭小節に類似していなければ、判断結果は「NO」になり、ステップSP8に進み、ポインタMsで指定される小節からポインタiMs個後(Ms+iMs)の小節を指定する値をポインタMscにセットする。続いて、ステップSP9では、ポインタMscで指定される小節が上段先頭小節に類似しているかどうかを判断する。ポインタMscで指定される小節が上段先頭小節に類似していなければ、判断結果は「NO」になり、ステップSP10に進み、ポインタiMsを歩進させた後、上述のステップSP5に処理を戻す。 If the measure specified by the pointer Msc is not similar to the top first measure, the determination result is “NO”, and the process proceeds to step SP8, where the measure iMs (Ms + iMs) after the measure specified by the pointer Ms is selected. A designated value is set in the pointer Msc. Subsequently, in step SP9, it is determined whether or not the measure specified by the pointer Msc is similar to the top first measure. If the measure specified by the pointer Msc is not similar to the upper first measure, the determination result is “NO”, the process proceeds to step SP10, the pointer iMs is incremented, and the process returns to step SP5 described above.
以後、歩進されたポインタiMsが所定の検索数を超えるまで、すなわち1段で表示可能な小節数に達するまでの間、上記ステップSP5〜SP10を繰り返すことによって、上段先頭小節に類似する小節を探し出す。そして、該当する小節が検索されなければ、上記ステップSP5の判断結果が「NO」となり、上述したステップSP3に進み、レジスタRowおよびカウンタRwCntをインクリメントして歩進させると共に、カウンタMsCntをゼロリセットして本処理を終える。 Thereafter, until the stepped pointer iMs exceeds the predetermined number of searches, that is, until the number of bars that can be displayed in one stage is reached, the above steps SP5 to SP10 are repeated, whereby a bar similar to the top head bar is selected. Find out. If the corresponding bar is not searched, the determination result in step SP5 is “NO”, and the process proceeds to step SP3 described above. The register Row and the counter RwCnt are incremented and incremented, and the counter MsCnt is reset to zero. To finish this process.
これに対し、ポインタMsで指定される小節からポインタiMs個前(Ms−iMs)に上段先頭小節に類似する小節が存在すると、上記ステップSP7の判断結果が「YES」となり、図23に図示するステップSP11に進む。また、ポインタMsで指定される小節からポインタiMs個後(Ms+iMs)に上段先頭小節に類似する小節が存在すると、上記ステップSP9の判断結果が「YES」になり、図23に図示するステップSP18に進む。以下、上段先頭小節に類似する小節がポインタiMs個前に存在する場合と、上段先頭小節に類似する小節がポインタiMs個後に存在する場合とに分けて動作説明を進める。 On the other hand, if there is a measure similar to the upper first measure from the measure specified by the pointer Ms iMs ahead (Ms-iMs), the determination result in step SP7 is “YES”, which is shown in FIG. Proceed to step SP11. If there is a measure similar to the top first measure after the pointer iMs from the measure specified by the pointer Ms (Ms + iMs), the determination result in step SP9 is “YES”, and the process proceeds to step SP18 shown in FIG. move on. In the following, the description of the operation is divided into a case where a measure similar to the top first measure exists before iMs pointers and a case where a measure similar to the top first measure exists after iMs pointers.
<上段先頭小節に類似する小節がポインタiMs個前に存在する場合>
この場合、図23に図示するステップSP11に進み、ポインタMscで指定される小節の小節データMeasureに、段送り有りを表す値「1」の段送りフラグiRPass(Ms.iRPass)をセットする。次いで、ステップSP12では、レジスタRowおよびカウンタRwCntをインクリメントして歩進させると共に、1段内に含まれる小節数をカウントするカウンタMsCntをゼロリセットする。続いて、ステップSP13では、1つ後の小節を指定するようポインタMscを更新する。
<When a measure similar to the top first measure exists before iMs pointers>
In this case, the process proceeds to step SP11 shown in FIG. 23, and a step flag iRPass (Ms.iRPass) having a value “1” indicating the presence of step advance is set in the measure data Measurement of the measure designated by the pointer Msc. Next, in step SP12, the register Row and the counter RwCnt are incremented and incremented, and the counter MsCnt that counts the number of bars included in one stage is reset to zero. Subsequently, in step SP13, the pointer Msc is updated so as to designate the next measure.
この後、ステップSP14〜SP16では、ポインタMscで指定される小節がポインタMsで指定される小節に一致するまでポインタMscを歩進させる毎に、その歩進されるポインタMscで指定される小節の小節データMeasureの段番号iRow(Msc.iRow)としてレジスタRowにストアされている値を登録する一方、ポインタMsで指定される小節の小節データMeasure中の段送りフラグiRPass(Ms.iRPass)として、段送り無しを表す値「0」をセットする。そして、ポインタMscで指定される小節がポインタMsで指定される小節に一致すると、ステップSP14の判断結果が「NO」になり、本処理を終える。 Thereafter, in steps SP14 to SP16, every time the pointer Msc is incremented until the measure designated by the pointer Msc matches the measure designated by the pointer Ms, the measure designated by the incremented pointer Msc is changed. While registering the value stored in the register Row as the step number iRow (Msc.iRow) of the measure data Measurement, as the step-up flag iRPass (Ms.iRPass) in the measure data Measurement of the measure specified by the pointer Ms, A value “0” representing no step feed is set. When the measure specified by the pointer Msc matches the measure specified by the pointer Ms, the determination result in step SP14 is “NO”, and the present process ends.
<上段先頭小節に類似する小節がポインタiMs個後に存在する場合>
この場合、図23に図示するステップSP18に進み、ポインタMscで指定される小節の小節データMeasureに、段送り有りを表す値「1」の段送りフラグiRPass(Ms.iRPass)をセットする。次いで、ステップSP19〜SP21では、ポインタMsで指定される小節がポインタMscで指定される小節に一致するまでポインタMsを歩進させる毎に、その歩進されるポインタMsで指定される小節の小節データMeasureの段番号iRow(Ms.iRow)としてレジスタRowにストアされている値を登録する一方、ポインタMsで指定される小節の小節データMeasure中の段送りフラグiRPass(Ms.iRPass)として、段送り無しを表す値「0」をセットする。
<When a measure similar to the top first measure exists after iMs pointers>
In this case, the process proceeds to step SP18 shown in FIG. 23, and a step flag iRPass (Ms.iRPass) having a value “1” indicating the presence of step advance is set in the measure data Measurement of the measure designated by the pointer Msc. Next, in steps SP19 to SP21, each time the pointer Ms is incremented until the measure designated by the pointer Ms matches the measure designated by the pointer Msc, the measure of the measure designated by the incremented pointer Ms. The value stored in the register Row is registered as the step number iRow (Ms.iRow) of the data Measurement, while the step flag iRPass (Ms.iRPass) in the measure data Measurement of the measure specified by the pointer Ms is used. A value “0” representing no feed is set.
そして、ポインタMsで指定される小節がポインタMscで指定される小節に一致すると、ステップSP19の判断結果が「NO」になり、ステップSP17に進み、レジスタRowおよびカウンタRwCntをインクリメントして歩進させると共に、1段内に含まれる小節数をカウントするカウンタMsCntをゼロリセットして本処理を終える。このように、類似箇所チェック処理では、1段で表示可能な小節数に達するまでの間に、上段先頭小節に類似する小節を探し出し、該当する小節で段送り設定を行う。 When the measure specified by the pointer Ms matches the measure specified by the pointer Msc, the determination result in step SP19 becomes “NO”, the process proceeds to step SP17, and the register Row and the counter RwCnt are incremented to be incremented. At the same time, the counter MsCnt that counts the number of measures included in one stage is reset to zero, and the process ends. In this way, in the similar portion check process, a measure similar to the top measure in the upper row is searched until the number of measures that can be displayed in one row is reached, and the step-up setting is performed in the corresponding measure.
以上のように、第3実施形態による段送り判定処理では、1段で表示可能な小節数に達するまでの間に、上段先頭小節に類似する小節を探し出し、該当する小節で段送り設定を行うので、段の上下で類似性の高い小節が並ぶようになり、見易い楽譜を表示することが可能になる。 As described above, in the step determination process according to the third embodiment, a measure similar to the upper first measure is searched until the number of measures that can be displayed in one step is reached, and the step is set in the corresponding measure. Therefore, bars with high similarity are arranged on the top and bottom of the stage, and it is possible to display an easy-to-read score.
[第4実施形態]
次に、図24〜図26を参照して第4実施形態について説明する。第4実施形態の構成は、前述した第1実施形態と同一なので、その説明については省略する。第4実施形態では、ページの最終小節にできるだけ演奏コストが低く演奏し易い小節を選定し、その小節でページ送り設定することによってユーザの譜めくり動作を容易にする。以下では、こうした第4実施形態による「表示条件設定処理」の動作を説明する。
[Fourth Embodiment]
Next, a fourth embodiment will be described with reference to FIGS. Since the configuration of the fourth embodiment is the same as that of the first embodiment described above, the description thereof is omitted. In the fourth embodiment, a measure for which the performance cost is as low as possible and easy to play is selected as the last measure of the page, and page turning is set for the measure, thereby facilitating the user's page turning operation. Hereinafter, the operation of the “display condition setting process” according to the fourth embodiment will be described.
(1)表示条件設定処理の動作
図24は、第4実施形態による表示条件設定処理の動作を示すフローチャートである。前述した第1実施形態と同様に、メインルーチンのステップSA4(図5参照)を介して本処理が実行されると、CPU1は図24に図示するステップSQ1に進む。ステップSQ1〜SQ2では、ページ番号iPageを保持するレジスタPage、段番号iRowを保持するレジスタRow、段数を計数するカウンタRwCntおよび1段内に含まれる小節数を計数するカウンタMsCntを初期化(ゼロリセット)する。続いて、ステップSQ3では、最初の小節を指定する値をポインタMsにセットする。
(1) Operation of display condition setting processing
FIG. 24 is a flowchart showing the operation of the display condition setting process according to the fourth embodiment. As in the first embodiment described above, when this process is executed via step SA4 (see FIG. 5) of the main routine, the
次いで、ステップSQ4では、ポインタMsで指定される小節が曲終端を超えているか否かを判断する。曲終端を超えていなければ、判断結果は「NO」になり、ステップSQ5に進む。ステップSQ5では、ポインタMsで指定される小節がラベリング先頭小節であるか否かを判断する。ラベリング先頭小節でなければ、判断結果は「NO」になり、ステップSQ6に進み、次の小節を指定するようポインタMsを歩進させた後、上述のステップSQ4に処理を戻す。 Next, in step SQ4, it is determined whether or not the measure specified by the pointer Ms exceeds the end of the song. If it does not exceed the end of the song, the determination result is “NO”, and the process proceeds to step SQ5. In step SQ5, it is determined whether or not the bar designated by the pointer Ms is the labeling head bar. If it is not the labeling first measure, the determination result is “NO”, the process proceeds to step SQ6, the pointer Ms is incremented to designate the next measure, and then the process returns to step SQ4.
一方、ポインタMsで指定される小節がラベリング先頭小節であると、上記ステップSQ5の判断結果が「YES」になり、ステップSQ7に進む。ステップSQ7では、前の小節の小節データMeasure中の段送りフラグiRPassに段送り有りを表す値「1」をセットする段送り設定を行うと共に、この段送りに応じてレジスタRowの値をインクリメントして歩進させる。次いで、ステップSQ8では、レジスタRowに格納される段数が、ページ送りを行う段数に達したか否かを判断する。 On the other hand, if the measure specified by the pointer Ms is the labeling head measure, the determination result in step SQ5 is “YES”, and the flow advances to step SQ7. In step SQ7, a step-up setting is set in which a value “1” indicating the presence of step feed is set in the step feed flag iRPass in the measure data “Measure” of the previous measure, and the value of the register Row is incremented according to this step feed. To advance. Next, in step SQ8, it is determined whether or not the number of stages stored in the register Row has reached the number of stages for page feed.
ページ送りを行う段数に達していると、判断結果は「YES」になり、ステップSQ9を介してページ送り位置検証処理を実行する。ページ送り位置検証処理では、後述するように、ページ送りを行う段数に達している状況において、段末尾の小節の最後4分音符相当以上の期間中に音符や休符が有る場合や、段末尾の小節の演奏コストが規定値以下である場合に、その段末尾の小節でページ送り設定する。 If the number of pages to be paged is reached, the determination result is “YES”, and the page feed position verification process is executed via step SQ9. In the page feed position verification process, as will be described later, in the situation where the number of pages to be paged has been reached, if there are notes or rests in the period equal to or greater than the last quarter note of the measure at the end of the column, If the performance cost of a bar is less than the specified value, page feed is set at the bar at the end of that stage.
こうしたページ送り位置検証処理が完了すると、ステップSQ10に進む。また、ページ送りを行う段数に達していない場合も上記ステップSQ8の判断結果が「NO」となり、ステップSQ10に進む。ステップSQ10では、グループ内(ラベリングされた区間)の最後の小節を指定する値をポインタMsTermにセットする。次いで、ポインタMsTermで指定されるラベリングされた区間の最後の小節からポインタMsで指定される小節までの小節数(MsTerm−Ms)が、1段で表示可能な最大小節数を超えているか否かを判断する。 When such page feed position verification processing is completed, the process proceeds to step SQ10. Also, when the number of pages to be paged is not reached, the determination result in step SQ8 is “NO”, and the process proceeds to step SQ10. In step SQ10, a value specifying the last measure in the group (labeled section) is set in the pointer MsTerm. Next, whether or not the number of bars (MsTerm-Ms) from the last bar of the labeled section specified by the pointer MsTerm to the bar specified by the pointer Ms exceeds the maximum number of bars that can be displayed in one row. Judging.
1段で表示可能な最大小節数を超えていなければ、判断結果は「NO」になり、前述したステップSQ4に処理を戻す。これに対し、1段で表示可能な最大小節数を超えると、上記ステップSQ11の判断結果が「YES」になり、ステップSQ12に進む。ステップSQ12では、ポインタMsで指定される小節の次がラベリング先頭小節になる場合や1段で表示可能な標準小節数を超える場合に、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasureの段番号iRow(Ms.iRow)として登録すると共に、段送り有りを表す値「1」の段送りフラグiRPass(Ms.iRPass)を設定する段送り判定処理を実行する。 If the maximum number of bars that can be displayed in one row is not exceeded, the determination result is “NO”, and the process returns to step SQ4 described above. On the other hand, if the maximum number of bars that can be displayed in one row is exceeded, the determination result in step SQ11 is “YES”, and the flow advances to step SQ12. In step SQ12, the value stored in the register Row is designated by the pointer Ms when the next measure after the measure designated by the pointer Ms becomes the labeling top measure or when the number of standard measures that can be displayed in one row is exceeded. Is registered as the step number iRow (Ms.iRow) of the measure data “Measure” of the measure to be set, and the step-by-step determination process for setting the step-feed flag iRPass (Ms.iRPass) having a value “1” indicating the presence of step-feed is executed.
次いで、ステップSQ13では、グループ内(ラベリングされた区間)の末尾の次の小節を指定する値をポインタMsにセットした後、前述のステップSQ4に処理を戻す。以後、ポインタMsで指定される小節が曲終端を超えるまで、上述したステップSQ4〜SQ13を繰り返す。そして、ポインタMsで指定される小節が曲終端を超えると、ステップSQ4の判断結果が「YES」になり、本処理を終える。 Next, in step SQ13, a value that designates the next measure at the end of the group (labeled section) is set in the pointer Ms, and then the process returns to step SQ4. Thereafter, steps SQ4 to SQ13 described above are repeated until the measure specified by the pointer Ms exceeds the end of the song. If the measure specified by the pointer Ms exceeds the end of the song, the determination result in step SQ4 is “YES”, and the process is terminated.
(2)ページ送り位置検証処理の動作
次に、図25〜図26を参照してページ送り位置検証処理の動作を説明する。上述した第4実施形態による表示条件設定処理のステップSQ9(図24参照)を介して本処理が実行されると、CPU1は図25に図示するステップSR1に進む。ステップSR1では、ポインタMsで指定される小節の最後4分音符相当以上の期間に音符(継続音)や休符が無いかどうかを判断する。
(2) Operation of page feed position verification processing
Next, the operation of the page feed position verification process will be described with reference to FIGS. When this process is executed via step SQ9 (see FIG. 24) of the display condition setting process according to the fourth embodiment described above, the
該当する音符や休符が無ければ、判断結果は「YES」になり、ステップSR2に進み、レジスタPageにストアされている値を、ポインタMsで指定される小節の小節データMeasure中のページ番号iPage(Ms.iPage)として登録する一方、当該小節データMeasure中のページ送りフラグiPPass(Ms.iPPass)として、ページ送り有りを表す値「1」をセットする。そして、ステップSR3に進み、レジスタRowおよびカウンタRwCntをインクリメントして歩進させると共に、カウンタMsCntをゼロリセットして本処理を終える。 If there is no corresponding note or rest, the determination result is “YES”, the process proceeds to step SR2, and the value stored in the register Page is changed to the page number iPage in the measure data Measurement of the measure specified by the pointer Ms. While registering as (Ms.iPage), a value “1” representing the presence of page feed is set as the page feed flag iPPpass (Ms.iPPpass) in the measure data Measurement. In step SR3, the register Row and the counter RwCnt are incremented and incremented, and the counter MsCnt is reset to zero to complete the present process.
一方、ポインタMsで指定される小節の最後4分音符相当以上の期間に音符や休符が有ると、上記ステップSR1の判断結果が「NO」になり、ステップSR4に進む。ステップSR4では、ポインタiRwに初期値「1」をセットする。次いで、ステップSR5では、ポインタiRwの値が所定の検索数を超えたかどうかを判断する。ポインタiRwが所定の検索数を超えていなければ、判断結果は「YES」になり、ステップSR6に進む。ステップSR6では、iRw段前の末尾の小節を指定する値をポインタMscにストアする。 On the other hand, if there is a note or rest in a period equal to or longer than the last quarter note of the measure specified by the pointer Ms, the determination result in step SR1 is “NO”, and the process proceeds to step SR4. In step SR4, an initial value “1” is set to the pointer iRw. Next, in step SR5, it is determined whether or not the value of the pointer iRw has exceeded a predetermined number of searches. If the pointer iRw does not exceed the predetermined number of searches, the determination result is “YES”, and the flow proceeds to step SR6. In step SR6, a value designating the last measure before the iRw stage is stored in the pointer Msc.
次いで、ステップSR7では、ポインタMscで指定される小節の最後4分音符相当以上の期間に音符(継続音)や休符が無いかどうかを判断する。該当する音符(継続音)や休符が無ければ、判断結果は「YES」になり、ステップSR8に進み、ポインタiRwをインクリメントして歩進させた後、上述のステップSR5に処理を戻す。 Next, in step SR7, it is determined whether or not there are any notes (continuous notes) or rests in a period equal to or longer than the last quarter note of the measure specified by the pointer Msc. If there is no corresponding note (continuation sound) or rest, the determination result is “YES”, the process proceeds to step SR8, the pointer iRw is incremented and stepped, and then the process returns to step SR5.
以後、ポインタiRwの値が所定の検索数を超えるまでポインタiRwを歩進させに、これに応じて遡上するiRw段前の末尾の小節(ポインタMscが指定する小節)毎に、その小節の最後4分音符相当以上の期間に音符(継続音)や休符が有るかどうかを判断する。そして、該当する音符(継続音)や休符が見つかると、上記ステップSR7の判断結果が「NO」になり、ステップSR9に進み、ポインタMscで指定される小節の小節データMeasureに、ページ送り有りを表す値「1」のページ送りフラグiPPass(Ms.iPPass)をセットする。これにより、音符(継続音)や休符を有する小節でページ送り設定が行われる。 Thereafter, the pointer iRw is incremented until the value of the pointer iRw exceeds a predetermined number of searches, and the last bar (i.e., the bar specified by the pointer Msc) preceding the iRw stage that goes up in response is incremented for that bar. It is determined whether or not there is a note (continuation sound) or rest in a period equal to or longer than the last quarter note. When a corresponding note (continuation tone) or rest is found, the determination result in step SR7 is “NO”, and the process proceeds to step SR9, where the page data is measured in the measure data Measurement of the measure specified by the pointer Msc. A page feed flag iPPpass (Ms.iPPpass) having a value “1” representing “1” is set. As a result, the page feed setting is performed at a measure having a note (continuation sound) or a rest.
次いで、ステップSR10では、レジスタPageをインクリメントして歩進させると共に、ページ中の段数をカウントするカウンタRwCntをゼロリセットする。そして、ステップSR11〜SR15では、ポインタMscで指定される小節がポインタMsで指定される小節に一致するまでポインタMscを歩進させる毎に、この歩進されるポインタMscで指定される小節の小節データMeasure中のページ番号iPage(Ms.iPage)としてレジスタPageに格納される値を登録する。また、歩進されるポインタMscで指定される小節の小節データMeasure中の段送りフラグiRPassが「1」、すなわちポインタMscで指定される小節が段送り設定されていると、カウンタRwCntをインクリメントする。そして、ポインタMscで指定される小節がポインタMsで指定される小節に一致すると、ステップSR15の判断結果が「YES」になり、本処理を終える。 Next, in step SR10, the register Page is incremented and incremented, and the counter RwCnt that counts the number of stages in the page is reset to zero. In steps SR11 to SR15, each time the pointer Msc is incremented until the measure designated by the pointer Msc matches the measure designated by the pointer Ms, the measure of the measure designated by the incremented pointer Msc is obtained. A value stored in the register Page is registered as the page number iPage (Ms.iPage) in the data Measurement. Further, if the advance flag iRPass in the measure data Measurement of the measure specified by the stepped pointer Msc is “1”, that is, if the measure specified by the pointer Msc is set to advance, the counter RwCnt is incremented. . When the measure specified by the pointer Msc matches the measure specified by the pointer Ms, the determination result in step SR15 is “YES”, and this processing is finished.
さて一方、ポインタiRwを所定の検索数を超えるまで歩進させても、末尾に音符(継続音)や休符を有する小節が見つからない場合には、上述したステップSR5の判断結果が「NO」になり、図26に図示するステップSR16に進む。ステップSR16では、ポインタMsで指定される小節の小節データMeasure中の演奏コストiCost(Ms.iCost)が規定値以下であるか否かを判断する。 On the other hand, even if the pointer iRw is stepped up to exceed the predetermined number of searches, if a measure having a note (continuation sound) or rest at the end is not found, the determination result in the above-described step SR5 is “NO”. The process proceeds to step SR16 shown in FIG. In step SR16, it is determined whether or not the performance cost iCost (Ms.iCost) in the measure data Measurement of the measure specified by the pointer Ms is equal to or less than a specified value.
演奏コストiCost(Ms.iCost)が規定値以下ならば、判断結果は「YES」になり、ステップSR17に進み、レジスタPageにストアされている値を、ポインタMsで指定される小節の小節データMeasure中のページ番号iPage(Ms.iPage)として登録する一方、当該小節データMeasure中のページ送りフラグiPPass(Ms.iPPass)として、ページ送り有りを表す値「1」をセットする。そして、ステップSR18に進み、レジスタRowおよびカウンタRwCntをインクリメントして歩進させると共に、カウンタMsCntをゼロリセットして本処理を終える。 If the performance cost iCost (Ms.iCost) is equal to or less than the specified value, the determination result is “YES”, the process proceeds to step SR17, and the value stored in the register Page is stored in the measure data of the measure specified by the pointer Ms. While being registered as the middle page number iPage (Ms.iPage), the page feed flag iPPpass (Ms.iPPpass) in the measure data Measurement is set to a value “1” indicating the presence of page feed. In step SR18, the register Row and the counter RwCnt are incremented and incremented, and the counter MsCnt is reset to zero and the process is terminated.
一方、ポインタMsで指定される小節の演奏コストiCost(Ms.iCost)が規定値を超えていると、上記ステップSR16の判断結果は「NO」になり、ステップSR19に進む。ステップSR19では、ポインタiRwに初期値「1」をセットする。次いで、ステップSR20では、ポインタiRwの値が所定の検索数を超えたかどうかを判断する。ポインタiRwが所定の検索数を超えると、判断結果は「NO」になり、上述のステップSR17に進む。 On the other hand, if the performance cost iCost (Ms.iCost) of the measure specified by the pointer Ms exceeds the specified value, the determination result in step SR16 is “NO”, and the process proceeds to step SR19. In step SR19, an initial value “1” is set to the pointer iRw. Next, in step SR20, it is determined whether the value of the pointer iRw has exceeded a predetermined number of searches. If the pointer iRw exceeds the predetermined number of searches, the determination result is “NO”, and the process proceeds to step SR17 described above.
これに対し、ポインタiRwが所定の検索数を超えていなければ、上記ステップSR20の判断結果は「YES」になり、ステップSR21に進み、iRw段前の末尾の小節を指定する値をポインタMscにストアする。続いて、ステップSR22では、ポインタMscで指定される小節の演奏コストiCost(Msc.iCost)が規定値以下であるか否かを判断する。小節の演奏コストiCost(Msc.iCost)が規定値を超えていれば、判断結果は「NO」になり、ステップSR23に進み、ポインタiRwをインクリメントして歩進させた後、上述のステップSR20に処理を戻す。 On the other hand, if the pointer iRw does not exceed the predetermined number of searches, the determination result in step SR20 is “YES”, the process proceeds to step SR21, and a value that specifies the last measure before the iRw stage is set in the pointer Msc. Store. Subsequently, in step SR22, it is determined whether or not the performance cost iCost (Msc.iCost) of the measure specified by the pointer Msc is equal to or less than a specified value. If the performance cost iCost (Msc.iCost) of the measure exceeds the specified value, the determination result is “NO”, the process proceeds to step SR23, the pointer iRw is incremented, and the process proceeds to step SR20 described above. Return processing.
以後、所定の検索数を超えるまでポインタiRwを歩進させる毎に、これに応じて遡上するiRw段前の小節の演奏コストiCost(Msc.iCost)が規定値以下であるかどうかを判断する。規定値以下の演奏コストiCostが見つかると、上記ステップSR22の判断結果が「YES」になり、ステップSR24に進み、ポインタMscで指定される小節の小節データMeasureに、ページ送り有りを表す値「1」のページ送りフラグiPPass(Ms.iPPass)をセットする。 Thereafter, each time the pointer iRw is incremented until the predetermined number of searches is exceeded, it is determined whether or not the performance cost iCost (Msc.iCost) of the measure preceding the iRw stage going up is equal to or less than a specified value. . When the performance cost iCost below the specified value is found, the determination result in step SR22 is “YES”, the process proceeds to step SR24, and the value “1” indicating that page feed is present in the measure data Measurement of the measure specified by the pointer Msc. ”Page feed flag iPPpass (Ms.iPPpass) is set.
次いで、ステップSR25では、レジスタPageをインクリメントして歩進させると共に、ページ中の段数をカウントするカウンタRwCntをゼロリセットする。そして、ステップSR26〜SR30では、ポインタMscで指定される小節がポインタMsで指定される小節に一致するまでポインタMscを歩進させる毎に、歩進されるポインタMscで指定される小節の小節データMeasure中のページ番号iPage(Ms.iPage)としてレジスタPageに格納される値を登録する。また、歩進されるポインタMscで指定される小節の小節データMeasure中の段送りフラグiRPassが「1」、すなわちポインタMscで指定される小節が段送り設定されていると、カウンタRwCntをインクリメントする。そして、ポインタMscで指定される小節がポインタMsで指定される小節に一致すると、ステップSR15の判断結果が「YES」になり、本処理を終える。 Next, in step SR25, the register Page is incremented and incremented, and the counter RwCnt that counts the number of stages in the page is reset to zero. In steps SR26 to SR30, each time the pointer Msc is incremented until the measure specified by the pointer Msc matches the measure specified by the pointer Ms, the measure data of the measure specified by the incremented pointer Msc is obtained. The value stored in the register Page is registered as the page number iPage (Ms.iPage) in the Measurement. Further, if the advance flag iRPass in the measure data Measurement of the measure specified by the stepped pointer Msc is “1”, that is, if the measure specified by the pointer Msc is set to advance, the counter RwCnt is incremented. . When the measure specified by the pointer Msc matches the measure specified by the pointer Ms, the determination result in step SR15 is “YES”, and this processing is finished.
以上のように、第4実施形態では、ページ送りを行う段数に達すると、段末尾の小節の最後4分音符相当以上の期間中に音符や休符が有る場合や、段末尾の小節の演奏コストが規定値以下である場合に、その段末尾の小節でページ送り設定するので、ユーザの譜めくり動作を容易にすることが可能になる。 As described above, in the fourth embodiment, when the number of pages to be paged is reached, there is a note or rest in a period equal to or longer than the last quarter note of the measure at the end of the step, or the performance of the measure at the end of the step. When the cost is less than or equal to the specified value, the page turning is set at the bar at the end of the stage, so that the user can easily turn the page.
[変形例]
次に、図27を参照して第4実施形態の変形例について説明する。図27は、変形例による表示条件設定処理の動作を示すフローチャートである。前述した第1実施形態と同様に、メインルーチンのステップSA4(図5参照)を介して本処理が実行されると、CPU1は図27に図示するステップSS1に進む。ステップSS1〜SS2では、ページ番号iPageを保持するレジスタPage、段番号iRowを保持するレジスタRow、段数を計数するカウンタRwCntおよび1段内の小節数を計数するカウンタMsCntを初期化(ゼロリセット)する。続いて、ステップSS3では、最初の小節を指定する値をポインタMsにセットする。
[Modification]
Next, a modification of the fourth embodiment will be described with reference to FIG. FIG. 27 is a flowchart showing the operation of the display condition setting process according to the modification. As in the first embodiment described above, when this process is executed via step SA4 (see FIG. 5) of the main routine, the
次いで、ステップSS4では、ポインタMsで指定される小節が曲終端を超えているか否かを判断する。曲終端を超えていなければ、判断結果は「NO」になり、ステップSS5を介して段送り判定処理を実行する。段送り判定処理では、ポインタMsで指定される小節の次がラベリング先頭小節になる場合や1段で表示可能な標準小節数を超える場合に、レジスタRowにストアされている値を、ポインタMsで指定される小節の小節データMeasureの段番号iRow(Ms.iRow)として登録すると共に、段送り有りを表す値「1」の段送りフラグiRPass(Ms.iRPass)を設定する。 Next, in step SS4, it is determined whether or not the measure specified by the pointer Ms has exceeded the end of the song. If it does not exceed the end of the song, the determination result is “NO”, and the step determination process is executed via step SS5. In the step-by-step determination process, when the next of the measure specified by the pointer Ms becomes the labeling start measure or when the number of standard measures that can be displayed in one step is exceeded, the value stored in the register Row is set by the pointer Ms. While registering as the step number iRow (Ms.iRow) of the measure data Measure of the specified measure, a step flag iRPass (Ms.iRPass) having a value “1” indicating presence of step feed is set.
続いて、ステップSS6では、ポインタMsで指定される小節の小節データMeasure中の段送りフラグiRPass(Ms.iRPass)が、段送り有りを表す値「1」であるか否かを判断する。段送りフラグiRPass(Ms.iRPass)が「0」(段送り無し)ならば、判断結果は「NO」になり、ステップSS7に進む。ステップSS7では、レジスタPageの値を、ポインタMsで指定される小節の小節データMeasureのページ番号iPage(Ms.iPage)として登録すると共に、ページ送り無しを表す値「0」のページ送りフラグiPPass(Ms.iPPass)を設定する。そして、ステップSS10に進み、ポインタMsを次の小節を指定するよう歩進させた後、上述のステップSS4に処理を戻す。 Subsequently, in step SS6, it is determined whether or not the advance flag iRPass (Ms.iRPass) in the measure data Measurement of the measure designated by the pointer Ms is a value “1” indicating that there is a advance. If the advance flag iRPass (Ms.iRPass) is “0” (no advance), the determination result is “NO”, and the process proceeds to Step SS7. In step SS7, the value of the register Page is registered as the page number iPage (Ms.iPage) of the measure data Measure of the measure specified by the pointer Ms, and the page feed flag iPPpass (0) indicating no page feed is set. Ms.iPPpass). Then, the process proceeds to step SS10, the pointer Ms is incremented so as to designate the next measure, and then the process returns to the above-described step SS4.
一方、段送りフラグiRPass(Ms.iRPass)が「1」(段送り有り)であると、上記ステップSS6の判断結果は「YES」になり、ステップSS8に進む。ステップSS8では、1ページ中の段数をカウントするカウンタRwCntの値が1ページの標準段数以上であるか否かを判断する。カウンタRwCntの値が標準段数未満ならば、判断結果は「NO」になり、上述したステップSS7に進む。 On the other hand, if the advance flag iRPass (Ms.iRPass) is “1” (with advance), the determination result in Step SS6 is “YES”, and the process proceeds to Step SS8. In step SS8, it is determined whether or not the value of the counter RwCnt that counts the number of stages in one page is equal to or greater than the standard number of stages in one page. If the value of the counter RwCnt is less than the standard stage number, the determination result is “NO”, and the process proceeds to Step SS7 described above.
これに対し、前述した段送り判定処理(ステップSS5)で段送りが生じ、これにより歩進されたカウンタRwCntの値が、1ページの標準段数を超えると、上記ステップSS8の判断結果は「YES」になり、ステップSS9に進む。ステップSS9では、段末尾の小節の最後4分音符相当以上の期間中に音符や休符が有る場合や、段末尾の小節の演奏コストが規定値以下である場合に、その段末尾の小節でページ送り設定するページ送り位置検証処理を実行する。この後、ステップSS10に進み、ポインタMsを次の小節を指定するよう歩進させた後、上述のステップSJ4に処理を戻す。以後、ポインタMsで指定される小節が曲終端を超えるまで、上述したステップSS4〜SS10を繰り返す。そして、ポインタMsで指定される小節が曲終端を超えると、ステップSS4の判断結果が「YES」になり、本処理を終える。 On the other hand, when a step is generated in the above-described step determination process (step SS5), and the value of the counter RwCnt advanced by this exceeds the standard number of pages of one page, the determination result in step SS8 is “YES”. The process proceeds to step SS9. In step SS9, if there is a note or rest in a period longer than the last quarter note of the measure at the end of the step, or if the performance cost of the measure at the end of the step is less than the specified value, the measure at the end of the step is A page feed position verification process for setting page feed is executed. Thereafter, the process proceeds to step SS10, the pointer Ms is incremented to designate the next measure, and then the process returns to the above-described step SJ4. Thereafter, the above steps SS4 to SS10 are repeated until the measure specified by the pointer Ms exceeds the end of the music piece. When the measure specified by the pointer Ms exceeds the end of the song, the determination result in step SS4 is “YES”, and the process is finished.
このように、変形例によれば、第4実施形態と同様、ページ送りを行う段数に達すると、段末尾の小節の最後4分音符相当以上の期間中に音符や休符が有る場合や、段末尾の小節の演奏コストが規定値以下である場合に、その段末尾の小節でページ送り設定するので、ユーザの譜めくり動作を容易にすることが可能になる。 Thus, according to the modified example, as in the fourth embodiment, when the number of stages for page turning is reached, there are notes or rests in a period equal to or longer than the last quarter note of the last measure of the stage, When the performance cost of the bar at the end of the stage is equal to or less than the specified value, page turning is set at the bar at the end of the stage, so that the user can easily turn the page.
1 CPU
2 ROM
3 RAM
4 入力部
5 表示部
6 MIDIインタフェース
7 電子楽器
1 CPU
2 ROM
3 RAM
4
Claims (6)
前記記憶手段に記憶される曲データを分析して得た曲構造に従って楽曲を複数の区間に分割する曲分割手段と、
前記記憶手段に記憶される曲データが複数の段から形成される楽譜として表示される場合に、前記曲分割手段により分割された各区間の終わりを、楽譜の各段末尾となるように表示設定する表示設定手段と、
この表示設定手段にて表示設定された楽譜を表示手段に表示出力する出力手段と、
を具備する楽譜表示装置において、
前記曲分割手段は、
前記記憶手段に記憶される曲データのひとつの小節に比較元小節を割り当てるとともに残りの他の小節に比較先小節を割り当てて当該比較元小節に対する比較先小節夫々の一致度を判定する動作を、前記曲データに含まれる小節全てに比較元小節が割り当てられるまで繰り返す判定手段と、
前記判定手段により各比較元小節に対してそれぞれ判定された各比較先小節の一致度の中から閾値以上の一致度が連続する比較先小節の範囲を、楽曲中の1つの区間として分割する分割手段と
を具備することを特徴とする楽譜表示装置。 Storage means for storing song data representing each sound constituting the song;
Music dividing means for dividing the music into a plurality of sections according to the music structure obtained by analyzing the music data stored in the storage means;
When song data stored in the storage means is displayed as a score formed from a plurality of stages, display setting is made so that the end of each section divided by the song dividing means becomes the end of each stage of the score Display setting means ,
Output means for displaying and outputting the score set by the display setting means to the display means;
In a score display device comprising:
The music dividing means is
An operation of assigning a comparison source measure to one measure of music data stored in the storage means and assigning a comparison destination measure to the remaining other measures and determining a degree of coincidence of each comparison destination measure with respect to the comparison source measure, A determination unit that repeats until all the measures included in the song data are assigned to the comparison source measure,
A division that divides a range of comparison destination bars in which the degree of coincidence equal to or higher than a threshold value from among the degree of coincidence of each comparison destination bar determined for each comparison source bar by the determination unit as one section in the music score display apparatus characterized by and means.
小節の先頭から後端まで所定の時間幅で歩進させる毎に、その歩進された時間幅中に比較元小節で発音している比較元音と比較先小節で発音している比較先音との音高が同一の場合および比較元音と比較先音とが共に存在しない場合に完全一致と判定する完全一致判定手段と、
前記完全一致判定手段により完全一致と判定された時間幅を累算した完全一致期間を、小節長に相当する時間で除算して完全一致度を算出する完全一致度算出手段とを備え、
前記分割手段は、
前記完全一致度算出手段により算出された各比較先小節の完全一致度の中から閾値以上の完全一致度が連続する比較先小節の範囲を、完全一致区間として分割する完全一致区間分割手段を具備することを特徴とする請求項1記載の楽譜表示装置。 The determination means includes
Each time a step is advanced from the beginning to the end of a measure with a predetermined time width, the comparison original sound that is sounded in the comparison measure and the comparison destination sound that is sounded in the comparison measure during the stepped time width A complete match determination means for determining a complete match when the pitch of and the comparison original sound and the comparison target sound are not both,
A perfect match degree calculating means for calculating a perfect match degree by dividing a perfect match period obtained by accumulating a time width determined to be a perfect match by the perfect match judgment means by a time corresponding to a measure length;
The dividing means includes
A perfect match section dividing means for dividing, as a perfect match section, a range of comparison destination bars in which perfect match degrees equal to or greater than a threshold value are continuous among the perfect match degrees calculated by the perfect match degree calculation means; The musical score display device according to claim 1, wherein:
小節の先頭から後端まで所定の時間幅で歩進させる毎に、その歩進された時間幅中に比較元小節で発音している比較元音と比較先小節で発音している比較先音とが存在し、かつ比較元音と比較先音とが転調関係にある場合に相対一致と判定する相対一致判定手段と、
前記相対一致判定手段により相対一致と判定された時間幅を累算した相対一致期間を、小節長に相当する時間で除算して相対一致度を算出する相対一致度算出手段とを備え、
前記分割手段は、
前記相対一致度算出手段により算出された各比較先小節の相対一致度の中から閾値以上の相対一致度が連続する比較先小節の範囲を、相対一致区間として分割する相対一致区間分割手段を具備することを特徴とする請求項1記載の楽譜表示装置。 The determination means includes
Each time a step is advanced from the beginning to the end of a measure with a predetermined time width, the comparison original sound that is sounded in the comparison measure and the comparison destination sound that is sounded in the comparison measure during the stepped time width And a relative match determination means for determining a relative match when the comparison original sound and the comparison target sound are in a transposition relationship,
A relative coincidence calculating unit that calculates a relative coincidence by dividing a relative coincidence period obtained by accumulating a time width determined as a relative coincidence by the relative coincidence determination unit by a time corresponding to a measure length;
The dividing means includes
Relative matching section dividing means for dividing, as a relative matching section, a range of comparison destination bars in which relative matching degrees equal to or greater than a threshold value are continuous among the relative matching degrees calculated by the relative matching degree calculation means. The musical score display device according to claim 1, wherein:
小節の先頭から後端まで所定の時間幅で歩進させる毎に、その歩進された時間幅中に比較元小節で発音している比較元音と比較先小節で発音している比較先音とが存在し、かつ比較元小節の先頭音の音高と比較元音との音高差の方向が、比較先小節の先頭音の音と比較先音との音高差との方向に一致する場合に相対方向一致と判定する相対方向一致判定手段と、
前記相対方向一致判定手段により相対方向一致と判定された時間幅を累算した相対方向一致期間を、小節長に相当する時間で除算して相対方向一致度を算出する相対方向一致度算出手段とを備え、
前記分割手段は、
前記相対方向一致度算出手段により算出された各比較先小節の相対方向一致度の中から閾値以上の相対方向一致度が連続する比較先小節の範囲を、相対方向一致区間として分割する相対方向一致区間分割手段を具備することを特徴とする請求項1記載の楽譜表示装置。 The determination means includes
Each time a step is advanced from the beginning to the end of a measure with a predetermined time width, the comparison original sound that is sounded in the comparison measure and the comparison destination sound that is sounded in the comparison measure during the stepped time width And the direction of the pitch difference between the first note of the comparison measure and the comparison note matches the direction of the difference between the first note of the comparison measure and the comparison note Relative direction coincidence determining means for determining relative direction coincidence when
Relative direction coincidence calculating means for calculating a relative direction coincidence by dividing a relative direction coincidence period obtained by accumulating the time width determined as relative direction coincidence by the relative direction coincidence determining unit by a time corresponding to the bar length; With
The dividing means includes
Relative direction matching that divides, as a relative direction matching section, a range of comparison destination bars that have consecutive relative direction matching degrees equal to or greater than a threshold from the relative direction matching degrees of the respective comparison destination bars calculated by the relative direction matching degree calculation unit. score display apparatus according to claim 1, characterized by comprising a segment dividing means.
小節の先頭から後端まで所定の時間幅で歩進させる毎に、その歩進された時間幅中に比較元小節で発音している比較元音と比較先小節で発音している比較先音とが存在し、かつ比較元音と比較先音との発音開始時間並びに消音時間の差が許容範囲内である場合および歩進された時間幅中に発音する比較元音および比較先音が共に存在せず、かつ現在判定対象となる比較元音および比較先音のそれぞれについて前音の消音時間と次音の発音開始時間とが許容範囲内にある場合にリズム一致と判定するリズム一致判定手段と、
前記リズム一致判定手段によりリズム一致と判定された時間幅を累算したリズム一致期間を、小節長に相当する時間で除算してリズム一致度を算出するリズム一致度算出手段とを備え、
前記分割手段は、
前記リズム一致度算出手段により算出された各比較先小節のリズム一致度の中から閾値以上のリズム一致度が連続する比較先小節の範囲を、リズム一致区間として分割するリズム一致区間分割手段を具備することを特徴とする請求項1記載の楽譜表示装置。 The determination means includes
Each time a step is advanced from the beginning to the end of a measure with a predetermined time width, the comparison original sound that is sounded in the comparison measure and the comparison destination sound that is sounded in the comparison measure during the stepped time width And the difference between the sound generation start time and the mute time between the comparison original sound and the comparison target sound is within the allowable range, and both the comparison original sound and the comparison target sound generated during the stepped time width are Rhythm coincidence determining means for determining a rhythm coincidence when the mute time of the previous sound and the sounding start time of the next sound are within an allowable range for each of the comparison original sound and the comparison target sound that are presently determined and not present When,
A rhythm matching degree calculating means for calculating a rhythm matching degree by dividing a rhythm matching period obtained by accumulating a time width determined to be a rhythm matching by the rhythm matching determination means by a time corresponding to a measure length;
The dividing means includes
Rhythm matching section dividing means for dividing, as a rhythm matching section, a range of comparison destination bars in which a rhythm matching degree equal to or greater than a threshold value is continuous among rhythm matching degrees calculated by the rhythm matching degree calculation means. The musical score display device according to claim 1, wherein:
この判定処理により各比較元小節に対してそれぞれ判定された各比較先小節の一致度の中から閾値以上の一致度が連続する比較先小節の範囲を、楽曲中の1つの区間として分割する分割処理と、A division that divides a range of comparison destination bars in which the degree of coincidence equal to or greater than a threshold value from among the degree of coincidence of each comparison destination bar determined for each comparison source bar by this determination process as one section in the music Processing,
前記記憶手段に記憶される曲データが複数の段から形成される楽譜として表示される場合に、前記曲分割処理により分割された各区間の終わりを、楽譜の各段末尾となるように表示設定する表示設定処理と、When song data stored in the storage means is displayed as a score formed from a plurality of stages, display setting is made so that the end of each section divided by the song division process is the end of each stage of the score Display setting processing to
この表示設定処理にて表示設定された楽譜を表示手段に表示出力する出力処理とAn output process for displaying the score set in the display setting process on the display means;
をコンピュータで実行させることを特徴とする楽譜表示処理プログラム。Is executed by a computer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006339014A JP4678365B2 (en) | 2006-12-15 | 2006-12-15 | Music score display apparatus and music score display processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006339014A JP4678365B2 (en) | 2006-12-15 | 2006-12-15 | Music score display apparatus and music score display processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008151966A JP2008151966A (en) | 2008-07-03 |
JP4678365B2 true JP4678365B2 (en) | 2011-04-27 |
Family
ID=39654209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006339014A Expired - Fee Related JP4678365B2 (en) | 2006-12-15 | 2006-12-15 | Music score display apparatus and music score display processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4678365B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5313196B2 (en) * | 2010-03-12 | 2013-10-09 | 株式会社エクシング | Difficulty level calculation device, difficulty level calculation method, and computer program |
CN115394317A (en) * | 2022-08-24 | 2022-11-25 | 广州趣丸网络科技有限公司 | Audio evaluation method and device |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001100740A (en) * | 1999-07-28 | 2001-04-13 | Yamaha Corp | Musical score information generating device and musical score information display device and storage medium |
JP2003186466A (en) * | 2001-12-20 | 2003-07-04 | Yamaha Corp | Musical score generation processor and program |
JP2003288075A (en) * | 2002-03-27 | 2003-10-10 | Ricoh Co Ltd | Music edition system |
JP2005148563A (en) * | 2003-11-18 | 2005-06-09 | Yamaha Corp | Musical score display device and program for realizing musical score display method |
JP2005249844A (en) * | 2004-03-01 | 2005-09-15 | Kawai Musical Instr Mfg Co Ltd | Device and program for performance indication |
JP2006085090A (en) * | 2004-09-17 | 2006-03-30 | Casio Comput Co Ltd | Music structure analyzing device and program |
JP2006101362A (en) * | 2004-09-30 | 2006-04-13 | Matsushita Electric Ind Co Ltd | Motion picture generating apparatus and method thereof |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3307156B2 (en) * | 1995-04-24 | 2002-07-24 | ヤマハ株式会社 | Music information analyzer |
JP3329242B2 (en) * | 1997-10-22 | 2002-09-30 | ヤマハ株式会社 | Performance data analyzer and medium recording performance data analysis program |
-
2006
- 2006-12-15 JP JP2006339014A patent/JP4678365B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001100740A (en) * | 1999-07-28 | 2001-04-13 | Yamaha Corp | Musical score information generating device and musical score information display device and storage medium |
JP2003186466A (en) * | 2001-12-20 | 2003-07-04 | Yamaha Corp | Musical score generation processor and program |
JP2003288075A (en) * | 2002-03-27 | 2003-10-10 | Ricoh Co Ltd | Music edition system |
JP2005148563A (en) * | 2003-11-18 | 2005-06-09 | Yamaha Corp | Musical score display device and program for realizing musical score display method |
JP2005249844A (en) * | 2004-03-01 | 2005-09-15 | Kawai Musical Instr Mfg Co Ltd | Device and program for performance indication |
JP2006085090A (en) * | 2004-09-17 | 2006-03-30 | Casio Comput Co Ltd | Music structure analyzing device and program |
JP2006101362A (en) * | 2004-09-30 | 2006-04-13 | Matsushita Electric Ind Co Ltd | Motion picture generating apparatus and method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP2008151966A (en) | 2008-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103594075B (en) | Music information display control method and music information display control apparatus | |
JP2008233542A (en) | Device, method and program for prosody correcting | |
JP4678365B2 (en) | Music score display apparatus and music score display processing program | |
JP2008052628A (en) | Animation data-generating device and animation data-generating program | |
JP2003295880A (en) | Speech synthesis system for connecting sound-recorded speech and synthesized speech together | |
JPH09212480A (en) | Atmosphere information generating device and karaoke device | |
JP4748395B2 (en) | Music structure analysis apparatus and music structure analysis processing program | |
JP2011138153A (en) | Musical piece structure analyzing device and musical piece structure analysis processing program | |
JP2008039833A (en) | Voice evaluation apparatus | |
JP2001306087A (en) | Device, method, and recording medium for voice database generation | |
JP4301125B2 (en) | Fingering information generation device and program | |
JP4301126B2 (en) | Fingering information generation device and program | |
JP4482880B2 (en) | Fingering information generation apparatus and fingering information generation processing program | |
CN113711302A (en) | Audio information playback method and apparatus, audio information generation method and apparatus, and program | |
JP4508218B2 (en) | Fingering information generation apparatus and fingering information generation processing program | |
JP3645364B2 (en) | Frequency detector | |
JP4189605B2 (en) | Fingering information generation apparatus and fingering information generation processing program | |
JP2007171672A (en) | Musical score display device and musical score display program | |
JPH07334075A (en) | Presentation supporting device | |
JP2008009448A (en) | Musical score display device and musical score display program | |
JP3567548B2 (en) | Performance information editing device | |
JP4509298B2 (en) | Music score display device | |
JP2007178640A (en) | Musical score display device and musical score display program | |
JP4547719B2 (en) | Music score display device and music score display program | |
JP2006085090A (en) | Music structure analyzing device and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090527 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100930 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101111 |
|
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: 20110105 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4678365 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |