JP2012168549A - 演奏情報補正装置および演奏情報補正プログラム - Google Patents
演奏情報補正装置および演奏情報補正プログラム Download PDFInfo
- Publication number
- JP2012168549A JP2012168549A JP2012093569A JP2012093569A JP2012168549A JP 2012168549 A JP2012168549 A JP 2012168549A JP 2012093569 A JP2012093569 A JP 2012093569A JP 2012093569 A JP2012093569 A JP 2012093569A JP 2012168549 A JP2012168549 A JP 2012168549A
- Authority
- JP
- Japan
- Prior art keywords
- time
- correction
- performance data
- sound
- performance information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Auxiliary Devices For Music (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
【課題】実用に適した見易い楽譜として表示されるように演奏情報を補正する演奏情報補正装置を実現する。
【解決手段】意図的に発音のタイミングをずらす「タメ」や「前ノリ」と呼ばれる演奏表現に基づき生成された演奏データを検出する。ステップSC4において「タメ」に相当する演奏データを検出した場合には、ステップSC5に進み、その演奏データの発音時刻を拍の前位置に修正する。ステップSC6において「前ノリ」に相当する演奏データを検出した場合には、ステップSC7に進み、その演奏データの発音時刻を拍の後位置に修正する。これにより、実用に適した見易い楽譜として表示されるように演奏情報を補正することができる。
【選択図】 図4
【解決手段】意図的に発音のタイミングをずらす「タメ」や「前ノリ」と呼ばれる演奏表現に基づき生成された演奏データを検出する。ステップSC4において「タメ」に相当する演奏データを検出した場合には、ステップSC5に進み、その演奏データの発音時刻を拍の前位置に修正する。ステップSC6において「前ノリ」に相当する演奏データを検出した場合には、ステップSC7に進み、その演奏データの発音時刻を拍の後位置に修正する。これにより、実用に適した見易い楽譜として表示されるように演奏情報を補正することができる。
【選択図】 図4
Description
本発明は、実用に適した見易い楽譜となるように演奏情報を補正する演奏情報補正装置および演奏情報補正プログラムに関する。
人間の行う演奏は楽譜を機械的に演奏したものと異なり、演奏者の意図による楽譜からのズレ、あるいは意図しないゆらぎなどを含んでいる。そのため演奏情報から楽譜を作成しようとした場合、単純にクオンタイズを行ったのでは上記のズレやゆらぎを反映した実用に適さない楽譜が生成されることも起こり得る。そうした弊害を回避する為、例えば特許文献1には、演奏情報に含まれる各時刻情報を、所定単位の整数倍からなる正規化時刻情報に書き換えるクオンタイズを行う際に、正規化時刻情報と時刻情報との誤差を加味したクオンタイズ、すなわち前イベントにおける正規化時刻情報と時刻情報との誤差を、次イベントのクオンタイズに反映させることで演奏特徴や演奏表現を考慮しつつ演奏情報を正規化する演奏情報編集装置が開示されている。
ところで、上記特許文献1に開示の装置のように、前イベントにおける正規化時刻情報と時刻情報との誤差を、次イベントのクオンタイズに反映させるだけでは演奏者の意図を汲んだ補正が十分に出来ず、この為、実用に適した見易い楽譜となるように演奏情報を補正することができないという問題がある。
そこで本発明は、このような事情に鑑みてなされたもので、実用に適した見易い楽譜となるように演奏情報を補正することができる演奏情報補正装置および演奏情報補正プログラムを提供することを目的としている。
そこで本発明は、このような事情に鑑みてなされたもので、実用に適した見易い楽譜となるように演奏情報を補正することができる演奏情報補正装置および演奏情報補正プログラムを提供することを目的としている。
上記目的を達成するため、請求項1に記載の発明では、曲を構成する各音を表す演奏データを記憶する演奏データ記憶手段と、前記演奏データ記憶手段に記憶される演奏データの発音時刻を検出する発音時刻検出手段と、前記発音時刻検出手段により検出される発音時刻を補正するか否かを判別する補正判別手段と、前記補正判別手段が発音時刻を補正すると判別した場合、前記発音時刻検出手段により検出された発音時刻を補正する発音時刻補正手段とを具備することを特徴とする。
上記請求項1に従属する請求項2に記載の発明では、前記補正判別手段は、前記発音時刻検出手段により検出される発音時刻が拍の境界から所定値以内であり、前後の音との重なりが所定値以下であるときに補正すると判別することを特徴とする。
上記請求項1に従属する請求項3に記載の発明では、前記補正判別手段は、前記発音時刻検出手段により検出される発音時刻が拍の境界から所定値以内であり、前後の音との重なりが無いときに補正すると判別することを特徴とする。
上記請求項1に従属する請求項4に記載の発明では、前記補正判別手段は、前記演奏データ記憶手段に記憶される演奏データのビートパターンを分析する分析手段と、前記分析手段の分析結果に応じて連符判定のためのしきい値を設定するしきい値設定手段と、前記演奏データ記憶手段に記憶される演奏データ中の処理対象となる音列と連符パターンとの時刻差を算出する時刻差算出手段と、前記しきい値設定手段により設定されるしきい値と前記時刻差算出手段により算出される時刻差とに基づいて連符パターンを採用するか否かを判別する判別手段とを具備することを特徴とする。
請求項5に記載の発明では、曲を構成する各音を表す演奏データの発音時刻を検出する発音時刻検出処理と、前記発音時刻検出処理により検出される発音時刻を補正するか否かを判別する補正判別処理と、前記補正判別処理が発音時刻を補正すると判別した場合、前記発音時刻検出処理にて検出された発音時刻を補正する発音時刻補正処理とをコンピュータで実行させることを特徴とする。
上記請求項5に従属する請求項6に記載の発明では、前記補正判別処理は、前記発音時刻検出処理により検出される発音時刻が拍の境界から所定値以内であり、前後の音との重なりが所定値以下であるときに補正すると判別することを特徴とする。
上記請求項5に従属する請求項7に記載の発明では、前記補正判別処理は、前記発音時刻検出処理により検出される発音時刻が拍の境界から所定値以内であり、前後の音との重なりが無いときに補正すると判別することを特徴とする。
上記請求項5に従属する請求項8に記載の発明では、前記補正判別処理は、曲を構成する各音を表す演奏データのビートパターンを分析する分析処理と、前記分析処理の分析結果に応じて連符判定のためのしきい値を設定するしきい値設定処理と、曲を構成する各音を表す演奏データ中の処理対象となる音列と連符パターンとの時刻差を算出する時刻差算出処理と、前記しきい値設定処理にて設定されるしきい値と前記時刻差算出処理にて算出される時刻差とに基づいて連符パターンを採用するか否かを判別する判別処理とを具備することを特徴とする。
本発明によれば、曲を構成する各音を表す演奏データの発音時刻を検出し、検出した発音時刻を補正するか否かを判別する。そして、発音時刻を補正すると判別した場合には、その検出した発音時刻を補正する。例えば、意図的に発音のタイミングをずらす「タメ」や「前ノリ」と呼ばれる演奏表現に基づき生成された演奏データを検出し、「タメ」に相当する演奏データについてはその発音時刻を拍の前位置に修正し、「前ノリ」に相当する演奏データについてはその発音時刻を拍の後位置に修正するので、実用に適した見易い楽譜として表示されるように演奏情報を補正することができる。
以下、図面を参照して本発明の実施の形態について説明する。
A.第1実施形態
(1)構成
図1は、本発明の実施の第1実施形態による演奏情報補正装置の構成を示すブロック図である。この図において、操作部10は、電源スイッチの他、キー入力用のキーボードやマウス等の入力操作子を備え、入力操作に対応したイベントを発生する。このイベントはCPU11に取り込まれる。CPU11は、ROM12に記憶される各種制御プログラムを実行し、操作部10が発生するイベントに対応して装置各部を制御するものであり、その特徴的な処理動作については追って詳述する。
A.第1実施形態
(1)構成
図1は、本発明の実施の第1実施形態による演奏情報補正装置の構成を示すブロック図である。この図において、操作部10は、電源スイッチの他、キー入力用のキーボードやマウス等の入力操作子を備え、入力操作に対応したイベントを発生する。このイベントはCPU11に取り込まれる。CPU11は、ROM12に記憶される各種制御プログラムを実行し、操作部10が発生するイベントに対応して装置各部を制御するものであり、その特徴的な処理動作については追って詳述する。
ROM12は、プログラムエリアおよびデータエリアを備える。ROM12のプログラムエリアには、CPU11にロードされる各種制御プログラムが記憶される。各種制御プログラムとは、後述するメインルーチン、楽譜情報生成処理および演奏情報編集処理を含む。ROM12のデータエリアには、音符や休符、譜表などを表示するための楽譜表示データが記憶される。
RAM13は、ワークエリアおよびデータエリアを備える。RAM13のワークエリアには、CPU11の処理に用いられる各種レジスタ/フラグデータが一時記憶される。RAM13のデータエリアは、演奏情報エリアおよび楽譜情報エリアから構成される。RAM13の演奏情報エリアには複数曲分の演奏情報が格納される。図示していないが、演奏情報は右手パートおよび左手パートにそれぞれ対応する右手トラックおよび左手トラックから構成される。1つのトラックは、対応する演奏パートを形成する各音を表す演奏データ[0]〜[N]を有し、その終端には曲の終わりを表すENDデータを備える。
演奏データは、演奏開始時点からの経過時間(絶対時間)で表される発音時刻ITime、音長lGate、音高Pitchおよび次の演奏データを指定するポインタpNext等から構成される。RAM13の楽譜情報エリアには、後述する楽譜情報生成処理によって上述の演奏データ[0]〜[N]から派生される音符データ[0]〜[N]が格納される。
音源14は、周知の波形メモリ読み出し方式で構成され、RAM13の演奏データエリアからCPU11が読み出す演奏データを、指定テンポに同期して再生して楽音信号を出力する。サウンドシステム15は、音源14から出力される楽音信号をD/A変換した後に増幅してスピーカSPから発音する。表示部16は、CPU11から供給される表示制御信号に応じて楽譜表示したり、装置の動作状態を表示する。インタフェース(I/F)部17は、CPU11の制御の下に外部MIDI機器とMIDI形式の演奏データを授受するMIDIインタフェースを備える。なお、図1には図示していないが、インタフェース(I/F)部17のMIDIインタフェースに、外部MIDI機器としてキーボード装置が接続される場合、当該キーボード装置の押離鍵操作に対応して生じる演奏データは、MIDIインタフェースを介してRAM13の演奏データエリアに格納されるようになっている。
(2)動作
次に、図2〜図5を参照して上記構成による第1実施形態の動作について説明する。以下では、先ず最初に全体動作としてメインルーチンの動作を説明した後、楽譜情報生成処理および演奏情報編集処理の各動作について説明する。
次に、図2〜図5を参照して上記構成による第1実施形態の動作について説明する。以下では、先ず最初に全体動作としてメインルーチンの動作を説明した後、楽譜情報生成処理および演奏情報編集処理の各動作について説明する。
a.メインルーチンの動作
装置電源の投入に応じて、CPU11は図2に図示するメインルーチンを実行してステップSA1に処理を進め、RAM13のワークエリアに設けられる各種レジスタ/フラグ類をリセットしたり、初期値セットする初期化を実行する。この後、ステップSA2に進み、例えば処理動作(「曲選択」、「設定」および「再生」)を選択的に実行指示させるGUI画面を表示部16に画面表示して、ユーザによるキー操作入力待ち状態に設定する。そして、ステップSA3〜SA5では、キー操作入力待ち状態下で「曲選択」、「設定」および「再生」のいずれかの実行を指示するキー操作入力の有無を判断する。
装置電源の投入に応じて、CPU11は図2に図示するメインルーチンを実行してステップSA1に処理を進め、RAM13のワークエリアに設けられる各種レジスタ/フラグ類をリセットしたり、初期値セットする初期化を実行する。この後、ステップSA2に進み、例えば処理動作(「曲選択」、「設定」および「再生」)を選択的に実行指示させるGUI画面を表示部16に画面表示して、ユーザによるキー操作入力待ち状態に設定する。そして、ステップSA3〜SA5では、キー操作入力待ち状態下で「曲選択」、「設定」および「再生」のいずれかの実行を指示するキー操作入力の有無を判断する。
「曲選択」を指示するキー操作入力が行われると、ステップSA3の判断結果が「YES」になり、ステップSA6に進み、RAM13の演奏データエリアに記憶される複数曲の演奏情報のいずれかを選択する曲選択を実行する。次いで、ステップSA7では、RAM13の演奏データエリアから選択した曲の演奏情報から演奏データを読み込み、ステップSA8を介して楽譜情報生成処理(後述する)を実行した後、ステップSA9を介して楽譜描画処理を実行する。そして、上述のステップSA2に処理を戻してキー操作入力待ち状態に復帰する。
「設定」を指示するキー操作入力が行われると、ステップSA4の判断結果が「YES」になり、ステップSA10を介して設定処理を実行する。設定処理では、曲選択された演奏データを楽譜として表示するための小節情報を設定する。小節情報とは、例えば音部記号や拍子記号、調記号を指定する他、曲選択された演奏データの各小節位置および各段位置を指定する情報である。こうした設定処理を実行した後は、上述のステップSA2に処理を戻し、キー操作入力待ち状態に復帰する。
「再生」を指示するキー操作入力が行われると、ステップSA5の判断結果が「YES」になり、ステップSA11に進む。ステップSA11では、上記ステップSA6にて選択された演奏データを再生する発音処理を実行する。続いて、ステップSA12では、演奏データ再生に応じて弾くべき鍵の位置をガイドする再生時押鍵マーク処理(後述する)を実行する。次いで、ステップSA13では、演奏データ再生が曲終端に達したか、あるいは再生終了指示の有無を判断する。演奏データ再生が曲終端に達するまで、あるいは再生終了の指示があるまでは判断結果は「NO」になり、ステップSA11〜SA13を繰り返す。そして、演奏データ再生が曲終端に達するか、あるいは再生終了が指示されると、ステップSA13の判断結果が「YES」になり、上述のステップSA2に処理を戻し、キー操作入力待ちの状態に復帰する。
b.楽譜情報生成処理の動作
次に、図3を参照して楽譜情報生成処理の動作を説明する。上述したメインルーチンのステップSA8(図2参照)を介して本処理が実行されると、CPU11はステップSB1に処理を進め、演奏情報編集処理を実行する。演奏情報編集処理では、意図的に発音のタイミングをずらす「タメ」や「前ノリ」と呼ばれる演奏表現に基づき生成された演奏データを、選択された演奏情報の内から検出して実用に適した見易い楽譜として表示されるように発音時刻を補正する。次いで、ステップSB2では、トラック変数を初期化する。これにより、先ず右手トラックが指定される。
次に、図3を参照して楽譜情報生成処理の動作を説明する。上述したメインルーチンのステップSA8(図2参照)を介して本処理が実行されると、CPU11はステップSB1に処理を進め、演奏情報編集処理を実行する。演奏情報編集処理では、意図的に発音のタイミングをずらす「タメ」や「前ノリ」と呼ばれる演奏表現に基づき生成された演奏データを、選択された演奏情報の内から検出して実用に適した見易い楽譜として表示されるように発音時刻を補正する。次いで、ステップSB2では、トラック変数を初期化する。これにより、先ず右手トラックが指定される。
続いて、ステップSB3〜SB8では、右手トラックの演奏データ[0]〜[N]について「個別処理(ステップSB4)」、「和音処理(ステップSB5)」、「連桁処理(ステップSB6)」を施した後、続いて左手トラックの演奏データ[0]〜[N]について「個別処理(ステップSB4)」、「和音処理(ステップSB5)」、「連桁処理(ステップSB6)」を施す。
ステップSB4の個別処理では、演奏データ[0]〜[N]を指定するノートポインタを歩進させながら、当該ノートポインタで指定される演奏データ中の発音開始時刻ITimeに音長lGateを加算した時刻と、次の演奏データ中の発音開始時刻ITimeとの時間差から休符が必要か否かを判断し、休符が必要な場合には、上記時間差に対応する休符を決定すると共に、その休符を表示する小節内での表示位置を設定する。休符が不必要な場合には、ノートポインタで指定される演奏データ中の音長lGateに対応するノートタイプ(音符種類)を決定すると共に、そのノートタイプ(音符種類)を表示する小節内での表示位置を決定する。
ステップSB5の和音処理では、演奏データ中から発音開始時刻ITimeが同一のものを和音の音符データとして抽出する。ステップSB6の連桁処理では、演奏データ中から8分音符長以下で連続する音符を探し出し、該当する音符を連桁描画するためのフラグを音符データに付加する。こうして、両トラックの演奏データ[0]〜[N]から楽譜表示用の音符データを派生し終えると、ステップSB3の判断結果が「YES」になり、本処理を終える。
c.演奏情報編集処理の動作
次に、図4を参照して演奏情報編集処理の動作を説明する。上述した楽譜情報生成処理のステップSB1(図3参照)を介して本処理が実行されると、CPU11は図4に図示する演奏情報編集処理を実行する。演奏情報編集処理では、曲選択された演奏情報を構成する演奏データについて小節単位のループ(ステップSC1)および小節中の音単位のループ(ステップSC2)を開始し、曲先頭の小節から順番に小節中の各音毎の拍位置に対する余りを求める(ステップSC3)。そして、ステップSC4では、現在指定されている対象音が「タメ」に相当するか否かを判断する。
次に、図4を参照して演奏情報編集処理の動作を説明する。上述した楽譜情報生成処理のステップSB1(図3参照)を介して本処理が実行されると、CPU11は図4に図示する演奏情報編集処理を実行する。演奏情報編集処理では、曲選択された演奏情報を構成する演奏データについて小節単位のループ(ステップSC1)および小節中の音単位のループ(ステップSC2)を開始し、曲先頭の小節から順番に小節中の各音毎の拍位置に対する余りを求める(ステップSC3)。そして、ステップSC4では、現在指定されている対象音が「タメ」に相当するか否かを判断する。
すなわち、ステップSC4では、対象音の発音時刻が拍の前位置から所定値以下であって、前の音との重なりが無く、且つ前の音の発音時刻から1拍以上離れているかどうかを判断する。対象音がこうした判定条件に合致していれば、判断結果は「YES」になり、ステップSC5に進み、「タメ判定」の対象となる音の発音時刻を拍の前位置に修正した後、ステップSC8に進む。
一方、対象音が判定条件に合致していなければ、上記ステップSC4の判断結果は「NO」になり、ステップSC6に進み、現在指定されている対象音が「前ノリ」に相当するか否かを判断する。すなわち、ステップSC6では、対象音の発音時刻が拍の後位置から所定値以下であって、前の音の消音時刻から一定値以上離れているかどうかを判断する。この判定条件に合致すると、判断結果が「YES」になり、ステップSC7に進み、「前ノリ判定」の対象となる音の発音時刻を拍の後位置に修正した後、ステップSC8に進む。
次いで、ステップSC8では、小節の最終音を処理するまで上記ステップSC2〜SC7を繰り返す。そして、音単位のループにより小節の最終音を処理し終えると、ステップSC9に進み、最後の小節を処理するまで上記ステップSC1〜SC8を繰り返す。そして、小節単位のループにより最後の小節を処理し終えると、演奏情報編集処理を完了させる。
このように、第1実施形態では、意図的に発音のタイミングをずらす「タメ」や「前ノリ」と呼ばれる演奏表現に基づき生成された演奏データを検出し、「タメ」に相当する演奏データについてはその発音時刻を拍の前位置に修正し、「前ノリ」に相当する演奏データについてはその発音時刻を拍の後位置に修正するので、実用に適した見易い楽譜として表示されるように演奏情報を補正することができる。
例えば、意図的に発音のタイミングをずらす「タメ」や「前ノリ」と呼ばれる演奏表現に基づき生成された第1音から第4音の演奏データの発音時刻(ティック)が「20」、「520」、「1000」および「1500」であったとする。これら第1〜第4音を16分音符長でクオンタイズすると、図5(a)に図示する楽譜となり、さらに32分音符長でクオンタイズすると、同図(b)に図示する楽譜となってしまい、いずれも実用に適した見易い楽譜とは言い難いものとなる。そこで、上述した演奏情報編集処理により補正すると、同図(c)に図示するように、「タメ」や「前ノリ」と呼ばれる演奏表現に基づき生成された演奏データであっても、実用に適した見易い楽譜として表示されるように演奏情報を補正し得るようになる。
B.第2実施形態
クオンタイズをいたずらに細かくすると複付点音符や前打音にタイを抱えたような音符が頻出して不自然な楽譜になることも少なくない。そこで、第2実施形態では、演奏者が意図して細かい音符を弾いた部分を検出し、その部分のクオンタイズを細かくする。以下、こうした第2実施形態による演奏情報編集処理の動作について図6〜図8を参照して説明する。
クオンタイズをいたずらに細かくすると複付点音符や前打音にタイを抱えたような音符が頻出して不自然な楽譜になることも少なくない。そこで、第2実施形態では、演奏者が意図して細かい音符を弾いた部分を検出し、その部分のクオンタイズを細かくする。以下、こうした第2実施形態による演奏情報編集処理の動作について図6〜図8を参照して説明する。
上述した第1実施形態と同様、楽譜情報生成処理のステップSB1(図3参照)を介して本処理が実行されると、CPU11は図6に図示する演奏情報編集処理を実行する。演奏情報編集処理では、曲選択された演奏情報を構成する演奏データについて小節単位のループ(ステップSD1)、対象音が有る間のループ(ステップSD2)および参照音が有る間のループ(ステップSD3)を開始する。なお、ここで言う対象音とは処理するべき音を指し、参照音とは条件判定のために参照する対象音の前後の音を指す。
ステップSD4では、対象音と参照音との間が開いているかどうかを判断する。開いていなければ、判断結果は「NO」になり、ステップSD5に進む。ステップSD5では、参照音との重なりは所定値以下であるか否かを判断する。所定値以下ならば、判断結果は「YES」になり、後述のステップSD15に進む。これに対し、参照音との重なりが所定値以下でなければ、上記ステップSD5の判断結果は「NO」になり、ステップSD6に進み、参照音にさらに一つ後の音を代入する。次いで、ステップSD7では、上記ステップSD3に対応し、参照音がある間は上記ステップSD4〜SD6を繰り返すようにループさせ、参照音が無くなると、後述のステップSD15に進む。
さて一方、対象音と参照音との間が開いている場合には、上記ステップSD4の判断結果が「YES」になり、ステップSD8に進む。ステップSD8では、参照音に一つ前の音を代入する。続いて、ステップSD9〜SD14では、参照音音が無くなる迄、ステップSD10〜SD13を繰り返す。すなわち、ステップSD9では、参照音が有る間のループを開始する。次いで、ステップSD10では、対象音と参照音との間が開いているかどうかを判断する。開いていれば、判断結果は「YES」になり、ステップSD11に進み、クオンタイズの単位を小さくした後、後述のステップSD15に進む。
これに対し、対象音と参照音との間が開いていなければ、判断結果は「NO」になり、ステップSD12に進む。ステップSD12では、参照音との重なりは所定値以下であるか否かを判断する。所定値以下ならば、判断結果は「YES」になり、後述のステップSD15に進む。一方、参照音との重なりが所定値以下でなければ、上記ステップSD5の判断結果は「NO」になり、ステップSD13に進み、参照音にさらに一つ後の音を代入する。次いで、ステップSD14では、参照音がある間は上記ステップSD9〜SD14を繰り返すようにループさせ、参照音が無くなると、ステップSD15に進む。
ステップSD15では、対象音のクオンタイズを実行する。次いで、ステップSD16では、対象音に次の音を代入する。そして、ステップSD17では、対象音が有る間は上記ステップSD2以降を繰り返すようにループさせ、参照音が無くなると、ステップSD18に進む。続いて、ステップSD18では、小節が有る間は上記ステップSD1以降を繰り返すようにループさせ、曲の終わりに達して小節が無くなると、本処理を完了させる。
以上のように、第2実施形態では、演奏者が意図して細かい音符を弾いた部分を検出し、その部分のクオンタイズを細かくするので、例えば図7に図示する演奏データの一例について上述した演奏情報編集処理を施すと、図8(a)に図示する楽譜として表現できる。この場合、同図(b)に図示するティック補正無しの楽譜と比較すると、より自然な楽譜となっているのが判る。したがって、実用に適した見易い楽譜となるように演奏情報を補正することが可能になる。
C.第3実施形態
通常の4分音符や8分音符などの偶数系の音符と、3連符や5連符などの奇数系の音符が混在すると、演奏のゆらぎにより間違った割付を行い易く混乱した楽譜が生じる。そこで、第3実施形態による演奏情報編集処理では、まず全体のビート傾向を把握し、それに基づき奇数系の音符を適用するか否かのしきい値を変動させる。以下、こうした第3実施形態による演奏情報編集処理の動作について図9〜図13を参照して説明する。
通常の4分音符や8分音符などの偶数系の音符と、3連符や5連符などの奇数系の音符が混在すると、演奏のゆらぎにより間違った割付を行い易く混乱した楽譜が生じる。そこで、第3実施形態による演奏情報編集処理では、まず全体のビート傾向を把握し、それに基づき奇数系の音符を適用するか否かのしきい値を変動させる。以下、こうした第3実施形態による演奏情報編集処理の動作について図9〜図13を参照して説明する。
前述した第1実施形態と同様、楽譜情報生成処理のステップSB1(図3参照)を介して本処理が実行されると、CPU11は図9に図示する演奏情報編集処理を実行する。演奏情報編集処理は、ステップSE1を介して実行されるビート分析処理と、ステップSE2を介して実行される連符判定処理とから構成される。
ステップSE1を介してビート分析処理が実行されると、CPU11は図10に示すステップSF1に進み、音符単位のループを開始する。次いで、ステップSF2では、拍位置に対する余りを求めて保存する。続いて、ステップSF3では、余りは拍を3等分した位置から所定範囲であるか否かを判断する。この連符判定条件に合致する場合には、判断結果が「YES」になり、ステップSF4に進み、対象音を3分適合音と判定する。一方、連符判定条件に合致しなければ、判断結果は「NO」になり、ステップSF5に進み、対象音を3分非適合音と判定する。
次いで、ステップSF6では、全ての音について処理し終える迄、上記ステップSF1以降を繰り返すループを行わせ、全ての音について処理し終えた場合に次のステップSF7に進む。ステップSF7では、3分適合音/全音数の値、つまり3分適合音率が閾値より大きいか否かを判断する。3分適合音率が閾値より大きければ、判断結果は「YES」になり、後述する連符判定処理で用いる判定値となる3分適合値を高くして本処理を終える。これに対し、3分適合音率が閾値より小さいと、上記ステップSF7の判断結果が「NO」になり、後述する連符判定処理で用いる判定値となる3分適合値を低くして本処理を終える。
こうして、ビート分析処理が完了すると、CPU11はステップSE2を介して図11に図示する連符判定処理のステップSG1に進み、小節単位のループを開始させ、続くステップSG2では拍単位のループを開始させる。そして、ステップSG3では、発音時刻を拍=48で正規化する。次いで、ステップSG4では、連符パターン単位のループを開始させ、続くステップSG5では、音符単位のループを開始させる。なお、連符パターンとは、3連符、6連符および9連符の各パターンを指し、各パターンは連符の発音時刻を含む。
次いで、ステップSG6では、連符パターンと各音の発音時刻とを比較する。すなわち、拍=48で分割された音列に含まれる各音の発音時刻と連符パターンに含まれる各音の発音時刻との差(連符パターンとの時刻差)を求める。そして、ステップSG7では、連符パターンとの時刻差が、上述のビート分析処理で得た3分適合値より大きいか否かを判断する。連符パターンとの時刻差が3分適合値より大きければ、判断結果は「YES」になり、ステップSG8〜SG11において、音符単位、連符パターン単位、拍単位および小節単位のループを行わせ、小節単位のループが完了した時点で本処理を終わらせる。
そして、これら各ループの過程で連符パターンとの時刻差が3分適合値より小さくなると、上記ステップSG7の判断結果が「NO」になり、ステップSG12に進み、適合連符パターンを記憶し、続くステップSG13では、記憶した適合連符パターンに従って発音時刻を正規化して本処理を終える。
したがって、例えば図12に図示する演奏データについて、第3実施形態による演奏情報編集処理にてティック補正を施すと、図13(a)に図示する楽譜として表現できる。この場合、同図(b)に図示するティック補正無しの楽譜と比較すると、より自然な楽譜となっているのが判る。したがって、実用に適した見易い楽譜として表示されるように演奏情報を補正することが可能になる。
D.第4実施形態
次に、図14〜図16を参照して第4実施形態による演奏情報編集処理の動作を説明する。前述した第1実施形態と同様、楽譜情報生成処理のステップSB1(図3参照)を介して本処理が実行されると、CPU11は図14に図示する演奏情報編集処理を実行してステップSH1に進み、音符単位のループを開始する。次いで、ステップSH2では、次式(1)に基づきゲート時間補正値GAを算出する。なお、次式(1)のゲート時間とは、現在指定されている音(演奏データ)の音長を表す。
GA=1−ゲート時間/拍時間 …(1)
次に、図14〜図16を参照して第4実施形態による演奏情報編集処理の動作を説明する。前述した第1実施形態と同様、楽譜情報生成処理のステップSB1(図3参照)を介して本処理が実行されると、CPU11は図14に図示する演奏情報編集処理を実行してステップSH1に進み、音符単位のループを開始する。次いで、ステップSH2では、次式(1)に基づきゲート時間補正値GAを算出する。なお、次式(1)のゲート時間とは、現在指定されている音(演奏データ)の音長を表す。
GA=1−ゲート時間/拍時間 …(1)
続いて、ステップSH3では、算出されたゲート時間補正値GAが「0」より小さいか否かを判断する。ゲート時間補正値GAが「0」より小さければ、判断結果は「YES」になり、ステップSH4に進み、ゲート時間補正値GAをゼロリセットした後、ステップSH5に進む。これに対し、算出されたゲート時間補正値GAが「0」より大きいと、上記ステップSH3の判断結果が「NO」となり、ステップSH5に進む。
ステップSH5では、次式(2)に基づき補正後発音時刻を算出する。
補正後発音時刻=発音時刻+移動平均値×α×ゲート時間補正値GA…(2)
なお、この(2)式において、移動平均値とは後述のステップSH6に基づき算出される誤差の移動平均値、αは所定の定数を表す。次いで、ステップSH6では、上記ステップSH5にて算出される補正後発音時刻から補正前発音時刻を減算して誤差を算出する。次に、ステップSH7では、算出した誤差を移動平均に繰込み、移動平均値を更新する。次いで、ステップSH8では、処理すべき音符が有る間は上記ステップSH1以降を繰り返すようにループさせ、曲の終わりに達して処理すべき音符が無くなると、本処理を完了させる。
補正後発音時刻=発音時刻+移動平均値×α×ゲート時間補正値GA…(2)
なお、この(2)式において、移動平均値とは後述のステップSH6に基づき算出される誤差の移動平均値、αは所定の定数を表す。次いで、ステップSH6では、上記ステップSH5にて算出される補正後発音時刻から補正前発音時刻を減算して誤差を算出する。次に、ステップSH7では、算出した誤差を移動平均に繰込み、移動平均値を更新する。次いで、ステップSH8では、処理すべき音符が有る間は上記ステップSH1以降を繰り返すようにループさせ、曲の終わりに達して処理すべき音符が無くなると、本処理を完了させる。
したがって、例えば図15に図示する一例の演奏データ(入力I:発音時刻)を単純にクオンタイズした場合には、図16(b)に図示する楽譜として表示されるのに対し、上述した第4実施形態による演奏情報編集処理を適用した結果Oは、クオンタイズとの誤差を移動平均していき、これに使用するにあたって短い音符ほど強く適用するようにしたので、図16(a)に図示するように、実用に適した見易い楽譜として表示されるように演奏情報を補正することが可能になる。
10 操作部
11 CPU
12 ROM
13 RAM
14 音源
15 サウンドシステム
16 表示部
17 インタフェース部
11 CPU
12 ROM
13 RAM
14 音源
15 サウンドシステム
16 表示部
17 インタフェース部
上記目的を達成するため、請求項1に記載の発明では、曲を構成する各音及び当該各音の発音時刻からなる演奏データを記憶する演奏データ記憶手段と、前記演奏データ記憶手段に記憶される演奏データに含まれる各音の発音時刻に基づき、当該演奏データのビートパターンを分析する分析手段と、前記分析手段の分析結果に応じて連符判定のためのしきい値を設定するしきい値設定手段と、前記演奏データ記憶手段に記憶される演奏データ中の処理対象となる音列の各発音時刻と連符パターンとの時刻差を算出する時刻差算出手段と、前記しきい値設定手段により設定されるしきい値と前記時刻差算出手段により算出される時刻差とに基づいて前記連符パターンを採用するか否かを判別する判別手段と前記判別手段が連符パターンを採用すると判別された場合、当該連符パターンにしたがって、前記処理対象となる音列の各発音時刻を補正する発音時刻補正手段とを具備することを特徴とする。
請求項2に記載の発明では、曲を構成する各音及び当該各音の発音時刻からなる演奏データを記憶する演奏データ記憶手段を有する演奏情報補正装置として用いられるコンピュータに、前記演奏データ記憶手段に記憶される演奏データに含まれる各音の発音時刻に基づき、当該演奏データのビートパターンを分析する分析ステップと、前記分析ステップの分析結果に応じて連符判定のためのしきい値を設定するしきい値設定ステップと、前記演奏データ記憶手段に記憶される演奏データ中の処理対象となる音列の各発音時刻と連符パターンとの時刻差を算出する時刻差算出ステップと、前記設定されたしきい値と前記算出された時刻差とに基づいて前記連符パターンを採用するか否かを判別する判別ステップと、前記連符パターンを採用すると判別された場合、当該連符パターンにしたがって、前記処理対象となる音列の各発音時刻を補正する発音時刻補正ステップとを実行させることを特徴とする。
Claims (8)
- 曲を構成する各音を表す演奏データを記憶する演奏データ記憶手段と、
前記演奏データ記憶手段に記憶される演奏データの発音時刻を検出する発音時刻検出手段と、
前記発音時刻検出手段により検出される発音時刻を補正するか否かを判別する補正判別手段と、
前記補正判別手段が発音時刻を補正すると判別した場合、前記発音時刻検出手段により検出された発音時刻を補正する発音時刻補正手段と
を具備することを特徴とする演奏情報補正装置。 - 前記補正判別手段は、前記発音時刻検出手段により検出される発音時刻が拍の境界から所定値以内であり、前後の音との重なりが所定値以下であるときに補正すると判別することを特徴とする請求項1記載の演奏情報補正装置。
- 前記補正判別手段は、前記発音時刻検出手段により検出される発音時刻が拍の境界から所定値以内であり、前後の音との重なりが無いときに補正すると判別することを特徴とする請求項1記載の演奏情報補正装置。
- 前記補正判別手段は、
前記演奏データ記憶手段に記憶される演奏データのビートパターンを分析する分析手段と、
前記分析手段の分析結果に応じて連符判定のためのしきい値を設定するしきい値設定手段と、
前記演奏データ記憶手段に記憶される演奏データ中の処理対象となる音列と連符パターンとの時刻差を算出する時刻差算出手段と、
前記しきい値設定手段により設定されるしきい値と前記時刻差算出手段により算出される時刻差とに基づいて連符パターンを採用するか否かを判別する判別手段と
を具備することを特徴とする請求項1記載の演奏情報補正装置。 - 曲を構成する各音を表す演奏データの発音時刻を検出する発音時刻検出処理と、
前記発音時刻検出処理により検出される発音時刻を補正するか否かを判別する補正判別処理と、
前記補正判別処理が発音時刻を補正すると判別した場合、前記発音時刻検出処理にて検出された発音時刻を補正する発音時刻補正処理と
をコンピュータで実行させることを特徴とする演奏情報補正プログラム。 - 前記補正判別処理は、前記発音時刻検出処理により検出される発音時刻が拍の境界から所定値以内であり、前後の音との重なりが所定値以下であるときに補正すると判別することを特徴とする請求項5記載の演奏情報補正プログラム。
- 前記補正判別処理は、前記発音時刻検出処理により検出される発音時刻が拍の境界から所定値以内であり、前後の音との重なりが無いときに補正すると判別することを特徴とする請求項5記載の演奏情報補正プログラム。
- 前記補正判別処理は、
曲を構成する各音を表す演奏データのビートパターンを分析する分析処理と、前記分析処理の分析結果に応じて連符判定のためのしきい値を設定するしきい値設定処理と、
曲を構成する各音を表す演奏データ中の処理対象となる音列と連符パターンとの時刻差を算出する時刻差算出処理と、
前記しきい値設定処理にて設定されるしきい値と前記時刻差算出処理にて算出される時刻差とに基づいて連符パターンを採用するか否かを判別する判別処理とを具備することを特徴とする請求項5記載の演奏情報補正プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012093569A JP5413484B2 (ja) | 2012-04-17 | 2012-04-17 | 演奏情報補正装置および演奏情報補正プログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012093569A JP5413484B2 (ja) | 2012-04-17 | 2012-04-17 | 演奏情報補正装置および演奏情報補正プログラム |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006238833A Division JP5163928B2 (ja) | 2006-09-04 | 2006-09-04 | 演奏情報補正装置および演奏情報補正プログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2012168549A true JP2012168549A (ja) | 2012-09-06 |
| JP5413484B2 JP5413484B2 (ja) | 2014-02-12 |
Family
ID=46972696
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012093569A Expired - Fee Related JP5413484B2 (ja) | 2012-04-17 | 2012-04-17 | 演奏情報補正装置および演奏情報補正プログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5413484B2 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5799695A (en) * | 1980-11-20 | 1982-06-21 | Ricoh Watch | Keyboard input coding device |
| JP2006267666A (ja) * | 2005-03-24 | 2006-10-05 | Yamaha Corp | 音楽情報分析及び表示装置及びプログラム |
-
2012
- 2012-04-17 JP JP2012093569A patent/JP5413484B2/ja not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5799695A (en) * | 1980-11-20 | 1982-06-21 | Ricoh Watch | Keyboard input coding device |
| JP2006267666A (ja) * | 2005-03-24 | 2006-10-05 | Yamaha Corp | 音楽情報分析及び表示装置及びプログラム |
Non-Patent Citations (2)
| Title |
|---|
| JPN6013046842; 南高純一: '演奏情報からの,楽譜固有情報抽出' 情報処理学会研究報告 2006-MUS-66, Vol.2006, No.90, 20060807, pp.129-133, 社団法人情報処理学会 * |
| JPN6013046844; 大槻知史,外3名: 'HMMと音符n-gramを用いた音楽リズム認識' 情報処理学会研究報告 2001-MUS-42, Vol.2001, No.103, 20011026, pp.61-68, 社団法人情報処理学会 * |
Also Published As
| Publication number | Publication date |
|---|---|
| JP5413484B2 (ja) | 2014-02-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7482529B1 (en) | Self-adjusting music scrolling system | |
| JP5440961B2 (ja) | 演奏教習装置、演奏教習方法およびプログラム | |
| KR20090041392A (ko) | 악곡 연습 지원 장치, 악곡 연습 지원 장치의 제어 방법, 악곡 연습 지원 장치를 제어하는 제어 방법을 컴퓨터로 실행시키는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체 | |
| CN104282297B (zh) | 乐音产生装置、电子乐器以及乐音产生方法 | |
| CN113711302A (zh) | 音频信息播放方法及装置、音频信息生成方法及装置和程序 | |
| JP2025170154A (ja) | データ出力方法、プログラム、データ出力装置および電子楽器 | |
| JP5163928B2 (ja) | 演奏情報補正装置および演奏情報補正プログラム | |
| JP4201679B2 (ja) | 波形発生装置 | |
| JP5413484B2 (ja) | 演奏情報補正装置および演奏情報補正プログラム | |
| JP3684774B2 (ja) | 演奏指示装置及びプログラムを記録した媒体 | |
| JP5029258B2 (ja) | 演奏練習支援装置および演奏練習支援処理のプログラム | |
| JP6417663B2 (ja) | 電子楽器、電子楽器の制御方法およびプログラム | |
| JP6528752B2 (ja) | 楽音再生装置、楽音再生方法、プログラムおよび電子楽器 | |
| JP5145875B2 (ja) | 演奏練習支援装置および演奏練習支援処理のプログラム | |
| JP6816581B2 (ja) | 電子管楽器、その電子管楽器の制御方法及びその電子管楽器用のプログラム | |
| JP3809789B2 (ja) | 演奏案内装置および演奏案内方法 | |
| JP4697666B2 (ja) | 楽譜表示装置および楽譜表示プログラム | |
| JP4547719B2 (ja) | 楽譜表示装置および楽譜表示プログラム | |
| JP2007316666A (ja) | 楽譜表示装置および楽譜表示プログラム | |
| JP4054913B2 (ja) | 演奏誘導装置および演奏誘導処理のプログラム | |
| JP2007316416A (ja) | カラオケ装置およびカラオケ処理プログラム | |
| JP3931551B2 (ja) | 演奏装置および演奏方法 | |
| JP2007178640A (ja) | 楽譜表示装置および楽譜表示プログラム | |
| JP2007025411A (ja) | 楽譜表示装置および楽譜表示プログラム | |
| JP2006337449A (ja) | Midiファイル生成方法、および、midiファイル生成装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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: 20131015 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131028 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5413484 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |