JP5808711B2 - Performance position detector - Google Patents
Performance position detector Download PDFInfo
- Publication number
- JP5808711B2 JP5808711B2 JP2012110789A JP2012110789A JP5808711B2 JP 5808711 B2 JP5808711 B2 JP 5808711B2 JP 2012110789 A JP2012110789 A JP 2012110789A JP 2012110789 A JP2012110789 A JP 2012110789A JP 5808711 B2 JP5808711 B2 JP 5808711B2
- Authority
- JP
- Japan
- Prior art keywords
- performance
- array
- scales
- score
- performance position
- 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
Description
本発明は、演奏位置検出装置に関し、さらに詳しくは、ユーザが楽曲を演奏するときの楽譜上の演奏位置を検出する演奏位置検出装置に関する。 The present invention relates to a performance position detection apparatus, and more particularly to a performance position detection apparatus that detects a performance position on a musical score when a user plays a musical piece.
近年、楽譜を電子化した電子楽譜が普及している。電子楽譜は、紙に印刷される楽譜を、単に電子ファイル化したデータである。このため、ユーザは、電子楽譜を利用する場合、電子楽譜を印刷し、印刷された電子楽譜を見ながら楽曲を演奏しなければならない。 In recent years, electronic musical scores obtained by digitizing musical scores have become widespread. An electronic score is data obtained by simply converting a score printed on paper into an electronic file. For this reason, when using an electronic score, the user must print the electronic score and play the music while viewing the printed electronic score.
これに対して、楽譜の画像をモニタに表示し、ユーザの演奏に合わせてモニタに表示される楽譜のページを変更する技術が提案されている。たとえば、特許文献1には、ユーザによる楽曲の演奏に合わせて、楽曲の演奏位置を、表示された楽譜上に示す楽譜表示装置が開示されている。
On the other hand, a technique has been proposed in which an image of a score is displayed on a monitor and a score page displayed on the monitor is changed in accordance with the performance of the user. For example,
特許文献1において、楽譜表示装置は、楽曲の音符を表わす音符データ列の中から、入力された音高データに一致する音符データを候補として検出する。楽譜表示装置は、音符データ列を参照して、検出された候補の次の音符データを予測する。楽譜表示装置は、予測した音高データが次に入力される音高データと一致するか否かを判定する。楽譜表示装置は、音高データに連続して一致する音符データの数が所定値以上である候補を、演奏位置として決定する。
In
しかし、ユーザが、演奏ミスにより、楽譜の通りに楽曲を演奏しなかった場合、上記の楽譜表示装置は、演奏位置の特定に時間を要するおそれがある。楽譜表示装置は、音符データ列の中から、演奏ミスに基づく音高データに一致する位置を候補として検出する。この結果、音符データに連続して一致する音高データの数が所定値以上に達するまでに時間を要する。 However, if the user does not play the music according to the score due to a performance mistake, the score display apparatus may take time to specify the performance position. The musical score display apparatus detects a position that matches the pitch data based on the performance error as a candidate from the note data string. As a result, it takes time until the number of pitch data continuously matching the note data reaches a predetermined value or more.
本発明の目的は、ユーザが演奏ミスをしても、演奏位置を速やかに特定できる演奏位置検出装置を提供することである。 The objective of this invention is providing the performance position detection apparatus which can pinpoint a performance position rapidly, even if a user makes a performance mistake.
本発明による演奏位置検出装置は、楽曲の楽譜に記述される音符が記録された楽譜データに基づいて、ユーザが楽曲を演奏するときの楽譜上の演奏位置を検出する。演奏位置検出装置は、記憶部と、音階特定部と、配列作成部と、選択部と、尤度算出部と、演奏位置決定部とを備える。記憶部は、演奏順に配列された音符の音階を含む楽譜配列を記憶する。音階特定部は、ユーザによる楽曲の演奏音を含む音響信号を入力し、1つ以上の音階を入力された音響信号から特定する。配列作成部は、時系列に配列された1つ以上の音階を含む演奏配列を作成する。選択部は、各々が、演奏配列に含まれる音階の数と同じ数の音階を含み、楽譜配列上の位置が互いに異なる複数の参照配列を楽譜配列の中から選択する。尤度算出部は、演奏配列が選択された各参照配列であろう尤度を参照配列ごとに算出する。演奏位置決定部は、選択された各参照配列の中から最尤度を有する参照配列を特定し、最尤度を有する参照配列の最後の音階の位置を演奏位置として決定する。 The performance position detection apparatus according to the present invention detects a performance position on a musical score when a user plays a musical composition based on musical score data in which notes described in the musical score are recorded. The performance position detection device includes a storage unit, a scale specifying unit, an array creation unit, a selection unit, a likelihood calculation unit, and a performance position determination unit. The storage unit stores a musical score arrangement including musical note scales arranged in order of performance. The scale specifying unit inputs an acoustic signal including the performance sound of the music by the user, and specifies one or more scales from the input acoustic signal. The arrangement creating unit creates a performance arrangement including one or more scales arranged in time series. The selection unit selects a plurality of reference arrays, each including the same number of scales as the number of scales included in the performance array, and having different positions on the score array from the score array. The likelihood calculating unit calculates the likelihood for each reference sequence that will be each reference sequence for which the performance sequence is selected. The performance position determination unit identifies the reference sequence having the maximum likelihood from among the selected reference sequences, and determines the position of the last scale of the reference sequence having the maximum likelihood as the performance position.
本発明によれば、演奏位置が、演奏配列が参照配列であろう尤度に基づいて決定される。これにより、演奏配列がユーザの演奏ミスに伴う音階を含む場合であっても、計算量が増加することがないため、速やかに演奏位置を決定することができる。 According to the present invention, the performance position is determined based on the likelihood that the performance array will be the reference array. As a result, even if the performance array includes a scale associated with a user's performance mistake, the calculation amount does not increase, so that the performance position can be determined quickly.
好ましくは、演奏位置決定部は、直前の演奏位置よりも時間方向で後ろに位置する最後の音階の位置を、演奏位置として決定する。 Preferably, the performance position determination unit determines the position of the last scale located behind the previous performance position in the time direction as the performance position.
本発明によれば、直前の演奏位置よりも前の音階の位置が、新たな演奏位置として決定されない。したがって、ユーザが実際に演奏している音階の位置と無関係の位置を、演奏位置として誤って決定することを防ぐことができる。 According to the present invention, the position of the scale before the previous performance position is not determined as a new performance position. Therefore, it is possible to prevent a position unrelated to the position of the scale where the user is actually playing from being erroneously determined as the performance position.
好ましくは、演奏位置検出装置は、最尤度を有する参照配列として複数の候補配列を特定した場合、各候補配列の最後の音階の位置のうち、直前の演奏位置に最も近い最後の音階の位置を演奏位置として決定する。 Preferably, when the performance position detection device identifies a plurality of candidate sequences as the reference sequence having the maximum likelihood, the position of the last scale closest to the immediately preceding performance position among the positions of the last scale of each candidate array Is determined as the performance position.
本発明によれば、複数の候補配列の最後の音階の位置のうち、直前の演奏位置に最も近い最後の音階の位置が演奏位置として決定される。したがって、ユーザが実際に演奏している音階の位置と無関係の位置を、演奏位置として誤って決定することを防ぐことができる。 According to the present invention, the position of the last musical scale closest to the previous performance position among the positions of the last musical scale of the plurality of candidate sequences is determined as the performance position. Therefore, it is possible to prevent a position unrelated to the position of the scale where the user is actually playing from being erroneously determined as the performance position.
好ましくは、演奏位置決定部は、直前の演奏位置を基準にして所定範囲内に位置する最後の音階の位置を、演奏位置として決定する。 Preferably, the performance position determination unit determines the position of the last musical scale located within a predetermined range with reference to the previous performance position as the performance position.
本発明によれば、直前の演奏位置と大きく離れている音階の位置は、演奏位置として決定されない。したがって、ユーザが実際に演奏している音階の位置と無関係の位置を、演奏位置として誤って決定することを防ぐことができる。 According to the present invention, the position of the scale that is far from the previous performance position is not determined as the performance position. Therefore, it is possible to prevent a position unrelated to the position of the scale where the user is actually playing from being erroneously determined as the performance position.
好ましくは、演奏位置決定部は、最後の音階が所定範囲の外に位置する場合、演奏位置を決定できないと判定する。演奏位置検出装置は、さらに、カウント部と、配列初期化部とを備える。カウント部は、演奏位置決定部が演奏位置を決定できないと判定した場合、演奏位置が更新されないことを示す更新停止回数をカウントする。配列初期化部は、カウント部によりカウントされた更新停止回数がしきい値を超えた場合、演奏配列を初期化する。 Preferably, the performance position determination unit determines that the performance position cannot be determined when the last scale is outside the predetermined range. The performance position detection apparatus further includes a count unit and an array initialization unit. When the performance position determination unit determines that the performance position cannot be determined, the count unit counts the number of times of updating stop indicating that the performance position is not updated. The sequence initialization unit initializes the performance sequence when the number of update stops counted by the count unit exceeds a threshold value.
演奏位置検出装置は、更新停止回数がしきい値を超えた場合、演奏配列を初期化して、演奏位置の決定を最初からやり直す。したがって、ユーザが演奏をミスして演奏を停止した後に演奏を再開したとしても、演奏位置検出装置は、演奏が再開された位置を速やかに検出することができる。 When the number of renewal stops exceeds a threshold value, the performance position detection device initializes the performance array, and determines the performance position from the beginning. Therefore, even if the user misses the performance and stops the performance and then resumes the performance, the performance position detection device can quickly detect the position where the performance has been resumed.
好ましくは、配列作成部は、配列初期化部により演奏配列が初期化された場合、演奏配列を新たに作成する。演奏位置決定部は、直前の演奏位置よりも時間方向で所定数前に位置する音階の位置を演奏位置に決定する。 Preferably, the array creation unit creates a new performance array when the performance array is initialized by the array initialization unit. The performance position determination unit determines the position of the scale located a predetermined number of times before the previous performance position as the performance position.
本発明によれば、演奏配列が初期化された場合、演奏位置が、直前の演奏位置よりも時間方向で所定数前に位置する音階の位置に変更される。これにより、ユーザが、演奏を停止した後に、停止位置よりも前の位置から演奏を再開したとしても、演奏位置を速やかに決定することができる。 According to the present invention, when the performance arrangement is initialized, the performance position is changed to a musical scale position that is located a predetermined number of times before the previous performance position. Thereby, even if a user restarts a performance from the position before a stop position after stopping a performance, a performance position can be determined rapidly.
好ましくは、配列作成部は、追加部と、置換部とを備える。追加部は、音階特定部が1つ以上の音階を特定した場合、特定された1つ以上の音階を演奏配列に追加する。置換部は、演奏配列に含まれる音階のうち、追加部により追加される1つ以上の音階以外の過去の音階を、過去の音階に対応する楽譜配列の音階に置換する。 Preferably, the sequence creation unit includes an addition unit and a replacement unit. When the scale specifying unit specifies one or more scales, the adding unit adds the specified one or more scales to the performance array. The replacement unit replaces past musical scales other than the one or more musical scales added by the adding unit among musical scales included in the performance arrangement, with musical scale arrangements corresponding to the past musical scales.
本発明によれば、演奏ミスによる過去の音階が、演奏配列に含まれる場合であっても、演奏ミスによる過去の音階が楽譜配列に対応する音階に訂正される。これにより、実際の演奏位置と異なる位置を、演奏位置として誤って検出することを防ぐことができる。 According to the present invention, even if a past musical scale due to a performance mistake is included in the performance arrangement, the past musical scale due to the performance mistake is corrected to a musical scale corresponding to the score arrangement. Thereby, it is possible to prevent a position different from the actual performance position from being erroneously detected as the performance position.
好ましくは、楽譜配列は、和音を構成する複数の音階を含む。音階特定部は、和音を構成する複数の音階を音響信号から特定する。配列作成部は、音階特定部により特定された複数の音階を含む演奏配列を作成する。 Preferably, the musical score arrangement includes a plurality of scales constituting a chord. The scale specifying unit specifies a plurality of scales constituting the chord from the acoustic signal. The sequence creation unit creates a performance sequence including a plurality of scales specified by the scale specification unit.
本発明によれば、ユーザが、和音を含む楽譜を用いて、楽曲を演奏する時であっても、演奏された和音の音階を特定し、特定された和音の音階に基づいて演奏位置を決定することができる。 According to the present invention, even when the user plays a musical piece using a score including chords, the scale of the played chord is specified, and the performance position is determined based on the specified scale of the chord. can do.
本発明による演奏位置検出プログラムは、本発明による演奏位置検出装置に用いられる。 The performance position detection program according to the present invention is used in the performance position detection apparatus according to the present invention.
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In the drawings, the same or corresponding parts are denoted by the same reference numerals and description thereof will not be repeated.
{演奏位置検出装置の構成}
図1は、本発明の実施の形態による演奏位置検出装置1の構成を示す機能ブロック図である。図1を参照して、演奏位置検出装置1は、楽曲の楽譜に記述される音符が記録された楽譜画像データ7をタッチパネル13に表示する。演奏位置検出装置1は、楽譜配列4に基づいて、ユーザが楽曲を演奏するときの楽譜上の演奏位置を検出する。検出された演奏位置は、タッチパネル13に表示されている楽譜画像データ7上に示される。
{Configuration of performance position detection device}
FIG. 1 is a functional block diagram showing a configuration of a performance
演奏位置検出装置1は、タブレット型端末である。タブレット型端末は、演奏位置検出プログラム2がインストールされることにより、演奏位置検出装置1として動作する。
The performance
演奏位置検出装置1は、CPU(Central Processing Unit)11と、RAM(Random Access Memory)12と、タッチパネル13と、操作ボタン14と、マイク15と、フラッシュメモリ16とを備える。
The performance
CPU11は、フラッシュメモリ16に格納されたプログラムを実行する。RAM12は、演奏位置検出装置1のメインメモリである。CPU11は、プログラムをRAM12にロードし、ロードされたプログラムを実行して演奏位置検出装置1を制御する。
The
タッチパネル13は、プログラムの実行結果を表示するとともに、ユーザによりタッチされた位置を操作情報としてCPU11に出力する。操作ボタン14は、電源ボタン、音量調節ボタンなどのハードウェアキーである。マイク15は、ユーザにより演奏された楽曲の演奏音を、音響信号として入力する。
The
フラッシュメモリ16は、書き換え可能な不揮発性の半導体メモリである。フラッシュメモリ16は、演奏位置検出プログラム2と、楽譜データ3と、参照配列5と、演奏配列6とを記憶する。
The
楽譜データ3は、楽譜配列4と、楽譜画像データ7とを含む。楽譜画像データ7は、楽曲の楽譜に記述される音符が演奏順に記録された画像データであり、複数のページにより構成される。なお、楽譜データ3は、楽譜画像データ7に代えて、音符などの演奏記号がMIDI(Musical Instrument Digital Interface)により記述されたMIDIデータを含んでもよい。楽譜データ3がMIDIデータを含む場合、演奏位置検出装置1は、MIDIデータに基づいて、楽譜画像データ7を作成する。あるいは、楽譜データ3は、音符などの演奏記号がMIDIにより記述されたMIDIデータであってもよい。この場合、楽譜データ3は、たとえば、MusicXML(Extensible Markup Language)形式で記述される。演奏位置検出装置1は、MusicXML形式の楽譜データ3を解析して、楽譜画像データ7と、演奏配列6とを作成する。
The
楽譜配列4は、楽譜に記述される音符の音階が演奏順に配列されたデータである。参照配列5は、楽譜配列4の中から選択された所定長の音階の配列である。演奏配列6は、ユーザによる楽曲の演奏音の音階を時系列に配列したデータである。楽譜配列4、参照配列5及び演奏配列6の詳細は、後述する。
The
{演奏位置検出装置1の動作の概略と各種配列の構造}
演奏位置検出装置1は、楽譜画像データ7をタッチパネル13に表示する。ユーザは、タッチパネル13に表示された楽譜画像データ7を見ながら、楽曲を演奏する。
{Outline of operation of performance
The performance
図2は、楽譜画像データ7を示す図である。図2を参照して、楽譜画像データ7は、高音パートの楽譜31と、低音パートの楽譜32とを含む。楽譜画像データ7の領域3aには、音符312,322が記述されている。音符312,322は、和音を構成する。同様に、領域3bに記述された音符316,326は、和音を構成する。楽譜31に記述された音符311,313〜315,317〜319は、和音を構成しない。
FIG. 2 shows the
楽譜配列4は、楽譜31,32に記述された音符の音階を含み、音符の音階は、演奏順に配列される。図3は、楽譜配列4を示す図である。図3を参照して、楽譜配列4において、位置番号は、楽譜画像データ7の音符の位置を特定するためのパラメータであり、楽譜31,32の先頭から音符をカウントしたときの各音符のカウント値に相当する。つまり、大きい位置番号は、時間方向で後ろに位置する音符に対応し、小さい位置番号は、時間方向で前に位置する音符に対応する。
The
楽譜配列4は、楽譜高音パート41と、楽譜低音パート42とを含む。楽譜高音パート41には、楽譜31に記述される音符のMIDI音階が、演奏順に配列されている。MIDI音階は、MIDI規格に基づいて定められた音階の数値である。楽譜低音パート42には、楽譜32に記述される音符のMIDI音階が演奏順に記録される。
The
たとえば、楽譜配列4において、位置番号「1」の音階は、楽譜31の先頭に位置する音符311の音階を示す。音符311の音階が「ソ」である。楽譜高音パート41の位置番号「1」の欄には、「ソ」に対応するMIDI音階「65」が記述される。楽譜32には、音符311に対応する音符が記述されていないため、楽譜低音パート42の位置番号「1」の欄には、MIDI音階「0」が記述される。
For example, in the
楽譜配列4の位置番号「2」は、領域3aに対応する。このため、位置番号「2」の欄には、和音を構成する複数の音階が記述される。具体的には、楽譜高音パート41の位置番号「2」の欄には、MIDI音階「67」が、音符312の音階として記述される。楽譜低音パート42の位置番号「2」の欄には、MIDI音階「53」が、音符322の音階として記述される。つまり、楽譜配列4において、和音を構成する音階の数は、最大で2である。
The position number “2” of the
上述のように、ユーザは、タッチパネル13に表示された楽譜画像データ7を見ながら、楽曲を演奏する。演奏位置検出装置1は、ユーザによる楽曲の演奏音を含む音響信号をマイク15から入力し、1つ以上の音階をマイク15から入力された音響信号から特定する。演奏位置検出装置1は、時系列に配列された1つ以上の音階を含む演奏配列6を作成する。
As described above, the user plays the music while viewing the
図4は、演奏配列6の一例を示す図である。図4を参照して、演奏配列6は、音響信号から特定された1つ以上の音階を含み、演奏配列6に含まれる1つ以上の音階は、時系列に配列される。演奏配列6の構成は、楽譜配列4と同様に、演奏高音パート61と、演奏低音パート62とを含む。演奏配列6に含まれる音階の最大数(以下、「配列最大値」と呼ぶ。)は、4である。ここで、和音は、1つの音階としてカウントされる。演奏配列6は、ユーザによる楽曲の演奏音の音階が特定されるたびに更新される。
FIG. 4 is a diagram showing an example of the
ユーザが、「ソ」,「シ」,「シ」,「ミ」の順に演奏することにより、MIDI音階「65」,「67」,「67」,「70」が、演奏高音パート61に記述される。演奏低音パート62の2番目には、MIDI音階「53」が記述されている。つまり、ユーザは、2番目の音を、和音として演奏している。 When the user performs “So”, “Shi”, “Shi”, “Mi” in this order, MIDI scales “65”, “67”, “67”, “70” are described in the performance treble part 61. Is done. The second musical performance bass part 62 describes the MIDI scale “53”. That is, the user plays the second sound as a chord.
演奏位置検出装置1は、楽譜配列4の中から、演奏配列6と同じ配列を検索する。具体的には、演奏位置検出装置1は、楽譜配列4の中から、複数の参照配列5を選択する。参照配列5は、演奏配列6に含まれる音階の数と同じ数の音階を含む。複数の参照配列5は、楽譜配列4上の位置が互いに異なる。
The performance
図3を参照して、参照配列51は、楽譜配列4の音階のうち、位置番号が「1」〜「4」の音階である。参照配列52は、楽譜配列4の音階のうち、位置番号が「2」〜「5」の音階である。このように、演奏位置検出装置1は、先頭の音階の位置を1つずつずらすことにより、複数の参照配列5を選択する。
Referring to FIG. 3, the
演奏位置検出装置1は、演奏配列6を、選択された各参照配列5と比較することにより、演奏配列6が各参照配列5であろう尤度を、参照配列5ごとに算出する。尤度の算出方法の詳細は、後述する。
The performance
演奏位置検出装置1は、各参照配列5の尤度の中から、最尤度を有する参照配列5を特定し、特定された参照配列5の最後の音階の位置を演奏位置として決定する。たとえば、参照配列53が最尤度を有すると仮定した場合、演奏位置検出装置1は、参照配列53の最後の音階の位置(位置番号「8」)を、演奏位置として決定する。
The performance
演奏位置検出装置1は、タッチパネル13に表示された楽譜画像データ7において、位置番号「8」に対応する音符318をハッチングで囲む。これにより、ユーザは、音符318を演奏したことを認識できる。図2では、演奏位置の音符をハッチングで囲む例を示しているが、これに限られない。ユーザが現在の演奏位置を、タッチパネル13に表示された楽譜上で把握することができれば、いかなる表示方法を用いてもよい。
The performance
このように、演奏位置検出装置1は、演奏配列6が参照配列5であろう尤度を参照配列5ごとに算出し、最尤度を有する参照配列5の最後の音階の位置を、演奏位置として決定する。演奏配列6が、演奏ミスによる音階を含む場合であっても、演奏位置検出装置1は、計算量を増大させることなく、演奏位置を速やかに特定することができる。
As described above, the performance
{演奏位置検出プログラム2の詳細}
以下、演奏位置検出プログラム2を実行するときの演奏位置検出装置1の動作を詳細に説明する。
{Details of performance position detection program 2}
Hereinafter, the operation of the performance
図5は、演奏位置検出プログラム2のフローチャートである。図5を参照して、演奏位置検出装置1は、初期化を実行する(ステップS1)。ステップS1において、演奏位置検出装置1は、演奏位置を「0」に設定し、演奏配列6に記録されている音階を全て「0」に設定する。タッチパネル13には、楽譜画像データ7の先頭ページが表示される。
FIG. 5 is a flowchart of the performance
演奏位置検出装置1は、演奏位置検出プログラム2を終了するか否かを判定する(ステップS2)。具体的には、演奏位置検出装置1は、演奏位置が楽譜配列4の終端の位置番号に一致する場合(ステップS2においてYes)、ユーザによる楽曲の演奏が終了したと判定して、図5に示す処理を終了する。
The performance
一方、演奏位置検出装置1は、演奏位置が楽譜配列4の終端の位置番号に一致しない場合(ステップS2においてNo)、ユーザによる演奏が終了していないと判定して、ステップS3〜S10を実行する。
On the other hand, if the performance position does not match the position number at the end of the musical score array 4 (No in step S2), the performance
演奏位置検出装置1は、音響信号を入力し、ユーザによる楽曲の演奏音の音階を、入力された音響信号から特定する(ステップS3)。演奏位置検出装置1は、特定された音階を時系列に配列して、演奏配列6を作成する(ステップS4)。
The performance
ユーザが演奏を始めたときには、ステップS3により特定された音階の数が、配列最大値に満たない場合がある。この場合、演奏位置検出装置1は、ステップS3により特定された音階を演奏配列6に順次追加する。一方、演奏配列6に記録されている音階の数が配列最大値に達している場合、演奏位置検出装置1は、演奏配列6の音階のうち、最初に追加された音階を演奏配列6から削除し、新たに特定された音階を演奏配列6に追加する。
When the user starts playing, the number of scales specified in step S3 may not reach the array maximum value. In this case, the performance
演奏配列6に記録されている音階の数が開始基準値よりも小さい場合(ステップS5においてNo)、演奏位置検出装置1は、演奏位置を決定することなく、ステップS2に戻る。開始基準値として、配列最大値を用いることができる。開始基準値として、配列最大値よりも小さい値を用いることにより、ユーザが演奏を開始したときに、演奏位置を速やかに決定できるようにしてもよい。たとえば、開始基準値として、配列最大値の2分の1を用いることができる。
If the number of scales recorded in the
一方、演奏配列6に記録されている音階の数が開始基準値以上である場合(ステップS5においてYes)、演奏位置検出装置1は、演奏位置の決定が可能であると判断し、楽譜配列4の中から、複数の参照配列5を選択する(ステップS6)。上述のように、演奏位置検出装置1は、参照配列5の先頭の番号を1つずつずらすことにより、複数の参照配列5を選択する。したがって、選択される参照配列5の数は、楽譜配列4に含まれる音階の数に応じて変化する。
On the other hand, if the number of scales recorded in the
演奏位置検出装置1は、演奏配列6が参照配列5であろう尤度を算出する(ステップS7)。尤度は、参照配列5ごとに算出される。演奏位置検出装置1は、最尤度を有する参照配列5に基づいて、演奏位置を決定する(ステップS8)。演奏位置検出装置1は、最尤度を有する参照配列5を抽出し、抽出された参照配列5の最後の音階の位置番号を、演奏位置の候補位置として特定する。これは、最尤度を有する参照配列5の数が1つとは限らないためである。演奏位置検出装置1は、所定の条件を満たす候補位置を、演奏位置として決定する。演奏位置の決定の詳細は、後述する。
The performance
演奏位置検出装置1は、演奏位置の決定結果に基づいて、演奏位置の検出状態を判定する(ステップS9)。具体的には、演奏位置検出装置1は、演奏位置の更新停止が継続しているか否かを判定する(ステップS9)。演奏位置検出装置1は、演奏位置を継続して決定できない回数(更新停止回数)が初期化基準値以上である場合、更新停止回数が初期化基準値以上である場合、演奏位置検出装置1は、ユーザが楽譜通りに演奏していないと判定する。この場合、演奏位置検出装置1は、現在の演奏配列6に基づいて演奏位置を決定できる可能性が低いと判断して、演奏配列6を初期化する。
The performance
演奏位置検出装置1は、更新された演奏位置に基づいて、タッチパネル13に表示されている楽譜画像データ7上の演奏位置を更新する(ステップS10)。
The performance
以下、演奏位置検出プログラム2のそれぞれの処理を詳しく説明する。
Hereinafter, each process of the performance
{音階特定処理(ステップS3)}
図6Aは、マイク15に入力される音響信号の一例を示す図である。図6Aを参照して、期間15a〜15dは、ユーザが楽器を演奏した期間を示しており、音響信号の振幅が大きく変動する。その他の期間における音響信号の変動は、ノイズ成分を示す。
{Musical scale identification process (step S3)}
FIG. 6A is a diagram illustrating an example of an acoustic signal input to the
演奏位置検出装置1は、図6Aに示す音響信号から、音階を特定する。具体的には、演奏位置検出装置1は、図6Aに示す音響信号に対して、ピークフィルタをかける。これにより、図6Bに示すように、ノイズ成分が抑制された音響信号が生成される。ピークフィルタは、マイク15に入力された音響信号から、所定幅以上で変動する音響信号を抽出する処理である。
The performance
演奏位置検出装置1は、ピークフィルタをかけた音響信号のうち、振幅が変動している期間を、高速フーリエ変換をかける対象として設定する。すなわち、図6Bに示す音響信号のうち、期間15a〜15dの音響信号が、高速フーリエ変換をかける期間(サンプリング期間)として設定される。ここで、図6Bに示す音響信号16aが、サンプリング期間に設定されたと仮定する。演奏位置検出装置1は、音響信号16aに対して高速フーリエ変換を行うことにより、図6Cに示すスペクトルを生成する。
The performance
図6Dは、図6Cに示すスペクトルから、MIDI音階を特定するまでの処理を示す図である。図6C及び図6Dを参照して、演奏位置検出装置1は、スペクトルからピークを有する周波数を抽出し、抽出された周波数を振幅の大きい順にソートする。すなわち、周波数は、466Hz,415Hz,470Hz,・・・の順にソートされる。楽譜配列4において、和音を構成する音階の数の最大値が2であるため、演奏位置検出装置1は、ソートされた周波数のうち、基準振幅を超える上位2つの周波数を選択する。演奏位置検出装置1は、予め定められているMIDI音階と周波数との関係に基づいて、選択された周波数をMIDI音階に変換する。このようにして、音響信号からMIDI音階が特定される。
FIG. 6D is a diagram showing processing from the spectrum shown in FIG. 6C until the MIDI scale is specified. With reference to FIG. 6C and FIG. 6D, the performance
周波数466Hz,415Hzの振幅が基準振幅よりも大きい場合、演奏位置検出装置1は、周波数466Hz,415Hzの両者を選択する。周波数466Hzは、MIDI音階「70」に変換され、周波数415Hzは、MIDI音階「68」に変換される。
When the amplitudes of the frequencies 466 Hz and 415 Hz are larger than the reference amplitude, the performance
周波数415Hzの振幅が基準振幅よりも大きく、周波数466Hzの振幅が基準振幅よりも小さい場合、演奏位置検出装置1は、周波数415Hzのみを選択する。周波数415HzがMIDI音階「68」に変換される。この場合、音階特定処理(ステップS3)によって特定される音階の数は、1つである。
When the amplitude of the frequency 415 Hz is larger than the reference amplitude and the amplitude of the frequency 466 Hz is smaller than the reference amplitude, the performance
{演奏配列作成処理(ステップS4)}
演奏位置検出装置1は、MIDI音階が音階特定処理(ステップS3)により特定された後に、演奏配列作成処理(ステップS4)を実行する。
{Performance array creation processing (step S4)}
The performance
図7は、演奏配列作成処理(ステップS4)のフローチャートである。図7を参照して、演奏位置検出装置1は、演奏配列6に含まれる音階の数が、配列最大値に等しいか否かを確認する(ステップS41)。
FIG. 7 is a flowchart of the performance array creation process (step S4). Referring to FIG. 7, performance
音階の数が配列最大値よりも小さい場合(ステップS41においてNo)、演奏位置検出装置1は、演奏配列6における最後の音階の後ろに、ステップS3により特定されたMIDI音階を追加し(ステップS42)、図7に示す処理を終了する。
When the number of scales is smaller than the maximum arrangement value (No in step S41), the performance
具体的には、特定されたMIDI音階のうち、高い方のMIDI音階が、演奏高音パート61に追加され、低い方のMIDI音階が、演奏低音パート62に追加される。特定されたMIDI音階の数が1つである場合、特定されたMIDI音階は、演奏高音パート62に追加される。演奏低音パート62には、「0」が追加される。 Specifically, among the specified MIDI scales, the higher MIDI scale is added to the performance treble part 61, and the lower MIDI scale is added to the performance bass part 62. If the number of specified MIDI scales is one, the specified MIDI scale is added to the performance treble part 62. “0” is added to the performance bass part 62.
一方、音階の数が配列最大値に等しい場合(ステップS41においてYes)、演奏位置検出装置1は、ステップS43〜S45を実行して、演奏配列6を更新する。図7及び図8を参照しながら、ステップS43〜S45を詳しく説明する。
On the other hand, when the number of scales is equal to the array maximum value (Yes in step S41), the performance
図8は、演奏配列6が配列最大値の音階を含む場合における演奏配列6の変化を示す図である。図8において、楽譜配列4及び演奏配列6の音階を丸で示し、高音パート及び低音パートの表示を省略する。配列最大値が4であると仮定する。
FIG. 8 is a diagram showing a change in the
演奏位置検出装置1は、更新前の演奏配列6から、先頭のMIDI音階6aを削除する(ステップS43)。演奏配列6のMIDI音階6b〜6dの要素番号が、1つずつ繰り上がる。演奏位置検出装置1は、新たに特定されたMIDI音階6eを、MIDI音階6aが削除された演奏配列6に追加する(ステップS44)。MIDI音階6eの要素番号は、4である。このようにして、演奏配列6が更新される。
The performance
演奏位置検出装置1は、MIDI音階6b〜6eのうち、MIDI音階6e以外の過去の音階(MIDI音階6b〜6d)を、MIDI音階6b〜6dに対応する楽譜配列4の音階に置換する(ステップS45)。
The performance
ステップS45を実行する際には、演奏位置は既に決定されているため、MIDI音階6b〜6dに対応する楽譜配列4の音階を特定することが可能である。演奏位置が既に決定されている理由を説明する。演奏配列6に含まれるMIDI音階の数が開始基準値以上のときに(ステップS5においてYes)、演奏位置決定処理(ステップS9)が実行される。したがって、演奏配列6に含まれるMIDI音階の数が配列最大値であれば、演奏位置は、既に決定されている。
When step S45 is executed, since the performance position has already been determined, it is possible to specify the scale of the
更新後の演奏配列6において、MIDI音階6bは、楽譜配列4のMIDI音階4b(位置番号「73」)に対応する。同様に、MIDI音階6c,6dは、楽譜配列4のMIDI音階4c,4d(位置番号「74」,「75」)にそれぞれ対応する。演奏位置検出装置1は、演奏配列6のMIDI音階6b,6c,6dを、楽譜配列4のMIDI音階4b,4c,4dにそれぞれ置換する。ユーザが過去に演奏をミスしたとしても、演奏配列6は、演奏ミスによる演奏音から特定されたMIDI音階を含まない。したがって、演奏位置の決定精度を向上させることができる。
In the
{参照配列選択処理(ステップS6)}
以下、図2を参照して、参照配列選択処理(ステップS6)を具体的に説明する。演奏配列6に含まれる音階の数が4であり、演奏位置決定処理(ステップS9)により決定された直前の演奏位置が位置番号「4」であると仮定する。
{Reference sequence selection process (step S6)}
Hereinafter, the reference sequence selection process (step S6) will be described in detail with reference to FIG. It is assumed that the number of scales included in the
演奏配列6に含まれる音階の数が4であるため、演奏位置検出装置1は、各参照配列5に含まれる音階の数を4に設定する。演奏位置検出装置1は、楽譜配列4の音階のうち、直前の演奏位置(位置番号「4」)よりも後ろに位置する音階の中から、複数の参照配列5を選択する。演奏位置が進むにつれて、ステップS6により選択される参照配列5の数は減少するため、演奏位置を決定する際の計算量を削減することができる。
Since the number of scales included in the
演奏位置検出装置1は、楽譜配列4における音階の位置が互いに異なるように、複数の参照配列5を選択する。演奏位置検出装置1は、最初に、楽譜配列4の位置番号「5」〜「8」の音階を、参照配列53として選択する。次に、楽譜配列4の位置番号「6」〜「9」の音階が、参照配列54として選択される。このように、演奏位置検出装置1は、参照配列5の先頭の音階の位置を1つずつずらすことにより、複数の参照配列5を選択する。
The performance
{尤度算出処理(ステップS7)}
図9は、尤度算出処理(ステップS7)のフローチャートである。図10は、演奏配列6が参照配列55であろう尤度を算出するときの尤度の計算方法を説明する図である。以下、特に説明のない限り、演奏配列6が参照配列55であろう尤度を算出する場合を例にして、尤度算出処理(ステップS7)を説明する。
{Likelihood calculation processing (step S7)}
FIG. 9 is a flowchart of the likelihood calculation process (step S7). FIG. 10 is a diagram for explaining a likelihood calculation method for calculating the likelihood that the
図9及び図10を参照して、演奏位置検出装置1は、ステップS6により選択された複数の参照配列5の中から、参照配列55を選択する(ステップS701)。演奏位置検出装置1は、尤度(L)を0に設定し、演奏配列6の要素番号(S)を1に設定し、演奏配列6に含まれる音階の数(Ns)を4に設定する(ステップS702)。
With reference to FIGS. 9 and 10, the performance
演奏位置検出装置1は、演奏配列6のS番目(1番目)のMIDI音階が、参照配列55の1番目のMIDI音階に一致するか否かを判定する(ステップS703)。具体的には、演奏位置検出装置1は、演奏高音パート61の1番目のMIDI音階が、参照配列55の高音パート551の1番目のMIDI音階に一致することを確認する。参照配列55の低音パート552において、1番目のMIDI音階が0であるため、演奏位置検出装置1は、低音パート同士を比較しない。この結果、演奏位置検出装置1は、演奏配列6の1番目のMIDI音階が、参照配列55の1番目のMIDI音階に一致すると判定する(ステップS703においてYes)。演奏位置検出装置1は、尤度(L)に3を加算する(ステップS704)。尤度(L)は、3となる。
The performance
なお、ステップS703において、演奏位置検出装置1は、低音パート552の1番目のMIDI音階が0であっても、演奏低音パート62の1番目のMIDI音階を低音パート552の1番目のMIDI音階と比較してもよい。
In step S703, the performance
演奏位置検出装置1は、要素番号(S)をインクリメントし(ステップS706)、要素番号(S)が音階の数(Ns)よりも大きいか否かを確認する(ステップS707)。要素番号(S=2)が音階の数(Ns=4)よりも小さいため(ステップS707においてNo)、演奏位置検出装置1は、ステップS703に戻る。以下、S=5となるまで(ステップS707においてYes)、ステップS703〜S706が繰り返される。
The performance
演奏位置検出装置1は、演奏配列6の2番目のMIDI音階が参照配列55の2番目のMIDI音階に一致すると判定する(ステップS703においてYes)。演奏位置検出装置1は、尤度(L)に3を加算する(ステップS704)。尤度(L)は、6となる。
The performance
演奏位置検出装置1は、演奏配列6の3番目のMIDI音階が参照配列55の3番目のMIDI音階に一致しないと判定する(ステップS703においてNo)。演奏高音パート61の3番目のMIDI音階は、高音パート551の3番目のMIDI音階に一致しないためである。この場合、演奏位置検出装置1は、尤度(L)から1を減算する(ステップS705)。尤度(L)は、5となる。
The performance
演奏位置検出装置1は、演奏配列6の4番目のMIDI音階が参照配列55の4番目のMIDI音階に一致すると判定する(ステップS703においてYes)。演奏位置検出装置1は、尤度(L)に3を加算する(ステップS704)。尤度(L)は、8となる。
The performance
要素番号(S)がインクリメントされることにより(ステップS706)、要素番号(S=5)が音階数(Ns=4)よりも大きくなる(ステップS707においてYes)。この場合、演奏位置検出装置1は、参照配列55の尤度(L=8)を保存する(ステップS708)。
As the element number (S) is incremented (step S706), the element number (S = 5) becomes larger than the scale number (Ns = 4) (Yes in step S707). In this case, the performance
演奏位置検出装置1は、全ての参照配列5の尤度を算出したか否かを確認する(ステップS709)。演奏位置検出装置1は、全ての参照配列5の尤度を算出していない場合(ステップS709においてNo)、他の参照配列5を選択するために、ステップS701に戻る。これにより、演奏位置検出装置1は、尤度(L)を参照配列5ごとに算出することができる。
The performance
演奏位置検出装置1は、全ての参照配列5の尤度を算出した場合(ステップS709においてYes)、参照配列5の中から、最尤度を有する参照配列5を抽出する(ステップS710)。最尤度が8である場合、参照配列55が抽出される。尤度(L)が8である参照配列5が他にも存在する場合、複数の参照配列5が、ステップS710で抽出される。
When the performance
演奏位置検出装置1は、抽出された参照配列5の最後の音階の位置を、候補位置としてRAM12に保存する(ステップS711)。参照配列55が抽出されている場合、演奏位置検出装置1は、参照配列55の最後の音階の位置(位置番号「44」)を、候補位置としてRAM12に保存する。
The performance
{演奏位置決定処理(ステップS8)}
図11は、演奏位置決定処理(ステップS8)のフローチャートである。図12は、直前の演奏位置と候補位置との関係を示す図である。図12において、楽譜配列4の音階を丸で示し、音階の具体的な数値の表示を省略する。
{Performance position determination process (step S8)}
FIG. 11 is a flowchart of the performance position determination process (step S8). FIG. 12 is a diagram illustrating the relationship between the immediately preceding performance position and the candidate position. In FIG. 12, the scale of the
図11及び図12を参照して、演奏位置検出装置1は、直前の演奏位置と許容値とを設定する(ステップS801)。直前の演奏位置は、音階特定処理(ステップS3)により音階が特定される前に決定された演奏位置である。直前の演奏位置が、楽譜配列4の位置番号「53」であると仮定する。このため、直前の演奏位置(pos)は、53に設定される。許容値は、候補位置を演奏位置として決定する際に用いられるパラメータである。許容値(P)が、3に設定されると仮定する。
Referring to FIGS. 11 and 12, the performance
ステップS711(図9参照)により、候補位置251〜253が特定されたと仮定する。候補位置251〜253の位置番号が、RAM12に既に保存されている。
It is assumed that candidate positions 251 to 253 have been specified in step S711 (see FIG. 9). The position numbers of the candidate positions 251 to 253 are already stored in the
演奏位置検出装置1は、候補位置251〜253の中から、候補位置251を選択する(ステップS802)。演奏位置検出装置1は、候補位置251が、直前の演奏位置に基づいて設定される許容範囲内に存在するか否かを確認する(ステップS803)。許容範囲は、直前の演奏位置の位置番号「53」よりも大きく、許容値(P=3)を直前の演奏位置(pos=53)に加算した位置番号「56」以下の範囲である。候補位置251の位置番号「55」が許容範囲内に存在するため(ステップS803においてYes)、演奏位置検出装置1は、候補位置251の位置番号「55」を継続してRAM12に保存する(ステップS804)。
The performance
演奏位置検出装置1は、全ての候補位置を選択してないため(ステップS806においてNo)、他の候補位置を選択するために、ステップS802に戻る。つまり、演奏位置検出装置1は、ステップS803〜S805の処理を、候補位置252,253を選択して実行する。
Since the performance
候補位置252は、許容範囲内に存在するため(ステップS803においてYes)、候補位置252の位置番号「56」は、継続してRAM12に保存される(ステップS804)。候補位置253は、許容範囲内に存在しないため(ステップS803においてNo)、演奏位置検出装置1は、候補位置253が演奏位置として決定されることはないと判断して、候補位置253の位置番号「59」をRAM12から消去する。ユーザは、楽譜に記述されている音符を順次演奏することから、新たに決定される演奏位置は、直前の演奏位置から大きく離れることはないと予想される。候補位置253は、許容範囲に存在せず、直前の演奏位置から離れすぎている。このため、演奏位置検出装置1は、候補位置253を演奏位置ではないと判定する。
Since the candidate position 252 exists within the allowable range (Yes in step S803), the position number “56” of the candidate position 252 is continuously stored in the RAM 12 (step S804). Since the
演奏位置検出装置1は、全ての候補位置を選択した場合(ステップS806においてYes)、候補位置の位置番号がRAM12に保存されているか否かを確認する(ステップS807)。
When all the candidate positions are selected (Yes in step S806), the performance
候補位置251,252の位置番号がRAM12に保存されているため(ステップS807においてYes)、演奏位置検出装置1は、候補位置251,252のうち、直前の演奏位置に最も近い候補位置251を新たな演奏位置として決定する(ステップS808)。演奏位置検出装置1は、更新停止回数を0に設定し(ステップS809)、図11に示す処理を終了する。更新停止回数は、新たな演奏位置が演奏位置決定処理(ステップS8)により決定されなかった回数を示し、検出状態判定処理(ステップS9)で用いられる。
Since the position numbers of the candidate positions 251 and 252 are stored in the RAM 12 (Yes in step S807), the performance
一方、候補位置の位置番号がRAM12に保存されていない場合(ステップS807においてNo)、演奏位置検出装置1は、演奏位置を新たに決定できないと判定する。演奏位置は、直前の演奏位置から更新されない。演奏位置検出装置1は、更新停止回数をカウントし(ステップS810)、図11に示す処理を終了する。
On the other hand, when the position number of the candidate position is not stored in the RAM 12 (No in step S807), the performance
このように、演奏位置検出装置1は、許容範囲内に存在する候補位置の中で、直前の演奏位置に最も近い候補位置を新たな演奏位置として決定する。これにより、演奏位置が直前の演奏位置から大きく移動することが防止される。
As described above, the performance
{検出状態判定処理(ステップS9)}
図13は、検出状態判定処理(ステップS9)のフローチャートである。図14は、検出状態判定処理(ステップS9)により、演奏位置が強制的に変更されるときの演奏位置の変化を示す図である。図14において、楽譜配列4の音階を丸で示し、音階の具体的な数値の表示を省略する。
{Detection state determination process (step S9)}
FIG. 13 is a flowchart of the detection state determination process (step S9). FIG. 14 is a diagram illustrating a change in the performance position when the performance position is forcibly changed by the detection state determination process (step S9). In FIG. 14, the scale of the
図13を参照して、演奏位置検出装置1は、更新停止回数が初期化基準値(たとえば、4)以上であるか否かを判定する(ステップS91)。直前の演奏位置が、図14に示すように、楽譜配列4の位置番号「56」であると仮定する。
Referring to FIG. 13, performance
更新停止回数が初期化基準値以上である場合(ステップS91においてYes)、演奏位置検出装置1は、ユーザが演奏ミスを続けているため、現在の演奏配列6に基づいて、演奏位置を決定できないと判定する。演奏位置検出装置1は、演奏位置の決定をやり直すために、演奏配列6を初期化する(ステップS92)。演奏位置検出装置1は、演奏位置を、直前の演奏位置(位置番号「56」)よりも3個前の音階の位置に変更する(ステップS93)。Nの値が3に設定されている場合、位置番号「53」が、新たな演奏位置として決定される。なお、Nの値は、3以外の値であってもよい。
If the number of update stops is equal to or greater than the initialization reference value (Yes in step S91), the performance
ユーザは、演奏をミスした場合、演奏を停止し、演奏をミスした位置よりも前の位置(たとえば、演奏をミスした小節の先頭の音符)から、演奏を再開すると考えられる。このため、演奏位置検出装置1は、ユーザが演奏を再開したときに、直前の演奏位置よりも手前の位置から新たな演奏位置を決定できるようにするために、演奏位置をステップS93により変更する。また、ステップS92により、演奏配列6が初期化されるため、演奏配列6に含まれる音階の数は、0となる。演奏位置検出装置1は、再開された演奏に基づいて、新たに演奏配列6を作成することができるため、再開された演奏に対応する演奏位置を速やかに決定することができる。
If the user misses the performance, it is considered that the performance is stopped and the performance is resumed from a position before the position where the performance was missed (for example, the first note of the measure where the performance was missed). For this reason, the performance
一方、更新停止回数が初期化基準値よりも小さい場合(ステップS91においてNo)、演奏位置検出装置1は、ユーザの演奏ミスにより演奏位置を決定できないが、ユーザが演奏を継続していると判定する。この場合、演奏位置検出装置1は、演奏配列6を初期化せずに、図13に示す処理を終了する。
On the other hand, if the number of update stops is smaller than the initialization reference value (No in step S91), the performance
図5を参照して、演奏位置が、演奏位置決定処理(ステップS8)または検出状態判定処理(ステップS9)により変更された場合、演奏位置検出装置1は、タッチパネル13に表示されている楽譜画像データ7上の演奏位置を変更する。楽譜画像データ7上の演奏位置が、ユーザの演奏に応じて楽譜上を進んでいくため、ユーザは、楽譜上のどの音符を演奏しているかを容易に確認できる。
Referring to FIG. 5, when the performance position is changed by the performance position determination process (step S <b> 8) or the detection state determination process (step S <b> 9), the performance
{変形例}
以下、上記実施の形態の変形例を説明する。
{Modification}
Hereinafter, modifications of the above embodiment will be described.
上記実施の形態において、演奏位置検出装置1は、最尤度を有する参照配列5の最後の音階の位置を候補位置として特定する例を説明したが、これに限られない。演奏位置検出装置1は、ステップS710(図9参照)において、最尤度を有する参照配列5の数が1つである場合、最尤度を有する参照配列5の最後の音階の位置を、演奏位置として決定してもよい。たとえば、図3及び図9を参照して、参照配列53だけが、最尤度を有する参照配列5として抽出された場合(ステップS710)、演奏位置検出装置1は、参照配列53の最後の音階の位置(位置番号「8」)を、演奏位置として決定してもよい。
In the said embodiment, although the performance
上記実施の形態では、楽譜配列4の音階のうち、直前の演奏位置よりも後ろに位置する音階から参照配列5を選択する例を説明したが、これに限られない。演奏位置検出装置1は、直前の演奏位置に関係なく、楽譜配列4全体から参照配列5を選択してもよい。つまり、演奏位置検出装置1は、楽譜配列4のうち、直前の演奏位置よりも後ろに位置する音階を含む配列の中から、参照配列を選択すればよい。
In the above embodiment, the example in which the
この場合であっても、図11及び図12を参照して、ステップS803により、直前の演奏位置よりも後ろに位置する候補位置が、演奏位置として決定される。参照配列5が楽譜配列4全体から選択されたとしても、直前の演奏位置よりも前に位置する音階が、新たな演奏位置として決定されることを防ぐことができる。つまり、演奏位置検出装置1は、参照配列5の選択方法に関係なく、最尤度を有する参照配列5の最後の音階の位置が直前の演奏位置よりも時間方向で後ろに位置する場合、最後の音階の位置を新たな演奏位置として決定すればよい。
Even in this case, referring to FIG. 11 and FIG. 12, a candidate position located behind the immediately preceding performance position is determined as the performance position in step S803. Even if the
上記実施の形態では、許容範囲が、直前の演奏位置よりも後ろに設定される例を説明した。しかし、演奏位置検出装置1は、図15に示すように、許容範囲を、直前の演奏位置の前の音階を含むように設定してもよい。たとえば、ユーザが、演奏をミスすることなく演奏を中断し、中断した位置よりも前の位置から演奏を再開することが考えられる。この場合であっても、演奏位置検出装置1は、許容範囲を直前の演奏位置の前後に設定することにより、正確な演奏位置を決定することができる。つまり、演奏位置検出装置1は、最尤度を有する参照配列5の最後の音階が許容範囲に位置する場合、最後の音階の位置を新たな演奏位置として決定する。この場合、演奏位置検出装置1は、直前の演奏位置よりも前の楽譜配列の音階から、参照配列5を選択する必要がある。また、演奏位置検出装置1は、最後の音階が所定範囲の外に位置する場合、更新停止回数をカウントする(ステップS810、図11参照)。
In the above embodiment, the example in which the allowable range is set behind the immediately preceding performance position has been described. However, as shown in FIG. 15, the performance
上記実施の形態では、演奏位置決定処理(ステップS8)において、演奏位置検出装置1が、許容範囲内に存在する候補位置のうち、直前の演奏位置に最も近い候補位置を、新たな演奏位置として決定する例を説明した(ステップS803,S811、図11参照)。しかし、演奏位置検出装置1は、候補位置が許容範囲内に存在するか否かを判定することなく、直前の演奏位置に最も近い候補位置を新たな演奏位置として決定してもよい。
In the above embodiment, in the performance position determination process (step S8), the performance
上記実施の形態では、楽譜配列4が、単音の音階と、2重和音を構成する複数の音階と含む例を説明したが、これに限られない。楽譜配列4は、3重和音、4重和音などを構成する複数の音階を含んでいてもよい。すなわち、楽譜配列4には、和音を構成する複数の音階が、同一の位置番号の欄に記述される。音階特定処理(ステップ3)では、ソートされた周波数のうち、楽譜配列4において、和音を構成する音階数の最大値に等しい数の周波数が抽出される。演奏配列作成処理(ステップS4)において、演奏位置検出装置1は、音響信号から特定された複数の音階を演奏配列6に追加すればよい。
In the above embodiment, the example has been described in which the
上記実施の形態において、演奏位置検出プログラム2がタブレット型端末にインストールされている例を説明した。演奏位置検出プログラム2をインストールする方法は、特に限定されない。たとえば、演奏位置検出プログラム2は、ネットワークに接続されたサーバからダウンロードされ、タブレット型端末にインストールされてもよい。あるいは、演奏位置検出プログラム2を記録したコンピュータ読み取り可能な媒体(たとえば、光ディスク、USB(Universal Serial Bus)メモリ、フレキシブルディスクなど)が配布されている場合、演奏位置検出プログラム2は、その媒体からタブレット型端末にインストールされてもよい。
In the said embodiment, the example in which the performance
上記実施の形態では、タブレット型端末である場合を例にして説明したが、これに限られない。演奏位置検出装置1は、ノート型のPC(Personal Computer)、デスクトップ型のPC、スマートフォン、携帯電話などのコンピュータであればよい。すなわち、演奏位置検出装置1は、マイク15と、タッチパネル13とを備え、演奏位置検出プログラム2を実行できる機器であればよい。
In the above embodiment, the case of a tablet terminal has been described as an example, but the present invention is not limited to this. The performance
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。 While the embodiments of the present invention have been described above, the above-described embodiments are merely examples for carrying out the present invention. Therefore, the present invention is not limited to the above-described embodiment, and can be implemented by appropriately modifying the above-described embodiment without departing from the spirit thereof.
1 演奏位置検出装置
2 演奏位置検出プログラム
3 楽譜データ
4 楽譜配列
5,51〜55 参照配列
6 演奏配列
11 CPU
12 RAM
13 タッチパネル
14 操作ボタン
15 マイク
31,32 楽譜
41 楽譜高音パート
42 楽譜低音パート
61 演奏高音パート
62 演奏低音バート
311〜319,322,326 音符
DESCRIPTION OF
12 RAM
13 Touch Panel 14
Claims (8)
演奏順に配列された前記音符の音階を含む楽譜配列を記憶する記憶部と、
前記ユーザによる前記楽曲の演奏音を含む音響信号を入力し、1つ以上の音階を前記入力された音響信号から特定する音階特定部と、
時系列に配列された前記1つ以上の音階を含む演奏配列を作成する配列作成部と、
各々が、前記演奏配列に含まれる音階の数と同じ数の音階を含み、前記楽譜配列上の位置が互いに異なる複数の参照配列を前記楽譜配列の中から選択する選択部と、
前記演奏配列が前記選択された各参照配列であろう尤度を参照配列ごとに算出する尤度算出部と、
前記選択された各参照配列の中から最尤度を有する参照配列を特定し、前記最尤度を有する参照配列の最後の音階が直前の演奏位置を基準にして所定範囲内に位置する場合に前記最後の音階の位置を前記演奏位置として決定し、前記最後の音階が前記所定範囲外に位置する場合に前記演奏位置を決定できないと判定する演奏位置決定部と、
前記演奏位置決定部が前記演奏位置を決定できないと判定した場合、前記演奏位置が更新されないことを示す更新停止回数をカウントするカウント部と、
前記カウント部によりカウントされた更新停止回数がしきい値を超えた場合、前記演奏配列を初期化する配列初期化部とを備える、演奏位置検出装置。 A performance position detecting device for detecting a performance position on the score when a user plays the music based on score data in which notes described in the score of the music are recorded,
A storage unit for storing a musical score arrangement including the scales of the notes arranged in the order of performance;
An acoustic signal including a performance sound of the music by the user is input, and a scale specifying unit that specifies one or more scales from the input acoustic signal;
An array creating unit for creating a performance array including the one or more scales arranged in time series;
A selection unit that selects a plurality of reference arrays, each of which includes the same number of scales as the number of scales included in the performance array, and has different positions on the score array from the score array;
A likelihood calculating section for calculating the likelihood that the performance array will be the selected reference array for each reference array;
When the reference sequence having the maximum likelihood is identified from among the selected reference sequences, and the last scale of the reference sequence having the maximum likelihood is located within a predetermined range based on the immediately preceding performance position A performance position determining unit that determines the position of the last scale as the performance position, and determines that the performance position cannot be determined when the last scale is outside the predetermined range ;
If the performance position determination unit determines that the performance position cannot be determined, a counting unit that counts the number of times of updating stop indicating that the performance position is not updated;
A performance position detection apparatus comprising: an array initialization unit that initializes the performance array when the number of update stops counted by the count unit exceeds a threshold value .
前記演奏位置決定部は、前記直前の演奏位置よりも時間方向で後ろに位置する前記最後の音階の位置を、前記演奏位置として決定する、演奏位置検出装置。 The performance position detection device according to claim 1,
The playing position determination unit, the position of the last of the scale located behind at the time direction from the performance position of the immediately preceding is determined as the playing position, the playing position detecting device.
前記演奏位置決定部は、最尤度を有する参照配列として複数の候補配列を特定した場合、各候補配列の最後の音階の位置のうち、前記直前の演奏位置に最も近い最後の音階の位置を演奏位置として決定する、演奏位置検出装置。 The performance position detection device according to claim 1 or 2,
When the plurality of candidate sequences are specified as the reference sequence having the maximum likelihood, the performance position determination unit determines the position of the last scale closest to the previous performance position among the positions of the last scale of each candidate sequence. A performance position detection device that determines a performance position.
前記配列作成部は、前記配列初期化部により前記演奏配列が初期化された場合、前記演奏配列を新たに作成し、
前記演奏位置決定部は、前記直前の演奏位置よりも時間方向で所定数前に位置する音階の位置を前記演奏位置に決定する、演奏位置検出装置。 It is a performance position detection apparatus of any one of Claims 1-3 ,
The array creation unit creates the performance array newly when the performance array is initialized by the array initialization unit,
The performance position determination device, wherein the performance position determination unit determines, as the performance position, a position of a scale located a predetermined number of times before the previous performance position.
演奏順に配列された前記音符の音階を含む楽譜配列を記憶する記憶部と、
前記ユーザによる前記楽曲の演奏音を含む音響信号を入力し、1つ以上の音階を前記入力された音響信号から特定する音階特定部と、
時系列に配列された前記1つ以上の音階を含む演奏配列を作成する配列作成部と、
各々が、前記演奏配列に含まれる音階の数と同じ数の音階を含み、前記楽譜配列上の位置が互いに異なる複数の参照配列を前記楽譜配列の中から選択する選択部と、
前記演奏配列が前記選択された各参照配列であろう尤度を参照配列ごとに算出する尤度算出部と、
前記選択された各参照配列の中から最尤度を有する参照配列を特定し、前記最尤度を有する参照配列の最後の音階の位置を前記演奏位置として決定する演奏位置決定部と備え、
前記配列作成部は、
前記音階特定部が前記1つ以上の音階を特定した場合、特定された1つ以上の音階を前記演奏配列に追加する追加部と、
前記演奏配列に含まれる音階のうち、前記追加部により追加される1つ以上の音階以外の過去の音階を、前記過去の音階に対応する前記楽譜配列の音階に置換する置換部とを備える、演奏位置検出装置。 A performance position detecting device for detecting a performance position on the score when a user plays the music based on score data in which notes described in the score of the music are recorded,
A storage unit for storing a musical score arrangement including the scales of the notes arranged in the order of performance;
An acoustic signal including a performance sound of the music by the user is input, and a scale specifying unit that specifies one or more scales from the input acoustic signal;
An array creating unit for creating a performance array including the one or more scales arranged in time series;
A selection unit that selects a plurality of reference arrays, each of which includes the same number of scales as the number of scales included in the performance array, and has different positions on the score array from the score array;
A likelihood calculating section for calculating the likelihood that the performance array will be the selected reference array for each reference array;
A performance position determining unit for identifying a reference sequence having the maximum likelihood from among the selected reference sequences, and determining a position of the last scale of the reference sequence having the maximum likelihood as the performance position;
The array creation unit
When the scale specifying unit specifies the one or more scales, an adding unit that adds the specified one or more scales to the performance arrangement;
A replacement unit that replaces past scales other than the one or more scales added by the addition unit among the scales included in the performance sequence, with scales of the score sequence corresponding to the past scales; Performance position detection device.
前記楽譜配列は、和音を構成する複数の音階を含み、
前記音階特定部は、和音を構成する複数の音階を前記音響信号から特定し、
前記配列作成部は、前記音階特定部により特定された複数の音階を含む演奏配列を作成する、演奏位置検出装置。 It is a performance position detection apparatus of any one of Claims 1-5 , Comprising:
The musical score arrangement includes a plurality of scales constituting a chord,
The scale specifying unit specifies a plurality of scales constituting a chord from the acoustic signal,
The performance position detection device, wherein the sequence creation unit creates a performance sequence including a plurality of scales specified by the scale specification unit.
演奏順に配列された前記音符の音階を含む楽譜配列を、前記記憶装置から読み出すステップと、
前記ユーザによる前記楽曲の演奏音を含む音響信号を入力するステップと、
1つ以上の音階を前記入力された音響信号から特定するステップと、
時系列に配列された前記1つ以上の音階を含む演奏配列を作成するステップと、
各々が、前記演奏配列に含まれる音階の数と同じ数の音階を含み、前記楽譜配列上の位置が互いに異なる複数の参照配列を読み出された楽譜配列の中から選択するステップと、
前記演奏配列が前記選択された各参照配列であろう尤度を参照配列ごとに算出するステップと、
前記選択された各参照配列の中から最尤度を有する参照配列を特定するステップと、
前記最尤度を有する参照配列の最後の音階が直前の演奏位置を基準にして所定範囲内に位置する場合に前記最後の音階の位置を前記演奏位置として決定するステップと、
前記最後の音階が前記所定範囲外に位置する場合に前記演奏位置を決定できないと判定するステップと、
前記演奏位置を決定できないと判定した場合、前記演奏位置が更新されないことを示す更新停止回数をカウントするステップと、
前記カウントされた更新停止回数がしきい値を超えた場合、前記演奏配列を初期化するステップとを備える、演奏位置検出プログラム。 A performance for causing a computer having a storage device to execute a process of detecting a performance position on the score when a user plays the song based on score data in which notes described in the score of the song are recorded A position detection program,
Reading out from the storage device a musical score arrangement including scales of the notes arranged in order of performance;
Inputting an acoustic signal including a performance sound of the music by the user;
Identifying one or more scales from the input acoustic signal;
Creating a performance array including the one or more scales arranged in time series;
Selecting a plurality of reference sequences each of which includes the same number of scales as the number of scales included in the performance sequence and having different positions on the score sequence from among the read score sequences;
Calculating the likelihood that the performance sequence will be each selected reference sequence for each reference sequence;
Identifying a reference sequence having the maximum likelihood among each of the selected reference sequences ;
Determining the position of the last scale as the performance position when the last scale of the reference sequence having the maximum likelihood is located within a predetermined range with respect to the previous performance position;
Determining that the performance position cannot be determined when the last scale is located outside the predetermined range;
If it is determined that the performance position cannot be determined, counting the number of update stops indicating that the performance position is not updated;
A performance position detection program comprising: initializing the performance array when the counted number of update stops exceeds a threshold value .
演奏順に配列された前記音符の音階を含む楽譜配列を、前記記憶装置から読み出すステップと、 Reading out from the storage device a musical score arrangement including scales of the notes arranged in order of performance;
前記ユーザによる前記楽曲の演奏音を含む音響信号を入力するステップと、 Inputting an acoustic signal including a performance sound of the music by the user;
1つ以上の音階を前記入力された音響信号から特定するステップと、 Identifying one or more scales from the input acoustic signal;
時系列に配列された前記1つ以上の音階を含む演奏配列を作成するステップと、 Creating a performance array including the one or more scales arranged in time series;
各々が、前記演奏配列に含まれる音階の数と同じ数の音階を含み、前記楽譜配列上の位置が互いに異なる複数の参照配列を読み出された楽譜配列の中から選択するステップと、 Selecting a plurality of reference sequences each of which includes the same number of scales as the number of scales included in the performance sequence and having different positions on the score sequence from among the read score sequences;
前記演奏配列が前記選択された各参照配列であろう尤度を参照配列ごとに算出するステップと、 Calculating the likelihood that the performance sequence will be each selected reference sequence for each reference sequence;
前記選択された各参照配列の中から最尤度を有する参照配列を特定し、前記最尤度を有する参照配列の最後の音階の位置を前記演奏位置として決定するステップとを備え、 Identifying a reference sequence having the maximum likelihood from among the selected reference sequences, and determining the position of the last scale of the reference sequence having the maximum likelihood as the performance position,
前記演奏配列を作成するステップは、 The step of creating the performance array includes:
前記1つ以上の音階が特定された場合、特定された1つ以上の音階を前記演奏配列に追加するステップと、 If the one or more scales are identified, adding the identified one or more scales to the performance arrangement;
前記演奏配列に含まれる音階のうち、前記追加される1つ以上の音階以外の過去の音階を、前記過去の音階に対応する前記楽譜配列の音階に置換するステップとを備える、演奏位置検出プログラム。 A performance position detection program comprising: replacing a scale other than the one or more scales to be added with a scale of the score array corresponding to the past scale among the scales included in the performance array. .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012110789A JP5808711B2 (en) | 2012-05-14 | 2012-05-14 | Performance position detector |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012110789A JP5808711B2 (en) | 2012-05-14 | 2012-05-14 | Performance position detector |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013238698A JP2013238698A (en) | 2013-11-28 |
JP5808711B2 true JP5808711B2 (en) | 2015-11-10 |
Family
ID=49763770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012110789A Expired - Fee Related JP5808711B2 (en) | 2012-05-14 | 2012-05-14 | Performance position detector |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5808711B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6077492B2 (en) * | 2014-05-09 | 2017-02-08 | 圭介 加藤 | Information processing apparatus, information processing method, and program |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01309087A (en) * | 1989-03-24 | 1989-12-13 | Yamaha Corp | Tone series pattern extracting method and play result display device and play result grading device using same |
JP4389330B2 (en) * | 2000-03-22 | 2009-12-24 | ヤマハ株式会社 | Performance position detection method and score display device |
JP4672613B2 (en) * | 2006-08-09 | 2011-04-20 | 株式会社河合楽器製作所 | Tempo detection device and computer program for tempo detection |
JP5569228B2 (en) * | 2010-08-02 | 2014-08-13 | ソニー株式会社 | Tempo detection device, tempo detection method and program |
-
2012
- 2012-05-14 JP JP2012110789A patent/JP5808711B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013238698A (en) | 2013-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5565399B2 (en) | Electronic acoustic signal generator and program for realizing the control method | |
US10497348B2 (en) | Evaluation device and evaluation method | |
JP6459378B2 (en) | Problem management apparatus and problem management program | |
JP2006350686A (en) | Instruction set simulator generation device and simulator generation method | |
US10671278B2 (en) | Enhanced virtual instrument techniques | |
US20190051275A1 (en) | Method for providing accompaniment based on user humming melody and apparatus for the same | |
JP2013148773A (en) | Performance training device and program therefor | |
WO2014188999A1 (en) | Musical composition evaluation device, musical composition evaluation method, musical composition evaluation program, and information storage medium whereupon program is stored | |
JP6151121B2 (en) | Chord progression estimation detection apparatus and chord progression estimation detection program | |
US20120131460A1 (en) | Playlist Creation | |
US9323719B2 (en) | Mathematical expression input apparatus, mathematical expression modification method, and storage medium storing program | |
JP2008305339A (en) | Operation time measuring instrument and method, skill level determining device and method, and program | |
JP5549521B2 (en) | Speech synthesis apparatus and program | |
US20170287453A1 (en) | Musical score display control method, device and program | |
JP5808711B2 (en) | Performance position detector | |
JP6835247B2 (en) | Data generator and program | |
JP6708180B2 (en) | Performance analysis method, performance analysis device and program | |
JP2019148859A (en) | Device and method supporting discovery of design pattern in model development environment using flow diagram | |
JP2009064181A (en) | Information processor and program | |
JP2007178695A (en) | Fingering display device and program | |
JP6077492B2 (en) | Information processing apparatus, information processing method, and program | |
JP6168117B2 (en) | Musical score information generating apparatus, musical score information generating method, and program | |
JP2017217425A (en) | Game control device, game control method, and game control program | |
JP2014089475A (en) | Voice synthesizer and program | |
KR20210081075A (en) | Principle of Sheet Music Algorithm Produced by Analyzing MIDI File and How It Works with Digital Piano |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150511 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20150511 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20150615 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150623 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150811 |
|
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: 20150901 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150909 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5808711 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |