JP2010271436A - 演奏制御装置、曲データ編集装置、およびプログラム - Google Patents
演奏制御装置、曲データ編集装置、およびプログラム Download PDFInfo
- Publication number
- JP2010271436A JP2010271436A JP2009121579A JP2009121579A JP2010271436A JP 2010271436 A JP2010271436 A JP 2010271436A JP 2009121579 A JP2009121579 A JP 2009121579A JP 2009121579 A JP2009121579 A JP 2009121579A JP 2010271436 A JP2010271436 A JP 2010271436A
- Authority
- JP
- Japan
- Prior art keywords
- data
- performance control
- control track
- event
- event data
- 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.)
- Withdrawn
Links
Images
Landscapes
- Auxiliary Devices For Music (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
【課題】演奏者が鍵盤の押鍵によって曲データの再生のテンポを制御する演奏制御において、演奏者が飽きることなくその鍵盤を使った演奏を楽しめるようにする。
【手段】演奏制御装置10のCPU20は、曲データmdにおけるN個の演奏制御トラックデータの中から拍を実行タイミングとする「ノートオン」のイベントデータを最も多く含む演奏制御トラックデータを選択する。次に、その選択した演奏制御トラックデータの複製に基づいて、「ノートオン」のイベントデータと単位演奏時間Tに相当するティック数のデルタタイムを交互に配した押鍵案内制御トラックデータを生成する。そして、押鍵案内制御トラックデータにおけるイベントデータに従って電子ピアノ50のLED3−i(i=1〜88)を発光させ、演奏制御トラックデータにおけるイベントデータに従って音源53から演奏音を発音させる。
【選択図】図1
Description
本発明は、押鍵操作によって曲データの再生の態様を制御する技術に関する。
曲データを演奏操作子の操作に合わせたテンポで再生する自動演奏システムの中には鍵盤を演奏操作子としているものがある。たとえば、特許文献1に開示された合奏システムは、鍵盤を各々有する複数の演奏端末とそれらの演奏端末と接続されるコントローラとから構成されており、コントローラは、各演奏端末に割り当てた演奏パートの曲データの再生のテンポをそれらの演奏端末における押鍵のテンポに合わせて制御する。この合奏システムにおける各演奏端末は、各々の鍵盤における鍵のいずれかが押鍵されると操作情報をコントローラに送信する。コントローラは、各演奏端末に割り当てた演奏パートの各々の曲データであるMIDI(Musical Instrument Digital Interface)イベントデータ列を記憶しており、各演奏端末から操作情報が送信されるたびそれらの演奏パートの曲データをなすMIDIイベントデータを順に読みだして音源に出力する。
しかしながら、特許文献1に開示された技術の場合、コントローラは、演奏端末の鍵が押鍵されればその鍵がどれであっても曲の再生を進行させるようになっている。よって、演奏者は、自らの演奏パートの音の音名と対応する正しい鍵を押鍵したか否かにかかわらず同じように曲を進行させることができてしまい、その演奏端末を使った曲の演奏にすぐ飽きてしまうという問題があった。
本発明は、このような背景の下に案出されたものであり、演奏者の鍵盤の押鍵によって曲データの再生のテンポを制御する演奏制御において、演奏者が飽きることなくその鍵盤を使った演奏を楽しめるようにすることを目的とする。
本発明は、このような背景の下に案出されたものであり、演奏者の鍵盤の押鍵によって曲データの再生のテンポを制御する演奏制御において、演奏者が飽きることなくその鍵盤を使った演奏を楽しめるようにすることを目的とする。
本発明は、音源の制御を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した一又または複数の演奏制御トラックデータを含む曲データを記憶する曲データ記憶手段と、前記曲データに含まれる一又は複数の演奏制御トラックデータの中から一又は複数の演奏制御トラックデータを選択し、選択した演奏制御トラックデータにおける一連のイベントデータの中から拍を実行タイミングとするイベントデータを探索し、探索したイベントデータに基づいて、複数の鍵のうち押鍵を要する鍵を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した押鍵案内制御トラックデータを生成する曲データ編集手段と、前記演奏制御トラックデータおよび前記押鍵案内制御トラックデータの各々のイベントデータを順に出力する手段であって、前記押鍵案内制御トラックデータのイベントデータを出力した後、そのイベントデータによって押鍵を指示した鍵が押鍵された場合に前記演奏制御トラックデータおよび前記押鍵案内制御トラックデータの次のイベントデータを出力する演奏制御手段とを具備する演奏制御装置を提供する。
この演奏制御装置は、押鍵案内制御トラックデータのイベントデータを取得した場合はそのイベントデータの指示に従って各鍵盤と各々対応する発光体を発光させ、演奏制御トラックデータのイベントデータを取得した場合はそのイベントデータの指示に従って音源から音波形を発生させる第1の処理と、各鍵のうち押鍵された鍵を演奏制御装置に通知する第2の処理とを行う電子楽器とともに利用する。そして、演奏制御装置は、曲データに含まれる一又は複数の演奏制御トラックデータの中から選択した演奏制御トラックデータに基づいて、押鍵案内制御トラックデータを生成し、この押鍵案内制御トラックデータと元の曲データに含まれる演奏制御トラックデータのイベントデータを電子楽器へ順に出力し、電子楽器における発光体の発光と音波形の発生とを制御する。これにより、演奏者は、鍵盤における各鍵のうちの正しい鍵を1拍間隔で押鍵しさえすれば曲を進行させることができ、鍵盤を使った演奏を飽きることなく楽しむことができる。
以下、図面を参照し、この発明の実施の形態を説明する。
図1は、この発明の一実施形態である演奏制御装置10を含む演奏システムを示すブロック図である。この演奏システムは、本実施形態による演奏制御装置10と電子ピアノ50とにより構成されている。
図1は、この発明の一実施形態である演奏制御装置10を含む演奏システムを示すブロック図である。この演奏システムは、本実施形態による演奏制御装置10と電子ピアノ50とにより構成されている。
電子ピアノ50の筐体の上面には88個の鍵1−i(i=1〜88)が配列されており、鍵1−i(i=1〜88)の各々には、「1」〜「88」の鍵番号iが割り振られている。鍵1−i(i=1〜88)の各々の下には、押鍵検出センサとしての光センサ2−i(i=1〜88)が、各々の前(演奏者からみて奥)には、押鍵すべき鍵を演奏者に知らせるためのLED3−i(i=1〜88)が設けられている。各光センサ2−iは、各々の真上の鍵1−iに向かって光を照射するとともに鍵1−iで反射した反射光を受光し、その反射光の受光量を示すアナログ信号を制御部55に出力する。各LED3−iは、制御部55から駆動信号が出力されている間、発光する。
音源53は、MIDI音源である。この音源53は、当該音源53の発音チャネルch(ch=1〜127)のいずれかを供給先とするMIDIのイベントデータを受け取り、そのイベントデータの指示に従って、該当の発音チャネルchの音色の音波形を生成してスピーカ54へ出力する。
本実施形態では、この音源53の発音チャネルch(ch=1〜127)のうち発音チャネル127を供給先とするイベントデータを、押鍵を要する鍵1−iを指示するイベントデータとして取り扱う。
本実施形態では、この音源53の発音チャネルch(ch=1〜127)のうち発音チャネル127を供給先とするイベントデータを、押鍵を要する鍵1−iを指示するイベントデータとして取り扱う。
制御部55は、電子ピアノ50の制御中枢である。この制御部55は、ROM58、RAM59、およびCPU60を有する。
ROM58は、制御プログラム62を記憶した読み出し専用メモリである。CPU60は、RAM59をワークエリアとして利用しつつ、制御プログラム62を実行する。
ROM58は、制御プログラム62を記憶した読み出し専用メモリである。CPU60は、RAM59をワークエリアとして利用しつつ、制御プログラム62を実行する。
制御プログラム62は、以下に示す2つの処理をCPU60に実行させるプログラムである。
a1.押鍵検出処理
これは、光センサ2−i(i=1〜88)から出力されるアナログ信号に基づいて押鍵された鍵1−iを検出し、押鍵された鍵1−iの鍵番号iをノートナンバNumに変換し、そのノートナンバNumをインターフェース51を介して演奏制御装置10に出力する処理である。
b1.LED・音源制御処理
これは、演奏制御装置10から各発音チャネルch(ch=1〜127)を供給先とするイベントデータをインターフェース52を介して取得し、発音チャネル127を供給先とするイベントデータを取得したときはそのイベントデータに基づいてLED3−i(i=1〜88)の発光を制御し、発音チャネルch(ch≠127)を供給先とするイベントデータを取得したときはそのイベントデータに基づいて音源53から演奏音を発音させる処理である。
a1.押鍵検出処理
これは、光センサ2−i(i=1〜88)から出力されるアナログ信号に基づいて押鍵された鍵1−iを検出し、押鍵された鍵1−iの鍵番号iをノートナンバNumに変換し、そのノートナンバNumをインターフェース51を介して演奏制御装置10に出力する処理である。
b1.LED・音源制御処理
これは、演奏制御装置10から各発音チャネルch(ch=1〜127)を供給先とするイベントデータをインターフェース52を介して取得し、発音チャネル127を供給先とするイベントデータを取得したときはそのイベントデータに基づいてLED3−i(i=1〜88)の発光を制御し、発音チャネルch(ch≠127)を供給先とするイベントデータを取得したときはそのイベントデータに基づいて音源53から演奏音を発音させる処理である。
演奏制御装置10の曲データ記憶メモリ17は、曲データmdを記憶したメモリである。曲データmdは、合奏曲の総譜を構成するN個のパート譜の各々に従った音源53の制御手順をSMF(Standard MIDI File)形式で表したデータである。曲データmdのデータ構造について、図2を参照して説明する。図2に示すように、曲データmdは、N個の各パート譜と各々対応する演奏制御トラックデータであるN個のトラックデータTrackにより構成される。曲データmdを構成する各トラックデータTrackには、「1」〜「N」のトラック番号が割り当てられている。
曲データmdにおけるN個のトラックデータTrackは、MIDIのイベントデータを時系列的に並べるとともに、各イベントデータの前にそのイベントデータの実行タイミングを示すタイミングデータであるデルタタイムを付加したシーケンスデータである。
より具体的に説明すると、デルタタイムは、直前のイベントデータの実行タイミングとその直後のイベントデータの実行タイミングの間の時間差をティック数により示すデータである。
より具体的に説明すると、デルタタイムは、直前のイベントデータの実行タイミングとその直後のイベントデータの実行タイミングの間の時間差をティック数により示すデータである。
イベントデータは、音源53の制御を指示するデータであり、チャネル番号、イベント種、およびパラメータの3種類のデータから構成される。トラック番号「1」、「2」…「N」の各トラックデータTrackにおけるイベントデータは、各々のトラック番号と同じ数である「1」、「2」…「N」の各チャネル番号ch(ch=1〜N)を有する。
イベント種は、実行すべき音源53の制御の種類を示し、パラメータは、その制御の具体的な内容を示す。たとえば、イベントデータのイベント種がある音名に相当するピッチの音波形を発生させる「ノートオン」である場合、そのパラメータは、音名を指定するノートナンバNum(1≦Num≦127)、そのレベルを指定するベロシティVel(1≦Vel≦127)、およびその発生時間長を指定するゲートタイムGtm(1≦Gtm)となる。イベントデータの種類は、「ノートオン」のほかにも、ある時間長をかけて音波形のレベルを変化させる「エクスプレッション」やある時間長をかけて音波形のピッチを変化させる「ピッチベンド」などの様々なものがあり、そのパラメータも各々の種類に応じて変わる。
イベント種は、実行すべき音源53の制御の種類を示し、パラメータは、その制御の具体的な内容を示す。たとえば、イベントデータのイベント種がある音名に相当するピッチの音波形を発生させる「ノートオン」である場合、そのパラメータは、音名を指定するノートナンバNum(1≦Num≦127)、そのレベルを指定するベロシティVel(1≦Vel≦127)、およびその発生時間長を指定するゲートタイムGtm(1≦Gtm)となる。イベントデータの種類は、「ノートオン」のほかにも、ある時間長をかけて音波形のレベルを変化させる「エクスプレッション」やある時間長をかけて音波形のピッチを変化させる「ピッチベンド」などの様々なものがあり、そのパラメータも各々の種類に応じて変わる。
図2の例では、ピアノのパート譜の一部が最上部に例示され、その下にトラック番号「1」のトラックデータTrackの一部の内容が示されている。図示のパート譜の最初の一小節では、音名C4(ノートナンバNum=60)、音名E4(ノートナンバNum=62)、音名G4(ノートナンバNum=64)の3つの4分音符からなる和音が最初に記述され、その和音の後に休符を挟むことなく音名C4の4分音符が記述されている。このため、トラック番号「1」のトラックデータTrackの最初の部分の内容は、「デルタタイム=0」→「イベントデータ=チャネル番号:1,イベント種:ノートオン,Num:60,Vel:100,Gtm:480」→「デルタタイム=0」→「イベントデータ=チャネル番号:1,イベント種:ノートオン,Num:62,Vel:100,Gtm:480」→「デルタタイム=0」→「イベントデータ=チャネル番号:1,イベント種:ノートオン,Num:64,Vel:100,Gtm:480」→「デルタタイム=480」→「イベントデータ=チャネル番号:1,イベント種:ノートオン,Num:60,Vel:100,Gtm:480」となる。
図1において、制御部15は、演奏制御装置10の制御中枢である。制御部15は、ROM18、RAM19、およびCPU20を有する。
ROM18は、制御プログラム22を記憶した読み出し専用メモリである。CPU20は、RAM19をワークエリアとして利用しつつ、制御プログラム22を実行する。
ROM18は、制御プログラム22を記憶した読み出し専用メモリである。CPU20は、RAM19をワークエリアとして利用しつつ、制御プログラム22を実行する。
制御プログラム22は、以下に示す2種類の処理をCPU20に実行させるプログラムである。
a2.曲データ編集処理
これは、曲データmdに含まれるN個の演奏制御トラックデータの中から1つの演奏制御トラックデータを選択し、選択した演奏制御トラックデータにおける一連のイベントデータの中から拍を実行タイミングとするイベントデータを探索し、探索したイベントデータに基づいて、複数の鍵1−i(i=1〜88)のうち押鍵を要する鍵1−iを指示するイベントデータとそれらのイベントデータの実行タイミングを指示するデルタタイムとを配列した押鍵案内制御トラックデータを生成する処理である。
b2.演奏制御処理
これは、押鍵案内制御トラックデータにおける一連のイベントデータを電子ピアノ50へ順に出力して光センサ2−iを発光させるとともに、光センサ2−iによって押鍵が指示された鍵1−iが押鍵される度に、演奏制御トラックデータにおける指定された演奏時間(以下、「単位演奏時間T」という)分のイベントデータを電子ピアノ50へ出力して音源53から各パート譜の演奏音を発音させる処理である。
a2.曲データ編集処理
これは、曲データmdに含まれるN個の演奏制御トラックデータの中から1つの演奏制御トラックデータを選択し、選択した演奏制御トラックデータにおける一連のイベントデータの中から拍を実行タイミングとするイベントデータを探索し、探索したイベントデータに基づいて、複数の鍵1−i(i=1〜88)のうち押鍵を要する鍵1−iを指示するイベントデータとそれらのイベントデータの実行タイミングを指示するデルタタイムとを配列した押鍵案内制御トラックデータを生成する処理である。
b2.演奏制御処理
これは、押鍵案内制御トラックデータにおける一連のイベントデータを電子ピアノ50へ順に出力して光センサ2−iを発光させるとともに、光センサ2−iによって押鍵が指示された鍵1−iが押鍵される度に、演奏制御トラックデータにおける指定された演奏時間(以下、「単位演奏時間T」という)分のイベントデータを電子ピアノ50へ出力して音源53から各パート譜の演奏音を発音させる処理である。
操作部13は、単位演奏時間指定操作を受け付ける。この単位演奏時間指定操作では、演奏者は、単位演奏時間Tの長さを音符の種類とその個数とによって指定する。たとえば、光センサ2−iの発光によって指示された鍵1−iが押鍵される度に各パート譜における4分音符1つ分の演奏音を発音させたい場合は「4分音符*1」と指定し、4分音符2つ分の演奏音を発音させたい場合は「4分音符*2」と指定する。
次に、本実施形態の動作を説明する。演奏制御装置10のCPU20は、操作部13の操作により、処理対象である曲データmdが指定され、曲データ編集処理の実行指示が与えられたとき、図3に示す一連の処理を実行する。
図3において、CPU20は、トラック番号「1」〜「N+1」と各々対応する記憶領域TRn(n=1〜N+1)をRAM19に確保するとともに、曲データ記憶メモリ17の曲データmdにおけるN個のトラックデータTrackを同メモリ17から取得し、取得したN個のトラックデータTrackをRAM19の記憶領域TR2〜TRN+1に各々格納する(S100)。
図3において、CPU20は、トラック番号「1」〜「N+1」と各々対応する記憶領域TRn(n=1〜N+1)をRAM19に確保するとともに、曲データ記憶メモリ17の曲データmdにおけるN個のトラックデータTrackを同メモリ17から取得し、取得したN個のトラックデータTrackをRAM19の記憶領域TR2〜TRN+1に各々格納する(S100)。
次に、CPU20は、トラックデータ選択処理を行う(S110)。トラックデータ選択処理は、記憶領域TR2〜TRN+1に格納したトラックデータTrackの各々について、拍のタイミングに位置する「ノートオン」のイベントデータの数を集計し、記憶領域TR2〜TRN+1に格納したトラックデータTrackのうち集計した数が最も多かったものを選択する処理である。
ある1つの記憶領域TRnに格納された1つのトラックデータTrackに着目すると、このトラックデータ選択処理では、CPU20は、記憶領域TRnのトラックデータTrackの先頭からデルタタイムを順次累算した累算値ACMkを求めていき、その累算値ACMkが単位演奏時間Tの整数倍の長さに相当するティック数と一致する度に、その累算値ACMkに最後に加えたデルタタイムの直後の「ノートオン」のイベントデータを拍のタイミングに位置する「ノートオン」のイベントデータであると判定し、カウント値CNTkを1だけ増加する。この処理をトラックデータTrackの最後のデルタタイムの累算を終えるまで継続し、最後のデルタタイムを累算し終えた時点におけるカウント値CNTkを、当該トラックデータTrackにおける拍のタイミングに対応した「ノートオン」のイベントデータの個数とする。このような処理を、記憶領域TR2〜TRN+1の各トラックデータTrackについて、実行する。そして、トラックデータ選択処理では、CPU20は、記憶領域TR2〜TRN+1に格納したトラックデータTrackのうち「ノートオン」のイベントデータの最終的なカウント値CNTkが最も多かったものを選択する。
次に、CPU20は、ステップS110で選択したトラックデータTrackの複製をRAM19の記憶領域TR1に格納し(S120)、非ノートオンイベント消去処理を行う(S130)。非ノートオンイベント消去処理は、記憶領域TR1における「ノートオン」でないイベントデータのすべてを消去する処理である。非ノートオンイベント消去処理では、CPU20は、図4に示すように、記憶領域TR1における「ノートオン」でないイベントデータの直前のデルタタイムをその直後のデルタタイムに加算するとともに、そのイベントデータと直前のデルタタイムを消去する。
次に、CPU20は、ノートオンイベント修正処理を行う(S140)。ノートオンイベント修正処理は、記憶領域TR1における「ノートオン」のイベントデータの中から各拍のタイミングに対応した「ノートオン」のイベントデータを探索し、ある拍のタイミングに対応した「ノートオン」のイベントデータが複数ある場合にはそれらのうち1つを除いた残りのイベントデータを消去し、ある拍のタイミングに対応した「ノートオン」のイベントデータが欠けている場合にはその欠けている拍のタイミングに対応した「ノートオン」のイベントデータを補う処理である。
より具体的に説明すると、ノートオンイベント修正処理では、CPU20は、ある拍のタイミングに対応した「ノートオン」のイベントデータの数が2つ以上である場合、それらの複数のイベントデータのうち2番目以降に記述されたイベントデータと各々の直前のデルタタイムを消去する。また、ノートオンイベント修正処理では、CPU20は、ある拍のタイミングに対応した「ノートオン」のイベントデータの数が0である場合、図5に示すように、その拍の1つ前の拍のタイミングに対応した「ノートオン」のイベントデータの後に、単位演奏時間Tと同じ長さのティック数を示すデルタタイム(図5の例では、T=480ティックとする)と当該1つ前の拍のタイミングに対応した「ノートオン」のイベントデータの複製を挿入し、挿入したイベントデータの直後のデルタタイムから単位演奏時間Tに相当するティック数を減算する。
次に、CPU20は、記憶領域TR2〜TRN+1における最初のデルタタイムを単位演奏時間Tの半分の時間だけ長いティック数を示すデルタタイムに書き換える(S150)。すなわち、記憶領域TR2〜TRN+1における一連のイベントデータの各々の実行タイミングを記憶領域TR1における一連のイベントデータの各々の実行タイミングに対して半拍分だけ遅らせる操作を行う。
CPU20は、記憶領域TR1におけるすべてのイベントデータのチャネル番号を、音源53の発音チャネル127のチャネル番号である「127」に置き換える(S160)。
CPU20は、記憶領域TR1におけるすべてのイベントデータのチャネル番号を、音源53の発音チャネル127のチャネル番号である「127」に置き換える(S160)。
以上の処理が終了すると、演奏者は、操作部13の操作により、演奏制御処理の実行を指示する。演奏制御装置10のCPU20は、演奏制御処理の実行指示が与えられたとき、1ティックの時間長Tickの初期値(たとえば、この初期値を1/480(秒)とする)を決定する。以後、CPU20は、時間長Tickが経過する度にティック数をカウントし、このティック数を用いて記憶領域TRn(n=1〜N+1)の各々におけるデルタタイムの経過を監視しつつ図6に示す一連の処理を実行する。
図6において、CPU20は、電子ピアノ50におけるLED3−i(i=1〜88)のうち最初に押鍵すべき鍵1−iと対応するLED3−iを発光させる(S200)。より具体的には、CPU20は、記憶領域TR1における一連のイベントデータ(発音チャネル127を供給先とするイベントデータ)のうちの最初のイベントデータをその直前のデルタタイムが示す実行タイミングに合わせて電子ピアノ50に供給する。
電子ピアノ50のCPU60は、演奏制御装置10から発音チャネル127を供給先とするイベントデータを取得すると、そのイベントデータからノートナンバNumとゲートタイムGtmを取り出し、ゲートタイムGtmが示す時間長の間、ノートナンバNumを変換した鍵番号の鍵1−iと対応するLED3−iへ駆動信号を出力し、LED3−iを発光させる。
演奏者は、LED3−i(i=1〜88)のうちのいずれかのLED3−iが発光すると、そのLED3−iが指示する鍵1−iを押鍵する。電子ピアノ50のCPU60は、鍵1−i(i=1〜88)のうちのいずれかが押鍵されたとき、押鍵された鍵1−iの下の光センサ2−iから出力されるアナログ信号に基づいてその鍵1−iを検出し、検出した鍵1−iの鍵番号を変換したノートナンバNumをインターフェース51を介して演奏制御装置10へ返信する。
CPU20は、発音チャネル127を供給先とするイベントデータを電子ピアノ50へ供給した後、押鍵待ちステートに遷移する(S210)。押鍵待ちステートでは、CPU20は、ティック数のカウントを中断し、発音チャネル127を供給先として電子ピアノ50へ供給したイベントデータのノートナンバNumと同じノートナンバNumが演奏制御装置10から返信されるのを待つ。そして、CPU20は、電子ピアノ50へ出力したイベントデータのものと同じノートナンバNumが返信されると、ティック数のカウントを再開し、テンポ調整処理を行う(S220)。
テンポ調整処理は、光センサ2−iの最新の発光によって押鍵が指示された鍵1−iを演奏者が押鍵した時刻とその前の発光によって押鍵が指示された鍵1−iを演奏者が押鍵した時刻との時間差を求め、この時間差と単位演奏時間Tに相当するティック数とが等しくなるように1ティックの時間長Tickを伸縮する処理である。ここで、演奏制御処理が開始された直後は光センサ2−iの発光回数が1回であるため、鍵1−iを演奏者が押鍵した時刻の時間差が求まらない。よって、CPU20は、演奏制御処理が開始された後の最初のステップS220をスキップし、時間長Tickの初期値(1/480(秒))を維持したまま次のステップに進み、次回以降のステップS220においてテンポ調整処理による時間長Tickの更新を行う。
CPU20は、記憶領域TR2〜TRN+1における一連のイベントデータの中に未だ電子ピアノ50へ供給されていないイベントデータがあるかを判断する(S230)。
CPU20は、ステップS230において、記憶領域TR2〜TRN+1におけるすべてのイベントデータを電子ピアノ50へ供給したと判断した場合(S230:No)、演奏制御処理を終了する。また、CPU20は、ステップS230において、未だ電子ピアノ50へ供給されていないイベントデータがあると判断した場合(S230:Yes)、ステップS240とステップS250を実行してからステップS210に戻り、以降の処理を繰り返す。
CPU20は、ステップS230において、記憶領域TR2〜TRN+1におけるすべてのイベントデータを電子ピアノ50へ供給したと判断した場合(S230:No)、演奏制御処理を終了する。また、CPU20は、ステップS230において、未だ電子ピアノ50へ供給されていないイベントデータがあると判断した場合(S230:Yes)、ステップS240とステップS250を実行してからステップS210に戻り、以降の処理を繰り返す。
ステップS240において、CPU20は、電子ピアノ50における音源53に演奏音を発音させる(S240)。より具体的に説明すると、CPU20は、演奏制御処理が開始された後の最初のステップS240では、記憶領域TR2〜TRN+1における一連のイベントデータ(発音チャネルch(ch≠127)を供給先とするイベントデータ)のうちの最初の単位演奏時間T分のイベントデータをそれらの直前のデルタタイムが示す実行タイミングに合わせて電子ピアノ50へ供給する。そして、次回以降のステップS240では、記憶領域TR2〜TRN+1における後続のイベントデータへと処理対象を単位演奏時間T分ずつシフトさせながら同様の処理を行う。
電子ピアノ50のCPU60は、演奏制御装置10から発音チャネルch(ch≠127)を供給先とするイベントデータを取得すると、そのイベントデータを音源53へそのまま転送し、音源53にそのイベントデータの指示に従った発音チャネルch(ch≠127)の音を発生させる。
ステップS250において、CPU60は、電子ピアノ50におけるLED3−i(i=1〜88)のうち次に押鍵すべき鍵1−iと対応するLED3−iを発光させる(S250)。より具体的に説明すると、CPU20は、演奏制御処理が開始された後の最初のステップS250では、記憶領域TR1における一連のイベントデータ(発音チャネル127を供給先とするイベントデータ)のうち2番目のイベントデータをその直前のデルタタイムが示す実行タイミングに合わせて電子ピアノ50へ供給する。そして、次回以降のステップS250では、記憶領域TR1における後続のイベントデータへと処理対象を1つずつシフトさせながら同様の処理を行う。
電子ピアノ50のCPU60が、演奏制御装置10から発音チャネル127を供給先とするイベントデータを取得する度にそのノートナンバNumを変換した鍵番号の鍵1−iの前のLED3−iを発光させることは、上述した通りである。
CPU60は、ステップS210→ステップS220→ステップS230→ステップS240→ステップS250→ステップS210というループ処理をステップS230の判断結果が「No」となるまで繰り返す。
図7に示すように、このループ処理が繰り返されている間、電子ピアノ50では、記憶領域TR1における一連のイベントデータをノートナンバNumを変換した鍵番号iのLED−iが順に発光する。そして、LED−iの発光によって押鍵が指示された鍵1−iを演奏者が押鍵する度に、記憶領域TR2〜TRN+1における一連のイベントデータの指示に従った演奏音が、音源53における発音チャネルch(ch≠127)の音として単位演奏時間T(図7の例では、単位演奏時間Tは4分音符2つ分の長さとする)分ずつ発音される。よって、演奏者は、和音などの難しい演奏箇所を含む曲を自分自身が演奏しているかのような気分を味わうことができ、飽きることなくその演奏を楽しむことができる。
図7に示すように、このループ処理が繰り返されている間、電子ピアノ50では、記憶領域TR1における一連のイベントデータをノートナンバNumを変換した鍵番号iのLED−iが順に発光する。そして、LED−iの発光によって押鍵が指示された鍵1−iを演奏者が押鍵する度に、記憶領域TR2〜TRN+1における一連のイベントデータの指示に従った演奏音が、音源53における発音チャネルch(ch≠127)の音として単位演奏時間T(図7の例では、単位演奏時間Tは4分音符2つ分の長さとする)分ずつ発音される。よって、演奏者は、和音などの難しい演奏箇所を含む曲を自分自身が演奏しているかのような気分を味わうことができ、飽きることなくその演奏を楽しむことができる。
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態があり得る。例えば、以下の通りである。
(1)上記実施形態における曲データ編集処理では、CPU20は、記憶領域TR2〜TRN+1に格納した演奏制御トラックデータの各々について、拍のタイミングに位置する「ノートオン」のイベントデータの数を集計し、記憶領域TR2〜TRN+1に格納した演奏制御トラックデータのうち集計数が最も多かったものを選択し、この選択した演奏制御トラックデータの複製に基づいて押鍵案内制御トラックデータを生成した。しかし、打楽器のような明らかに拍の数が少ない楽器や限られた時間帯しか演奏されない楽器のパート譜の演奏制御トラックデータを前もって選択候補から除外し、その種のパート譜の演奏制御トラックデータを除いた残りの演奏制御トラックデータのなかから拍のタイミングに位置する「ノートオン」のイベントデータの集計数が最も多かったものを選択してもよい。
(1)上記実施形態における曲データ編集処理では、CPU20は、記憶領域TR2〜TRN+1に格納した演奏制御トラックデータの各々について、拍のタイミングに位置する「ノートオン」のイベントデータの数を集計し、記憶領域TR2〜TRN+1に格納した演奏制御トラックデータのうち集計数が最も多かったものを選択し、この選択した演奏制御トラックデータの複製に基づいて押鍵案内制御トラックデータを生成した。しかし、打楽器のような明らかに拍の数が少ない楽器や限られた時間帯しか演奏されない楽器のパート譜の演奏制御トラックデータを前もって選択候補から除外し、その種のパート譜の演奏制御トラックデータを除いた残りの演奏制御トラックデータのなかから拍のタイミングに位置する「ノートオン」のイベントデータの集計数が最も多かったものを選択してもよい。
(3)上記実施形態におけるノートオンイベント修正処理では、CPU20は、ある拍のタイミングに対応した「ノートオン」のイベントデータの数が2つ以上である場合、それらの複数のイベントデータのうち2番目以降に記述されたイベントデータと各々の直前のデルタタイムを消去した。しかし、それら複数のうち最も高音(または、低音)の音名のノートナンバNumを含むイベントデータを選択し、その選択したイベントデータ以外のイベントデータを消去してもよい。また、複数のイベントデータのうち最も高音の音名のノートナンバNumと最も低音の音名のノートナンバNumを含むイベントデータのいずれを消去せずに残すかを操作部13の操作によって指定できるようにしてもよい。
(4)上記実施形態において、1つの演奏制御トラックデータのみを有する曲データmdを曲データ記憶メモリ17に記憶してもよい。この場合、曲データ編集処理では、この曲データmdの唯一の演奏制御トラックデータの複製に基づいて押鍵案内制御トラックデータを生成してもよい。
(5)上記実施形態において、演奏制御装置10の制御プログラム22を、曲データ編集処理だけをCPU23に実行させるプログラムとしてもよい。そして、このプログラムを実装した演奏制御装置10は、曲データ編集処理では、曲データmdに含まれるN個の演奏制御トラックデータの中の1つの演奏制御トラックデータを選択し、選択した演奏制御トラックデータに基づいて押鍵案内制御トラックデータを生成し、曲データmdにおけるN個の演奏制御トラックデータに押鍵案内制御トラックデータを追加した曲データmd’を生成するとよい。
(6)上記実施形態では、曲データmdにおける「ノートオン」のイベントデータは、ノートナンバNum,ベロシティVel,ゲートタイムGtmの3種類のパラメータを含んでいた。しかし、「ノートオン」のイベントデータをノートナンバNumとベロシティVelの2つのパラメータのみを含むデータとし、曲データmdにおいて「ノートオン」のイベントデータと「ノートオフ」のイベントデータの各対をゲートタイムGtmに相当するデルタタイムをあけて記述するようにしてもよい。この場合における非ノートオンイベント消去処理では、記憶領域TR1における「ノートオン」と「ノートオフ」以外のイベントデータのすべてを消去するとよい。
1…鍵、2…光センサ、3…LED、10…演奏制御装置、11,12,51,52…インターフェース,13…操作部、15,55…制御部、18,58…ROM、19,59…RAM、20,60…CPU、22,62…制御プログラム、50…電子ピアノ、53…音源、54…スピーカ
Claims (5)
- 音源の制御を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した一又または複数の演奏制御トラックデータを含む曲データを記憶する曲データ記憶手段と、
前記曲データに含まれる一又は複数の演奏制御トラックデータの中から一又は複数の演奏制御トラックデータを選択し、選択した演奏制御トラックデータにおける一連のイベントデータの中から拍を実行タイミングとするイベントデータを探索し、探索したイベントデータに基づいて、複数の鍵のうち押鍵を要する鍵を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した押鍵案内制御トラックデータを生成する曲データ編集手段と、
前記曲データの前記演奏制御トラックデータおよび前記押鍵案内制御トラックデータの各々のイベントデータを順に出力する手段であって、前記押鍵案内制御トラックデータのイベントデータを出力した後、そのイベントデータによって押鍵を指示した鍵が押鍵された場合に前記演奏制御トラックデータおよび前記押鍵案内制御トラックデータの次のイベントデータを出力する演奏制御手段と
を具備することを特徴とする演奏制御装置。 - 前記曲データ編集手段は、前記演奏制御トラックデータの最初のタイミングデータをより遅い実行タイミングを指示するタイミングデータに置き換えることを特徴とする請求項1に記載の演奏制御装置。
- 前記曲データは、複数の演奏制御トラックデータを含んでおり、
前記曲データ編集手段は、前記複数の演奏制御トラックデータのうち拍に相当するタイミングを実行タイミングとするイベントデータを最も多く含む一つの演奏制御トラックデータを選択し、選択した演奏制御トラックデータにおける一連のイベントデータの中から拍を実行タイミングとするイベントデータを探索する
ことを特徴とする請求項1または2に記載の演奏制御装置。 - 音源の制御を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した一又または複数の演奏制御トラックデータを含む曲データを記憶する曲データ記憶手段と、
前記曲データに含まれる一又は複数の演奏制御トラックデータの中から一又は複数の演奏制御トラックデータを選択し、選択した演奏制御トラックデータにおける一連のイベントデータの中から拍を実行タイミングとするイベントデータを探索し、探索したイベントデータに基づいて、複数の鍵のうち押鍵を要する鍵を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した押鍵案内制御トラックデータを生成する曲データ編集手段と
を具備することを特徴とする曲データ編集装置。 - コンピュータを、
音源の制御を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した一又または複数の演奏制御トラックデータを含む曲データを記憶する曲データ記憶手段と、
前記曲データに含まれる一又は複数の演奏制御トラックデータの中から一又は複数の演奏制御トラックデータを選択し、選択した演奏制御トラックデータにおける一連のイベントデータの中から拍を実行タイミングとするイベントデータを探索し、探索したイベントデータに基づいて、複数の鍵のうち押鍵を要する鍵を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した押鍵案内制御トラックデータを生成する曲データ編集手段と、
前記曲データの前記演奏制御トラックデータおよび前記押鍵案内制御トラックデータの各々のイベントデータを順に出力する手段であって、前記押鍵案内制御トラックデータのイベントデータを出力した後、そのイベントデータによって押鍵を指示した鍵が押鍵された場合に前記演奏制御トラックデータおよび前記押鍵案内制御トラックデータの次のイベントデータを出力する演奏制御手段と
として機能させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009121579A JP2010271436A (ja) | 2009-05-20 | 2009-05-20 | 演奏制御装置、曲データ編集装置、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009121579A JP2010271436A (ja) | 2009-05-20 | 2009-05-20 | 演奏制御装置、曲データ編集装置、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010271436A true JP2010271436A (ja) | 2010-12-02 |
Family
ID=43419519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009121579A Withdrawn JP2010271436A (ja) | 2009-05-20 | 2009-05-20 | 演奏制御装置、曲データ編集装置、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010271436A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110010109A (zh) * | 2019-05-15 | 2019-07-12 | 浙江友谊电子有限公司 | 一种物联网智慧钢琴系统 |
-
2009
- 2009-05-20 JP JP2009121579A patent/JP2010271436A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110010109A (zh) * | 2019-05-15 | 2019-07-12 | 浙江友谊电子有限公司 | 一种物联网智慧钢琴系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7795524B2 (en) | Musical performance processing apparatus and storage medium therefor | |
JP3309687B2 (ja) | 電子楽器 | |
US8324493B2 (en) | Electronic musical instrument and recording medium | |
JPH11513811A (ja) | リアルタイム音楽作成システム | |
JP2004264501A (ja) | 鍵盤楽器 | |
US10803845B2 (en) | Automatic performance device and automatic performance method | |
JP4626551B2 (ja) | 楽器のペダル操作表示装置 | |
US7838754B2 (en) | Performance system, controller used therefor, and program | |
JP2010271436A (ja) | 演奏制御装置、曲データ編集装置、およびプログラム | |
EP1975920B1 (en) | Musical performance processing apparatus and storage medium therefor | |
JP4259532B2 (ja) | 演奏制御装置、およびプログラム | |
JP2010117419A (ja) | 電子楽器 | |
JP3656597B2 (ja) | 電子楽器 | |
JP4305315B2 (ja) | 自動演奏データ特性変更装置及びそのプログラム | |
JP4978176B2 (ja) | 演奏装置、演奏実現方法およびプログラム | |
JP2002304175A (ja) | 波形生成方法、演奏データ処理方法および波形選択装置 | |
JP3953071B2 (ja) | 電子楽器 | |
JP2570411B2 (ja) | 演奏装置 | |
JPH11184465A (ja) | 演奏装置 | |
JP6398173B2 (ja) | 電子楽器、プログラム及び発音音高選択方法 | |
JP5772485B2 (ja) | 曲編集装置およびプログラム | |
JP3879760B2 (ja) | 電子楽器 | |
JP3879759B2 (ja) | 電子楽器 | |
JP3731532B2 (ja) | 電子楽器 | |
JP3879761B2 (ja) | 電子楽器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120807 |