JP2013238698A - 演奏位置検出装置 - Google Patents

演奏位置検出装置 Download PDF

Info

Publication number
JP2013238698A
JP2013238698A JP2012110789A JP2012110789A JP2013238698A JP 2013238698 A JP2013238698 A JP 2013238698A JP 2012110789 A JP2012110789 A JP 2012110789A JP 2012110789 A JP2012110789 A JP 2012110789A JP 2013238698 A JP2013238698 A JP 2013238698A
Authority
JP
Japan
Prior art keywords
performance
performance position
array
scales
position detection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012110789A
Other languages
English (en)
Other versions
JP5808711B2 (ja
Inventor
Daisuke Araki
大輔 荒木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FUNTAP Inc
Original Assignee
FUNTAP Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FUNTAP Inc filed Critical FUNTAP Inc
Priority to JP2012110789A priority Critical patent/JP5808711B2/ja
Publication of JP2013238698A publication Critical patent/JP2013238698A/ja
Application granted granted Critical
Publication of JP5808711B2 publication Critical patent/JP5808711B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Auxiliary Devices For Music (AREA)

Abstract

【課題】ユーザが演奏ミスをしても、演奏位置を速やかに特定できる演奏位置検出装置を提供する。
【解決手段】演奏位置検出装置1は、音符が記録された楽譜データに基づいて、楽譜上の演奏位置を検出する。演奏位置検出装置1は、音響信号を入力し、1つ以上の音階を音響信号から特定する。時系列に配列された1つ以上の音階を含む演奏配列6が作成される。フラッシュメモリ16は、演奏順に配列された音符の音階を含む楽譜配列を記憶する。演奏位置検出装置1は、各々が、演奏配列6に含まれる音階の数と同じ数の音階を含み、楽譜配列上の位置が互いに異なる複数の参照配列5を楽譜配列4の中から選択する。演奏配列6が選択された参照配列5であろう尤度が、参照配列5ごとに算出される。演奏位置検出装置1は、各参照配列5の中から最尤度を有する参照配列5を特定し、特定された参照配列5の最後の音階の位置を演奏位置として決定する。
【選択図】図1

Description

本発明は、演奏位置検出装置に関し、さらに詳しくは、ユーザが楽曲を演奏するときの楽譜上の演奏位置を検出する演奏位置検出装置に関する。
近年、楽譜を電子化した電子楽譜が普及している。電子楽譜は、紙に印刷される楽譜を、単に電子ファイル化したデータである。このため、ユーザは、電子楽譜を利用する場合、電子楽譜を印刷し、印刷された電子楽譜を見ながら楽曲を演奏しなければならない。
これに対して、楽譜の画像をモニタに表示し、ユーザの演奏に合わせてモニタに表示される楽譜のページを変更する技術が提案されている。たとえば、特許文献1には、ユーザによる楽曲の演奏に合わせて、楽曲の演奏位置を、表示された楽譜上に示す楽譜表示装置が開示されている。
特許文献1において、楽譜表示装置は、楽曲の音符を表わす音符データ列の中から、入力された音高データに一致する音符データを候補として検出する。楽譜表示装置は、音符データ列を参照して、検出された候補の次の音符データを予測する。楽譜表示装置は、予測した音高データが次に入力される音高データと一致するか否かを判定する。楽譜表示装置は、音高データに連続して一致する音符データの数が所定値以上である候補を、演奏位置として決定する。
しかし、ユーザが、演奏ミスにより、楽譜の通りに楽曲を演奏しなかった場合、上記の楽譜表示装置は、演奏位置の特定に時間を要するおそれがある。楽譜表示装置は、音符データ列の中から、演奏ミスに基づく音高データに一致する位置を候補として検出する。この結果、音符データに連続して一致する音高データの数が所定値以上に達するまでに時間を要する。
特許第4389330号公報 特開2001−5450号公報 特開2001−148633号公報 特開2003−22070号公報 特開2011−257510号公報 特開2007−240552号公報
「Music That Listens To You - Tonara」, [online],[2012年4月6日検索],<URL:http://tonara.com/>
本発明の目的は、ユーザが演奏ミスをしても、演奏位置を速やかに特定できる演奏位置検出装置を提供することである。
課題を解決するための手段及び効果
本発明による演奏位置検出装置は、楽曲の楽譜に記述される音符が記録された楽譜データに基づいて、ユーザが楽曲を演奏するときの楽譜上の演奏位置を検出する。演奏位置検出装置は、記憶部と、音階特定部と、配列作成部と、選択部と、尤度算出部と、演奏位置決定部とを備える。記憶部は、演奏順に配列された音符の音階を含む楽譜配列を記憶する。音階特定部は、ユーザによる楽曲の演奏音を含む音響信号を入力し、1つ以上の音階を入力された音響信号から特定する。配列作成部は、時系列に配列された1つ以上の音階を含む演奏配列を作成する。選択部は、各々が、演奏配列に含まれる音階の数と同じ数の音階を含み、楽譜配列上の位置が互いに異なる複数の参照配列を楽譜配列の中から選択する。尤度算出部は、演奏配列が選択された各参照配列であろう尤度を参照配列ごとに算出する。演奏位置決定部は、選択された各参照配列の中から最尤度を有する参照配列を特定し、最尤度を有する参照配列の最後の音階の位置を演奏位置として決定する。
本発明によれば、演奏位置が、演奏配列が参照配列であろう尤度に基づいて決定される。これにより、演奏配列がユーザの演奏ミスに伴う音階を含む場合であっても、計算量が増加することがないため、速やかに演奏位置を決定することができる。
好ましくは、演奏位置決定部は、直前の演奏位置よりも時間方向で後ろに位置する最後の音階の位置を、演奏位置として決定する。
本発明によれば、直前の演奏位置よりも前の音階の位置が、新たな演奏位置として決定されない。したがって、ユーザが実際に演奏している音階の位置と無関係の位置を、演奏位置として誤って決定することを防ぐことができる。
好ましくは、演奏位置検出装置は、最尤度を有する参照配列として複数の候補配列を特定した場合、各候補配列の最後の音階の位置のうち、直前の演奏位置に最も近い最後の音階の位置を演奏位置として決定する。
本発明によれば、複数の候補配列の最後の音階の位置のうち、直前の演奏位置に最も近い最後の音階の位置が演奏位置として決定される。したがって、ユーザが実際に演奏している音階の位置と無関係の位置を、演奏位置として誤って決定することを防ぐことができる。
好ましくは、演奏位置決定部は、直前の演奏位置を基準にして所定範囲内に位置する最後の音階の位置を、演奏位置として決定する。
本発明によれば、直前の演奏位置と大きく離れている音階の位置は、演奏位置として決定されない。したがって、ユーザが実際に演奏している音階の位置と無関係の位置を、演奏位置として誤って決定することを防ぐことができる。
好ましくは、演奏位置決定部は、最後の音階が所定範囲の外に位置する場合、演奏位置を決定できないと判定する。演奏位置検出装置は、さらに、カウント部と、配列初期化部とを備える。カウント部は、演奏位置決定部が演奏位置を決定できないと判定した場合、演奏位置が更新されないことを示す更新停止回数をカウントする。配列初期化部は、カウント部によりカウントされた更新停止回数がしきい値を超えた場合、演奏配列を初期化する。
演奏位置検出装置は、更新停止回数がしきい値を超えた場合、演奏配列を初期化して、演奏位置の決定を最初からやり直す。したがって、ユーザが演奏をミスして演奏を停止した後に演奏を再開したとしても、演奏位置検出装置は、演奏が再開された位置を速やかに検出することができる。
好ましくは、配列作成部は、配列初期化部により演奏配列が初期化された場合、演奏配列を新たに作成する。演奏位置決定部は、直前の演奏位置よりも時間方向で所定数前に位置する音階の位置を演奏位置に決定する。
本発明によれば、演奏配列が初期化された場合、演奏位置が、直前の演奏位置よりも時間方向で所定数前に位置する音階の位置に変更される。これにより、ユーザが、演奏を停止した後に、停止位置よりも前の位置から演奏を再開したとしても、演奏位置を速やかに決定することができる。
好ましくは、配列作成部は、追加部と、置換部とを備える。追加部は、音階特定部が1つ以上の音階を特定した場合、特定された1つ以上の音階を演奏配列に追加する。置換部は、演奏配列に含まれる音階のうち、追加部により追加される1つ以上の音階以外の過去の音階を、過去の音階に対応する楽譜配列の音階に置換する。
本発明によれば、演奏ミスによる過去の音階が、演奏配列に含まれる場合であっても、演奏ミスによる過去の音階が楽譜配列に対応する音階に訂正される。これにより、実際の演奏位置と異なる位置を、演奏位置として誤って検出することを防ぐことができる。
好ましくは、楽譜配列は、和音を構成する複数の音階を含む。音階特定部は、和音を構成する複数の音階を音響信号から特定する。配列作成部は、音階特定部により特定された複数の音階を含む演奏配列を作成する。
本発明によれば、ユーザが、和音を含む楽譜を用いて、楽曲を演奏する時であっても、演奏された和音の音階を特定し、特定された和音の音階に基づいて演奏位置を決定することができる。
本発明による演奏位置検出プログラムは、本発明による演奏位置検出装置に用いられる。
本発明の実施の形態による演奏位置検出装置の構成を示す機能ブロック図である。 図1に示す楽譜画像データを示す図である。 図1に示す楽譜配列を示す図である。 図1に示す演奏配列を示す図である。 図1に示す演奏位置検出プログラムのフローチャートである。 図1に示すマイクに入力される音響信号を示す図である。 図6Aに示す音響信号をフィルタ処理した後の音響信号を示す図である。 図6Bに示す音響信号に対して高速フーリエ変換を行うことにより生成されたスペクトルである。 図6Cに示すスペクトルから音階を特定する処理を説明する図である。 図5に示す演奏配列作成処理のフローチャートである。 図5に示す演奏配列作成処理における演奏配列の変化を示す図である。 図5に示す尤度算出処理のフローチャートである。 図1に示す演奏配列が参照配列であろう尤度を算出する方法を説明する図である。 図5に示す演奏位置決定処理のフローチャートである。 図11に示す尤度算出処理により特定された候補位置と、直前の演奏位置との位置関係を示す図である。 図5に示す検出状態判定処理のフローチャートである。 図5に示す検出状態判定処理により、演奏位置が強制的に変更されるときの演奏位置の変化を示す図である。 図12に示す許容範囲の変形例を示す図である。
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
{演奏位置検出装置の構成}
図1は、本発明の実施の形態による演奏位置検出装置1の構成を示す機能ブロック図である。図1を参照して、演奏位置検出装置1は、楽曲の楽譜に記述される音符が記録された楽譜画像データ7をタッチパネル13に表示する。演奏位置検出装置1は、楽譜配列4に基づいて、ユーザが楽曲を演奏するときの楽譜上の演奏位置を検出する。検出された演奏位置は、タッチパネル13に表示されている楽譜画像データ7上に示される。
演奏位置検出装置1は、タブレット型端末である。タブレット型端末は、演奏位置検出プログラム2がインストールされることにより、演奏位置検出装置1として動作する。
演奏位置検出装置1は、CPU(Central Processing Unit)11と、RAM(Random Access Memory)12と、タッチパネル13と、操作ボタン14と、マイク15と、フラッシュメモリ16とを備える。
CPU11は、フラッシュメモリ16に格納されたプログラムを実行する。RAM12は、演奏位置検出装置1のメインメモリである。CPU11は、プログラムをRAM12にロードし、ロードされたプログラムを実行して演奏位置検出装置1を制御する。
タッチパネル13は、プログラムの実行結果を表示するとともに、ユーザによりタッチされた位置を操作情報としてCPU11に出力する。操作ボタン14は、電源ボタン、音量調節ボタンなどのハードウェアキーである。マイク15は、ユーザにより演奏された楽曲の演奏音を、音響信号として入力する。
フラッシュメモリ16は、書き換え可能な不揮発性の半導体メモリである。フラッシュメモリ16は、演奏位置検出プログラム2と、楽譜データ3と、参照配列5と、演奏配列6とを記憶する。
楽譜データ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とを作成する。
楽譜配列4は、楽譜に記述される音符の音階が演奏順に配列されたデータである。参照配列5は、楽譜配列4の中から選択された所定長の音階の配列である。演奏配列6は、ユーザによる楽曲の演奏音の音階を時系列に配列したデータである。楽譜配列4、参照配列5及び演奏配列6の詳細は、後述する。
{演奏位置検出装置1の動作の概略と各種配列の構造}
演奏位置検出装置1は、楽譜画像データ7をタッチパネル13に表示する。ユーザは、タッチパネル13に表示された楽譜画像データ7を見ながら、楽曲を演奏する。
図2は、楽譜画像データ7を示す図である。図2を参照して、楽譜画像データ7は、高音パートの楽譜31と、低音パートの楽譜32とを含む。楽譜画像データ7の領域3aには、音符312,322が記述されている。音符312,322は、和音を構成する。同様に、領域3bに記述された音符316,326は、和音を構成する。楽譜31に記述された音符311,313〜315,317〜319は、和音を構成しない。
楽譜配列4は、楽譜31,32に記述された音符の音階を含み、音符の音階は、演奏順に配列される。図3は、楽譜配列4を示す図である。図3を参照して、楽譜配列4において、位置番号は、楽譜画像データ7の音符の位置を特定するためのパラメータであり、楽譜31,32の先頭から音符をカウントしたときの各音符のカウント値に相当する。つまり、大きい位置番号は、時間方向で後ろに位置する音符に対応し、小さい位置番号は、時間方向で前に位置する音符に対応する。
楽譜配列4は、楽譜高音パート41と、楽譜低音パート42とを含む。楽譜高音パート41には、楽譜31に記述される音符のMIDI音階が、演奏順に配列されている。MIDI音階は、MIDI規格に基づいて定められた音階の数値である。楽譜低音パート42には、楽譜32に記述される音符のMIDI音階が演奏順に記録される。
たとえば、楽譜配列4において、位置番号「1」の音階は、楽譜31の先頭に位置する音符311の音階を示す。音符311の音階が「ソ」である。楽譜高音パート41の位置番号「1」の欄には、「ソ」に対応するMIDI音階「65」が記述される。楽譜32には、音符311に対応する音符が記述されていないため、楽譜低音パート42の位置番号「1」の欄には、MIDI音階「0」が記述される。
楽譜配列4の位置番号「2」は、領域3aに対応する。このため、位置番号「2」の欄には、和音を構成する複数の音階が記述される。具体的には、楽譜高音パート41の位置番号「2」の欄には、MIDI音階「67」が、音符312の音階として記述される。楽譜低音パート42の位置番号「2」の欄には、MIDI音階「53」が、音符322の音階として記述される。つまり、楽譜配列4において、和音を構成する音階の数は、最大で2である。
上述のように、ユーザは、タッチパネル13に表示された楽譜画像データ7を見ながら、楽曲を演奏する。演奏位置検出装置1は、ユーザによる楽曲の演奏音を含む音響信号をマイク15から入力し、1つ以上の音階をマイク15から入力された音響信号から特定する。演奏位置検出装置1は、時系列に配列された1つ以上の音階を含む演奏配列6を作成する。
図4は、演奏配列6の一例を示す図である。図4を参照して、演奏配列6は、音響信号から特定された1つ以上の音階を含み、演奏配列6に含まれる1つ以上の音階は、時系列に配列される。演奏配列6の構成は、楽譜配列4と同様に、演奏高音パート61と、演奏低音パート62とを含む。演奏配列6に含まれる音階の最大数(以下、「配列最大値」と呼ぶ。)は、4である。ここで、和音は、1つの音階としてカウントされる。演奏配列6は、ユーザによる楽曲の演奏音の音階が特定されるたびに更新される。
ユーザが、「ソ」,「シ」,「シ」,「ミ」の順に演奏することにより、MIDI音階「65」,「67」,「67」,「70」が、演奏高音パート61に記述される。演奏低音パート62の2番目には、MIDI音階「53」が記述されている。つまり、ユーザは、2番目の音を、和音として演奏している。
演奏位置検出装置1は、楽譜配列4の中から、演奏配列6と同じ配列を検索する。具体的には、演奏位置検出装置1は、楽譜配列4の中から、複数の参照配列5を選択する。参照配列5は、演奏配列6に含まれる音階の数と同じ数の音階を含む。複数の参照配列5は、楽譜配列4上の位置が互いに異なる。
図3を参照して、参照配列51は、楽譜配列4の音階のうち、位置番号が「1」〜「4」の音階である。参照配列52は、楽譜配列4の音階のうち、位置番号が「2」〜「5」の音階である。このように、演奏位置検出装置1は、先頭の音階の位置を1つずつずらすことにより、複数の参照配列5を選択する。
演奏位置検出装置1は、演奏配列6を、選択された各参照配列5と比較することにより、演奏配列6が各参照配列5であろう尤度を、参照配列5ごとに算出する。尤度の算出方法の詳細は、後述する。
演奏位置検出装置1は、各参照配列5の尤度の中から、最尤度を有する参照配列5を特定し、特定された参照配列5の最後の音階の位置を演奏位置として決定する。たとえば、参照配列53が最尤度を有すると仮定した場合、演奏位置検出装置1は、参照配列53の最後の音階の位置(位置番号「8」)を、演奏位置として決定する。
演奏位置検出装置1は、タッチパネル13に表示された楽譜画像データ7において、位置番号「8」に対応する音符318をハッチングで囲む。これにより、ユーザは、音符318を演奏したことを認識できる。図2では、演奏位置の音符をハッチングで囲む例を示しているが、これに限られない。ユーザが現在の演奏位置を、タッチパネル13に表示された楽譜上で把握することができれば、いかなる表示方法を用いてもよい。
このように、演奏位置検出装置1は、演奏配列6が参照配列5であろう尤度を参照配列5ごとに算出し、最尤度を有する参照配列5の最後の音階の位置を、演奏位置として決定する。演奏配列6が、演奏ミスによる音階を含む場合であっても、演奏位置検出装置1は、計算量を増大させることなく、演奏位置を速やかに特定することができる。
{演奏位置検出プログラム2の詳細}
以下、演奏位置検出プログラム2を実行するときの演奏位置検出装置1の動作を詳細に説明する。
図5は、演奏位置検出プログラム2のフローチャートである。図5を参照して、演奏位置検出装置1は、初期化を実行する(ステップS1)。ステップS1において、演奏位置検出装置1は、演奏位置を「0」に設定し、演奏配列6に記録されている音階を全て「0」に設定する。タッチパネル13には、楽譜画像データ7の先頭ページが表示される。
演奏位置検出装置1は、演奏位置検出プログラム2を終了するか否かを判定する(ステップS2)。具体的には、演奏位置検出装置1は、演奏位置が楽譜配列4の終端の位置番号に一致する場合(ステップS2においてYes)、ユーザによる楽曲の演奏が終了したと判定して、図5に示す処理を終了する。
一方、演奏位置検出装置1は、演奏位置が楽譜配列4の終端の位置番号に一致しない場合(ステップS2においてNo)、ユーザによる演奏が終了していないと判定して、ステップS3〜S10を実行する。
演奏位置検出装置1は、音響信号を入力し、ユーザによる楽曲の演奏音の音階を、入力された音響信号から特定する(ステップS3)。演奏位置検出装置1は、特定された音階を時系列に配列して、演奏配列6を作成する(ステップS4)。
ユーザが演奏を始めたときには、ステップS3により特定された音階の数が、配列最大値に満たない場合がある。この場合、演奏位置検出装置1は、ステップS3により特定された音階を演奏配列6に順次追加する。一方、演奏配列6に記録されている音階の数が配列最大値に達している場合、演奏位置検出装置1は、演奏配列6の音階のうち、最初に追加された音階を演奏配列6から削除し、新たに特定された音階を演奏配列6に追加する。
演奏配列6に記録されている音階の数が開始基準値よりも小さい場合(ステップS5においてNo)、演奏位置検出装置1は、演奏位置を決定することなく、ステップS2に戻る。開始基準値として、配列最大値を用いることができる。開始基準値として、配列最大値よりも小さい値を用いることにより、ユーザが演奏を開始したときに、演奏位置を速やかに決定できるようにしてもよい。たとえば、開始基準値として、配列最大値の2分の1を用いることができる。
一方、演奏配列6に記録されている音階の数が開始基準値以上である場合(ステップS5においてYes)、演奏位置検出装置1は、演奏位置の決定が可能であると判断し、楽譜配列4の中から、複数の参照配列5を選択する(ステップS6)。上述のように、演奏位置検出装置1は、参照配列5の先頭の番号を1つずつずらすことにより、複数の参照配列5を選択する。したがって、選択される参照配列5の数は、楽譜配列4に含まれる音階の数に応じて変化する。
演奏位置検出装置1は、演奏配列6が参照配列5であろう尤度を算出する(ステップS7)。尤度は、参照配列5ごとに算出される。演奏位置検出装置1は、最尤度を有する参照配列5に基づいて、演奏位置を決定する(ステップS8)。演奏位置検出装置1は、最尤度を有する参照配列5を抽出し、抽出された参照配列5の最後の音階の位置番号を、演奏位置の候補位置として特定する。これは、最尤度を有する参照配列5の数が1つとは限らないためである。演奏位置検出装置1は、所定の条件を満たす候補位置を、演奏位置として決定する。演奏位置の決定の詳細は、後述する。
演奏位置検出装置1は、演奏位置の決定結果に基づいて、演奏位置の検出状態を判定する(ステップS9)。具体的には、演奏位置検出装置1は、演奏位置の更新停止が継続しているか否かを判定する(ステップS9)。演奏位置検出装置1は、演奏位置を継続して決定できない回数(更新停止回数)が初期化基準値以上である場合、更新停止回数が初期化基準値以上である場合、演奏位置検出装置1は、ユーザが楽譜通りに演奏していないと判定する。この場合、演奏位置検出装置1は、現在の演奏配列6に基づいて演奏位置を決定できる可能性が低いと判断して、演奏配列6を初期化する。
演奏位置検出装置1は、更新された演奏位置に基づいて、タッチパネル13に表示されている楽譜画像データ7上の演奏位置を更新する(ステップS10)。
以下、演奏位置検出プログラム2のそれぞれの処理を詳しく説明する。
{音階特定処理(ステップS3)}
図6Aは、マイク15に入力される音響信号の一例を示す図である。図6Aを参照して、期間15a〜15dは、ユーザが楽器を演奏した期間を示しており、音響信号の振幅が大きく変動する。その他の期間における音響信号の変動は、ノイズ成分を示す。
演奏位置検出装置1は、図6Aに示す音響信号から、音階を特定する。具体的には、演奏位置検出装置1は、図6Aに示す音響信号に対して、ピークフィルタをかける。これにより、図6Bに示すように、ノイズ成分が抑制された音響信号が生成される。ピークフィルタは、マイク15に入力された音響信号から、所定幅以上で変動する音響信号を抽出する処理である。
演奏位置検出装置1は、ピークフィルタをかけた音響信号のうち、振幅が変動している期間を、高速フーリエ変換をかける対象として設定する。すなわち、図6Bに示す音響信号のうち、期間15a〜15dの音響信号が、高速フーリエ変換をかける期間(サンプリング期間)として設定される。ここで、図6Bに示す音響信号16aが、サンプリング期間に設定されたと仮定する。演奏位置検出装置1は、音響信号16aに対して高速フーリエ変換を行うことにより、図6Cに示すスペクトルを生成する。
図6Dは、図6Cに示すスペクトルから、MIDI音階を特定するまでの処理を示す図である。図6C及び図6Dを参照して、演奏位置検出装置1は、スペクトルからピークを有する周波数を抽出し、抽出された周波数を振幅の大きい順にソートする。すなわち、周波数は、466Hz,415Hz,470Hz,・・・の順にソートされる。楽譜配列4において、和音を構成する音階の数の最大値が2であるため、演奏位置検出装置1は、ソートされた周波数のうち、基準振幅を超える上位2つの周波数を選択する。演奏位置検出装置1は、予め定められているMIDI音階と周波数との関係に基づいて、選択された周波数をMIDI音階に変換する。このようにして、音響信号からMIDI音階が特定される。
周波数466Hz,415Hzの振幅が基準振幅よりも大きい場合、演奏位置検出装置1は、周波数466Hz,415Hzの両者を選択する。周波数466Hzは、MIDI音階「70」に変換され、周波数415Hzは、MIDI音階「68」に変換される。
周波数415Hzの振幅が基準振幅よりも大きく、周波数466Hzの振幅が基準振幅よりも小さい場合、演奏位置検出装置1は、周波数415Hzのみを選択する。周波数415HzがMIDI音階「68」に変換される。この場合、音階特定処理(ステップS3)によって特定される音階の数は、1つである。
{演奏配列作成処理(ステップS4)}
演奏位置検出装置1は、MIDI音階が音階特定処理(ステップS3)により特定された後に、演奏配列作成処理(ステップS4)を実行する。
図7は、演奏配列作成処理(ステップS4)のフローチャートである。図7を参照して、演奏位置検出装置1は、演奏配列6に含まれる音階の数が、配列最大値に等しいか否かを確認する(ステップS41)。
音階の数が配列最大値よりも小さい場合(ステップS41においてNo)、演奏位置検出装置1は、演奏配列6における最後の音階の後ろに、ステップS3により特定されたMIDI音階を追加し(ステップS42)、図7に示す処理を終了する。
具体的には、特定されたMIDI音階のうち、高い方のMIDI音階が、演奏高音パート61に追加され、低い方のMIDI音階が、演奏低音パート62に追加される。特定されたMIDI音階の数が1つである場合、特定されたMIDI音階は、演奏高音パート62に追加される。演奏低音パート62には、「0」が追加される。
一方、音階の数が配列最大値に等しい場合(ステップS41においてYes)、演奏位置検出装置1は、ステップS43〜S45を実行して、演奏配列6を更新する。図7及び図8を参照しながら、ステップS43〜S45を詳しく説明する。
図8は、演奏配列6が配列最大値の音階を含む場合における演奏配列6の変化を示す図である。図8において、楽譜配列4及び演奏配列6の音階を丸で示し、高音パート及び低音パートの表示を省略する。配列最大値が4であると仮定する。
演奏位置検出装置1は、更新前の演奏配列6から、先頭のMIDI音階6aを削除する(ステップS43)。演奏配列6のMIDI音階6b〜6dの要素番号が、1つずつ繰り上がる。演奏位置検出装置1は、新たに特定されたMIDI音階6eを、MIDI音階6aが削除された演奏配列6に追加する(ステップS44)。MIDI音階6eの要素番号は、4である。このようにして、演奏配列6が更新される。
演奏位置検出装置1は、MIDI音階6b〜6eのうち、MIDI音階6e以外の過去の音階(MIDI音階6b〜6d)を、MIDI音階6b〜6dに対応する楽譜配列4の音階に置換する(ステップS45)。
ステップS45を実行する際には、演奏位置は既に決定されているため、MIDI音階6b〜6dに対応する楽譜配列4の音階を特定することが可能である。演奏位置が既に決定されている理由を説明する。演奏配列6に含まれるMIDI音階の数が開始基準値以上のときに(ステップS5においてYes)、演奏位置決定処理(ステップS9)が実行される。したがって、演奏配列6に含まれるMIDI音階の数が配列最大値であれば、演奏位置は、既に決定されている。
更新後の演奏配列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音階を含まない。したがって、演奏位置の決定精度を向上させることができる。
{参照配列選択処理(ステップS6)}
以下、図2を参照して、参照配列選択処理(ステップS6)を具体的に説明する。演奏配列6に含まれる音階の数が4であり、演奏位置決定処理(ステップS9)により決定された直前の演奏位置が位置番号「4」であると仮定する。
演奏配列6に含まれる音階の数が4であるため、演奏位置検出装置1は、各参照配列5に含まれる音階の数を4に設定する。演奏位置検出装置1は、楽譜配列4の音階のうち、直前の演奏位置(位置番号「4」)よりも後ろに位置する音階の中から、複数の参照配列5を選択する。演奏位置が進むにつれて、ステップS6により選択される参照配列5の数は減少するため、演奏位置を決定する際の計算量を削減することができる。
演奏位置検出装置1は、楽譜配列4における音階の位置が互いに異なるように、複数の参照配列5を選択する。演奏位置検出装置1は、最初に、楽譜配列4の位置番号「5」〜「8」の音階を、参照配列53として選択する。次に、楽譜配列4の位置番号「6」〜「9」の音階が、参照配列54として選択される。このように、演奏位置検出装置1は、参照配列5の先頭の音階の位置を1つずつずらすことにより、複数の参照配列5を選択する。
{尤度算出処理(ステップS7)}
図9は、尤度算出処理(ステップS7)のフローチャートである。図10は、演奏配列6が参照配列55であろう尤度を算出するときの尤度の計算方法を説明する図である。以下、特に説明のない限り、演奏配列6が参照配列55であろう尤度を算出する場合を例にして、尤度算出処理(ステップS7)を説明する。
図9及び図10を参照して、演奏位置検出装置1は、ステップS6により選択された複数の参照配列5の中から、参照配列55を選択する(ステップS701)。演奏位置検出装置1は、尤度(L)を0に設定し、演奏配列6の要素番号(S)を1に設定し、演奏配列6に含まれる音階の数(Ns)を4に設定する(ステップS702)。
演奏位置検出装置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となる。
なお、ステップS703において、演奏位置検出装置1は、低音パート552の1番目のMIDI音階が0であっても、演奏低音パート62の1番目のMIDI音階を低音パート552の1番目のMIDI音階と比較してもよい。
演奏位置検出装置1は、要素番号(S)をインクリメントし(ステップS706)、要素番号(S)が音階の数(Ns)よりも大きいか否かを確認する(ステップS707)。要素番号(S=2)が音階の数(Ns=4)よりも小さいため(ステップS707においてNo)、演奏位置検出装置1は、ステップS703に戻る。以下、S=5となるまで(ステップS707においてYes)、ステップS703〜S706が繰り返される。
演奏位置検出装置1は、演奏配列6の2番目のMIDI音階が参照配列55の2番目のMIDI音階に一致すると判定する(ステップS703においてYes)。演奏位置検出装置1は、尤度(L)に3を加算する(ステップS704)。尤度(L)は、6となる。
演奏位置検出装置1は、演奏配列6の3番目のMIDI音階が参照配列55の3番目のMIDI音階に一致しないと判定する(ステップS703においてNo)。演奏高音パート61の3番目のMIDI音階は、高音パート551の3番目のMIDI音階に一致しないためである。この場合、演奏位置検出装置1は、尤度(L)から1を減算する(ステップS705)。尤度(L)は、5となる。
演奏位置検出装置1は、演奏配列6の4番目のMIDI音階が参照配列55の4番目のMIDI音階に一致すると判定する(ステップS703においてYes)。演奏位置検出装置1は、尤度(L)に3を加算する(ステップS704)。尤度(L)は、8となる。
要素番号(S)がインクリメントされることにより(ステップS706)、要素番号(S=5)が音階数(Ns=4)よりも大きくなる(ステップS707においてYes)。この場合、演奏位置検出装置1は、参照配列55の尤度(L=8)を保存する(ステップS708)。
演奏位置検出装置1は、全ての参照配列5の尤度を算出したか否かを確認する(ステップS709)。演奏位置検出装置1は、全ての参照配列5の尤度を算出していない場合(ステップS709においてNo)、他の参照配列5を選択するために、ステップS701に戻る。これにより、演奏位置検出装置1は、尤度(L)を参照配列5ごとに算出することができる。
演奏位置検出装置1は、全ての参照配列5の尤度を算出した場合(ステップS709においてYes)、参照配列5の中から、最尤度を有する参照配列5を抽出する(ステップS710)。最尤度が8である場合、参照配列55が抽出される。尤度(L)が8である参照配列5が他にも存在する場合、複数の参照配列5が、ステップS710で抽出される。
演奏位置検出装置1は、抽出された参照配列5の最後の音階の位置を、候補位置としてRAM12に保存する(ステップS711)。参照配列55が抽出されている場合、演奏位置検出装置1は、参照配列55の最後の音階の位置(位置番号「44」)を、候補位置としてRAM12に保存する。
{演奏位置決定処理(ステップS8)}
図11は、演奏位置決定処理(ステップS8)のフローチャートである。図12は、直前の演奏位置と候補位置との関係を示す図である。図12において、楽譜配列4の音階を丸で示し、音階の具体的な数値の表示を省略する。
図11及び図12を参照して、演奏位置検出装置1は、直前の演奏位置と許容値とを設定する(ステップS801)。直前の演奏位置は、音階特定処理(ステップS3)により音階が特定される前に決定された演奏位置である。直前の演奏位置が、楽譜配列4の位置番号「53」であると仮定する。このため、直前の演奏位置(pos)は、53に設定される。許容値は、候補位置を演奏位置として決定する際に用いられるパラメータである。許容値(P)が、3に設定されると仮定する。
ステップS711(図9参照)により、候補位置251〜253が特定されたと仮定する。候補位置251〜253の位置番号が、RAM12に既に保存されている。
演奏位置検出装置1は、候補位置251〜253の中から、候補位置251を選択する(ステップS802)。演奏位置検出装置1は、候補位置251が、直前の演奏位置に基づいて設定される許容範囲内に存在するか否かを確認する(ステップS803)。許容範囲は、直前の演奏位置の位置番号「53」よりも大きく、許容値(P=3)を直前の演奏位置(pos=53)に加算した位置番号「56」以下の範囲である。候補位置251の位置番号「55」が許容範囲内に存在するため(ステップS803においてYes)、演奏位置検出装置1は、候補位置251の位置番号「55」を継続してRAM12に保存する(ステップS804)。
演奏位置検出装置1は、全ての候補位置を選択してないため(ステップS806においてNo)、他の候補位置を選択するために、ステップS802に戻る。つまり、演奏位置検出装置1は、ステップS803〜S805の処理を、候補位置252,253を選択して実行する。
候補位置252は、許容範囲内に存在するため(ステップS803においてYes)、候補位置252の位置番号「56」は、継続してRAM12に保存される(ステップS804)。候補位置253は、許容範囲内に存在しないため(ステップS803においてNo)、演奏位置検出装置1は、候補位置253が演奏位置として決定されることはないと判断して、候補位置253の位置番号「59」をRAM12から消去する。ユーザは、楽譜に記述されている音符を順次演奏することから、新たに決定される演奏位置は、直前の演奏位置から大きく離れることはないと予想される。候補位置253は、許容範囲に存在せず、直前の演奏位置から離れすぎている。このため、演奏位置検出装置1は、候補位置253を演奏位置ではないと判定する。
演奏位置検出装置1は、全ての候補位置を選択した場合(ステップS806においてYes)、候補位置の位置番号がRAM12に保存されているか否かを確認する(ステップS807)。
候補位置251,252の位置番号がRAM12に保存されているため(ステップS807においてYes)、演奏位置検出装置1は、候補位置251,252のうち、直前の演奏位置に最も近い候補位置251を新たな演奏位置として決定する(ステップS808)。演奏位置検出装置1は、更新停止回数を0に設定し(ステップS809)、図11に示す処理を終了する。更新停止回数は、新たな演奏位置が演奏位置決定処理(ステップS8)により決定されなかった回数を示し、検出状態判定処理(ステップS9)で用いられる。
一方、候補位置の位置番号がRAM12に保存されていない場合(ステップS807においてNo)、演奏位置検出装置1は、演奏位置を新たに決定できないと判定する。演奏位置は、直前の演奏位置から更新されない。演奏位置検出装置1は、更新停止回数をカウントし(ステップS810)、図11に示す処理を終了する。
このように、演奏位置検出装置1は、許容範囲内に存在する候補位置の中で、直前の演奏位置に最も近い候補位置を新たな演奏位置として決定する。これにより、演奏位置が直前の演奏位置から大きく移動することが防止される。
{検出状態判定処理(ステップS9)}
図13は、検出状態判定処理(ステップS9)のフローチャートである。図14は、検出状態判定処理(ステップS9)により、演奏位置が強制的に変更されるときの演奏位置の変化を示す図である。図14において、楽譜配列4の音階を丸で示し、音階の具体的な数値の表示を省略する。
図13を参照して、演奏位置検出装置1は、更新停止回数が初期化基準値(たとえば、4)以上であるか否かを判定する(ステップS91)。直前の演奏位置が、図14に示すように、楽譜配列4の位置番号「56」であると仮定する。
更新停止回数が初期化基準値以上である場合(ステップS91においてYes)、演奏位置検出装置1は、ユーザが演奏ミスを続けているため、現在の演奏配列6に基づいて、演奏位置を決定できないと判定する。演奏位置検出装置1は、演奏位置の決定をやり直すために、演奏配列6を初期化する(ステップS92)。演奏位置検出装置1は、演奏位置を、直前の演奏位置(位置番号「56」)よりも3個前の音階の位置に変更する(ステップS93)。Nの値が3に設定されている場合、位置番号「53」が、新たな演奏位置として決定される。なお、Nの値は、3以外の値であってもよい。
ユーザは、演奏をミスした場合、演奏を停止し、演奏をミスした位置よりも前の位置(たとえば、演奏をミスした小節の先頭の音符)から、演奏を再開すると考えられる。このため、演奏位置検出装置1は、ユーザが演奏を再開したときに、直前の演奏位置よりも手前の位置から新たな演奏位置を決定できるようにするために、演奏位置をステップS93により変更する。また、ステップS92により、演奏配列6が初期化されるため、演奏配列6に含まれる音階の数は、0となる。演奏位置検出装置1は、再開された演奏に基づいて、新たに演奏配列6を作成することができるため、再開された演奏に対応する演奏位置を速やかに決定することができる。
一方、更新停止回数が初期化基準値よりも小さい場合(ステップS91においてNo)、演奏位置検出装置1は、ユーザの演奏ミスにより演奏位置を決定できないが、ユーザが演奏を継続していると判定する。この場合、演奏位置検出装置1は、演奏配列6を初期化せずに、図13に示す処理を終了する。
図5を参照して、演奏位置が、演奏位置決定処理(ステップS8)または検出状態判定処理(ステップS9)により変更された場合、演奏位置検出装置1は、タッチパネル13に表示されている楽譜画像データ7上の演奏位置を変更する。楽譜画像データ7上の演奏位置が、ユーザの演奏に応じて楽譜上を進んでいくため、ユーザは、楽譜上のどの音符を演奏しているかを容易に確認できる。
{変形例}
以下、上記実施の形態の変形例を説明する。
上記実施の形態において、演奏位置検出装置1は、最尤度を有する参照配列5の最後の音階の位置を候補位置として特定する例を説明したが、これに限られない。演奏位置検出装置1は、ステップS710(図9参照)において、最尤度を有する参照配列5の数が1つである場合、最尤度を有する参照配列5の最後の音階の位置を、演奏位置として決定してもよい。たとえば、図3及び図9を参照して、参照配列53だけが、最尤度を有する参照配列5として抽出された場合(ステップS710)、演奏位置検出装置1は、参照配列53の最後の音階の位置(位置番号「8」)を、演奏位置として決定してもよい。
上記実施の形態では、楽譜配列4の音階のうち、直前の演奏位置よりも後ろに位置する音階から参照配列5を選択する例を説明したが、これに限られない。演奏位置検出装置1は、直前の演奏位置に関係なく、楽譜配列4全体から参照配列5を選択してもよい。つまり、演奏位置検出装置1は、楽譜配列4のうち、直前の演奏位置よりも後ろに位置する音階を含む配列の中から、参照配列を選択すればよい。
この場合であっても、図11及び図12を参照して、ステップS803により、直前の演奏位置よりも後ろに位置する候補位置が、演奏位置として決定される。参照配列5が楽譜配列4全体から選択されたとしても、直前の演奏位置よりも前に位置する音階が、新たな演奏位置として決定されることを防ぐことができる。つまり、演奏位置検出装置1は、参照配列5の選択方法に関係なく、最尤度を有する参照配列5の最後の音階の位置が直前の演奏位置よりも時間方向で後ろに位置する場合、最後の音階の位置を新たな演奏位置として決定すればよい。
上記実施の形態では、許容範囲が、直前の演奏位置よりも後ろに設定される例を説明した。しかし、演奏位置検出装置1は、図15に示すように、許容範囲を、直前の演奏位置の前の音階を含むように設定してもよい。たとえば、ユーザが、演奏をミスすることなく演奏を中断し、中断した位置よりも前の位置から演奏を再開することが考えられる。この場合であっても、演奏位置検出装置1は、許容範囲を直前の演奏位置の前後に設定することにより、正確な演奏位置を決定することができる。つまり、演奏位置検出装置1は、最尤度を有する参照配列5の最後の音階が許容範囲に位置する場合、最後の音階の位置を新たな演奏位置として決定する。この場合、演奏位置検出装置1は、直前の演奏位置よりも前の楽譜配列の音階から、参照配列5を選択する必要がある。また、演奏位置検出装置1は、最後の音階が所定範囲の外に位置する場合、更新停止回数をカウントする(ステップS810、図11参照)。
上記実施の形態では、演奏位置決定処理(ステップS8)において、演奏位置検出装置1が、許容範囲内に存在する候補位置のうち、直前の演奏位置に最も近い候補位置を、新たな演奏位置として決定する例を説明した(ステップS803,S811、図11参照)。しかし、演奏位置検出装置1は、候補位置が許容範囲内に存在するか否かを判定することなく、直前の演奏位置に最も近い候補位置を新たな演奏位置として決定してもよい。
上記実施の形態では、楽譜配列4が、単音の音階と、2重和音を構成する複数の音階と含む例を説明したが、これに限られない。楽譜配列4は、3重和音、4重和音などを構成する複数の音階を含んでいてもよい。すなわち、楽譜配列4には、和音を構成する複数の音階が、同一の位置番号の欄に記述される。音階特定処理(ステップ3)では、ソートされた周波数のうち、楽譜配列4において、和音を構成する音階数の最大値に等しい数の周波数が抽出される。演奏配列作成処理(ステップS4)において、演奏位置検出装置1は、音響信号から特定された複数の音階を演奏配列6に追加すればよい。
上記実施の形態において、演奏位置検出プログラム2がタブレット型端末にインストールされている例を説明した。演奏位置検出プログラム2をインストールする方法は、特に限定されない。たとえば、演奏位置検出プログラム2は、ネットワークに接続されたサーバからダウンロードされ、タブレット型端末にインストールされてもよい。あるいは、演奏位置検出プログラム2を記録したコンピュータ読み取り可能な媒体(たとえば、光ディスク、USB(Universal Serial Bus)メモリ、フレキシブルディスクなど)が配布されている場合、演奏位置検出プログラム2は、その媒体からタブレット型端末にインストールされてもよい。
上記実施の形態では、タブレット型端末である場合を例にして説明したが、これに限られない。演奏位置検出装置1は、ノート型のPC(Personal Computer)、デスクトップ型のPC、スマートフォン、携帯電話などのコンピュータであればよい。すなわち、演奏位置検出装置1は、マイク15と、タッチパネル13とを備え、演奏位置検出プログラム2を実行できる機器であればよい。
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
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 音符

Claims (9)

  1. 楽曲の楽譜に記述される音符が記録された楽譜データに基づいて、ユーザが前記楽曲を演奏するときの前記楽譜上の演奏位置を検出する演奏位置検出装置であって、
    演奏順に配列された前記音符の音階を含む楽譜配列を記憶する記憶部と、
    前記ユーザによる前記楽曲の演奏音を含む音響信号を入力し、1つ以上の音階を前記入力された音響信号から特定する音階特定部と、
    時系列に配列された前記1つ以上の音階を含む演奏配列を作成する配列作成部と、
    各々が、前記演奏配列に含まれる音階の数と同じ数の音階を含み、前記楽譜配列上の位置が互いに異なる複数の参照配列を前記楽譜配列の中から選択する選択部と、
    前記演奏配列が前記選択された各参照配列であろう尤度を参照配列ごとに算出する尤度算出部と、
    前記選択された各参照配列の中から最尤度を有する参照配列を特定し、前記最尤度を有する参照配列の最後の音階の位置を前記演奏位置として決定する演奏位置決定部と備える、演奏位置検出装置。
  2. 請求項1に記載の演奏位置検出装置であって、
    前記演奏位置決定部は、直前の演奏位置よりも時間方向で後ろに位置する前記最後の音階の位置を、前記演奏位置として決定する、演奏位置検出装置。
  3. 請求項1又は請求項2に記載の演奏位置検出装置であって、
    前記演奏位置決定部は、最尤度を有する参照配列として複数の候補配列を特定した場合、各候補配列の最後の音階の位置のうち、前記直前の演奏位置に最も近い最後の音階の位置を演奏位置として決定する、演奏位置検出装置。
  4. 請求項1〜請求項3のいずれか1項に記載の演奏位置検出装置であって、
    前記演奏位置決定部は、直前の演奏位置を基準にして所定範囲内に位置する前記最後の音階の位置を、前記演奏位置として決定する、演奏位置検出装置。
  5. 請求項4に記載の演奏位置検出装置であって、
    前記演奏位置決定部は、前記最後の音階が前記所定範囲の外に位置する場合、前記演奏位置を決定できないと判定し、
    前記演奏位置検出装置は、さらに、
    前記演奏位置決定部が前記演奏位置を決定できないと判定した場合、前記演奏位置が更新されないことを示す更新停止回数をカウントするカウント部と、
    前記カウント部によりカウントされた更新停止回数がしきい値を超えた場合、前記演奏配列を初期化する配列初期化部とを備える、演奏位置検出装置。
  6. 請求項5に記載の演奏位置検出装置であって、
    前記配列作成部は、前記配列初期化部により前記演奏配列が初期化された場合、前記演奏配列を新たに作成し、
    前記演奏位置決定部は、前記直前の演奏位置よりも時間方向で所定数前に位置する音階の位置を前記演奏位置に決定する、演奏位置検出装置。
  7. 請求項1〜請求項6のいずれか1項に記載の演奏位置検出装置であって、
    前記配列作成部は、
    前記音階特定部が前記1つ以上の音階を特定した場合、特定された1つ以上の音階を前記演奏配列に追加する追加部と、
    前記演奏配列に含まれる音階のうち、前記追加部により追加される1つ以上の音階以外の過去の音階を、前記過去の音階に対応する前記楽譜配列の音階に置換する置換部とを備える、演奏位置検出装置。
  8. 請求項1〜請求項7のいずれか1項に記載の演奏位置検出装置であって、
    前記楽譜配列は、和音を構成する複数の音階を含み、
    前記音階特定部は、和音を構成する複数の音階を前記音響信号から特定し、
    前記配列作成部は、前記音階特定部により特定された複数の音階を含む演奏配列を作成する、演奏位置検出装置。
  9. 楽曲の楽譜に記述される音符が記録された楽譜データに基づいて、ユーザが前記楽曲を演奏するときの前記楽譜上の演奏位置を検出する処理を、記憶装置を備えるコンピュータに実行させるための演奏位置検出プログラムであって、
    演奏順に配列された前記音符の音階を含む楽譜配列を、前記記憶装置から読み出すステップと、
    前記ユーザによる前記楽曲の演奏音を含む音響信号を入力するステップと、
    1つ以上の音階を前記入力された音響信号から特定するステップと、
    時系列に配列された前記1つ以上の音階を含む演奏配列を作成するステップと、
    各々が、前記演奏配列に含まれる音階の数と同じ数の音階を含み、前記楽譜配列上の位置が互いに異なる複数の参照配列を読み出された楽譜配列の中から選択するステップと、
    前記演奏配列が前記選択された各参照配列であろう尤度を参照配列ごとに算出するステップと、
    前記選択された各参照配列の中から最尤度を有する参照配列を特定し、前記最尤度を有する参照配列の最後の音階の位置を前記演奏位置として決定するステップとを備える、演奏位置検出プログラム。
JP2012110789A 2012-05-14 2012-05-14 演奏位置検出装置 Expired - Fee Related JP5808711B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012110789A JP5808711B2 (ja) 2012-05-14 2012-05-14 演奏位置検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012110789A JP5808711B2 (ja) 2012-05-14 2012-05-14 演奏位置検出装置

Publications (2)

Publication Number Publication Date
JP2013238698A true JP2013238698A (ja) 2013-11-28
JP5808711B2 JP5808711B2 (ja) 2015-11-10

Family

ID=49763770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012110789A Expired - Fee Related JP5808711B2 (ja) 2012-05-14 2012-05-14 演奏位置検出装置

Country Status (1)

Country Link
JP (1) JP5808711B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015215455A (ja) * 2014-05-09 2015-12-03 圭介 加藤 情報処理装置、情報処理方法、及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01309087A (ja) * 1989-03-24 1989-12-13 Yamaha Corp 音列パターン抽出方法およびこれを使用した演奏結果表示装置,演奏結果採点装置
JP2001265326A (ja) * 2000-03-22 2001-09-28 Yamaha Corp 演奏位置検出方法および楽譜表示装置
JP2008040284A (ja) * 2006-08-09 2008-02-21 Kawai Musical Instr Mfg Co Ltd テンポ検出装置及びテンポ検出用コンピュータプログラム
JP2012032677A (ja) * 2010-08-02 2012-02-16 Sony Corp テンポ検出装置、テンポ検出方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01309087A (ja) * 1989-03-24 1989-12-13 Yamaha Corp 音列パターン抽出方法およびこれを使用した演奏結果表示装置,演奏結果採点装置
JP2001265326A (ja) * 2000-03-22 2001-09-28 Yamaha Corp 演奏位置検出方法および楽譜表示装置
JP2008040284A (ja) * 2006-08-09 2008-02-21 Kawai Musical Instr Mfg Co Ltd テンポ検出装置及びテンポ検出用コンピュータプログラム
JP2012032677A (ja) * 2010-08-02 2012-02-16 Sony Corp テンポ検出装置、テンポ検出方法およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015215455A (ja) * 2014-05-09 2015-12-03 圭介 加藤 情報処理装置、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
JP5808711B2 (ja) 2015-11-10

Similar Documents

Publication Publication Date Title
US10671278B2 (en) Enhanced virtual instrument techniques
CN112567450B (zh) 乐谱数据的信息处理装置
JP5565399B2 (ja) 電子音響信号発生装置およびその制御方法を実現するためのプログラム
JP6459378B2 (ja) 課題管理装置および課題管理プログラム
JP5447540B2 (ja) 演奏教習装置及びそのプログラム
US10497348B2 (en) Evaluation device and evaluation method
US10013963B1 (en) Method for providing a melody recording based on user humming melody and apparatus for the same
KR102859761B1 (ko) 전자 장치 및 그 제어 방법
WO2014188999A1 (ja) 楽曲評価装置、楽曲評価方法、楽曲評価プログラム及び当該プログラムを記憶した情報記憶媒体
JP6708180B2 (ja) 演奏解析方法、演奏解析装置およびプログラム
KR102082239B1 (ko) 전자 악기와 연동된 유저 단말을 이용한 음악 콘텐츠의 제공 방법, 장치 및 컴퓨터 판독가능 매체
JP6682953B2 (ja) 楽譜表示制御方法、楽譜表示制御装置、楽譜表示制御プログラム
JP5808711B2 (ja) 演奏位置検出装置
JP2009064181A (ja) 情報処理装置、及びプログラム
JP2012083563A (ja) 音声合成装置およびプログラム
CN119132264B (zh) 音乐数据处理方法、装置、存储介质、电子设备
JP6077492B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2019148859A (ja) フローダイアグラムを用いたモデル開発環境におけるデザインパターンの発見を支援する装置および方法
JP5669646B2 (ja) 演奏評価装置、電子楽器及びプログラム
US9176958B2 (en) Method and apparatus for music searching
JP5935815B2 (ja) 音声合成装置およびプログラム
JPWO2019092791A1 (ja) データ生成装置およびプログラム
CN115048025A (zh) 人机交互的传统弓拉弦鸣乐器演奏方法、装置及设备
JP6149917B2 (ja) 音声合成装置および音声合成方法
KR20210081075A (ko) Midi파일 분석을 통해 제작되는 악보 알고리즘의 원리 및 디지털피아노와 연동되는 동작방법

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