JP3627319B2 - 演奏制御装置 - Google Patents
演奏制御装置 Download PDFInfo
- Publication number
- JP3627319B2 JP3627319B2 JP27351895A JP27351895A JP3627319B2 JP 3627319 B2 JP3627319 B2 JP 3627319B2 JP 27351895 A JP27351895 A JP 27351895A JP 27351895 A JP27351895 A JP 27351895A JP 3627319 B2 JP3627319 B2 JP 3627319B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- tempo
- data
- time
- performance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
- Feedback Control In General (AREA)
Description
【発明の属する技術分野】
この発明は、指揮棒等の揺動動作に応答する演奏制御装置に関し、特に動作特徴点の検出や動作種類の判別にファジィ推論処理を適用することにより制御の信頼性を高め、安定した音楽演奏を可能にしたものである。
【0002】
【従来の技術】
従来、人間の動作に伴うセンサ出力波形からピーク等の特徴点を検出したり、振り下ろし等の動作種類を判別したりするために、フィルタ処理(平均化処理)や大小比較処理等の信号処理を用いることが提案されている。
【0003】
【発明が解決しようとする課題】
一般に、人間の動作は極めて曖昧且つ不安定である。このため、上記したような単純な信号処理だけでは、検出や判別の精度が低く、検出ミスや判別誤りが頻繁に発生した。従って、検出結果や判別結果に応じて例えば自動演奏のテンポを制御しようとしても、(イ)ユーザーがシステムに慣れる(機械にふさわしい動作をする)のに時間がかかること、(ロ)動作意図と異なる反応(誤動作)が生じるため、制御の信頼性が低く、安定した音楽演奏が困難であることなどの不都合を免れなかった。
【0004】
この発明の目的は、揺動動作に応答して信頼性の高い演奏制御をなしうる新規な演奏制御装置を提供することにある。
【0005】
【課題を解決するための手段】
この発明に係る演奏制御装置は、
拍子に応じた揺動動作を検知する検知手段と、
この検知手段の検知出力に基づいて前記揺動動作の特徴点を検出する検出手段と、
前記検知手段の検知出力及び前記検出手段の検出出力に基づいて前記揺動動作の特徴点が何拍目の特徴点であるかをファジィ推論処理により動作種類として判別し、該動作種類を表わすテンポ制御情報を送出する判別手段と、
この判別手段からのテンポ制御情報に基づいて自動演奏のテンポを制御する演奏制御手段と
を備えたものである。
【0006】
このような構成によれば、揺動動作の特徴点が何拍目の特徴点であるかをファジィ推論処理により動作種類として判別し、判別に係る動作種類を表わすテンポ制御情報に基づいて自動演奏のテンポを制御するようにしたので、判別精度が向上し、信頼性の高いテンポ制御が可能になる。
【0007】
この発明に係る演奏制御装置にあっては、前記検出手段がファジィ推論処理により前記揺動動作の特徴点を検出するようにしてもよい。
【0008】
このような構成によれば、ファジィ推論処理を用いて揺動動作の速度ピーク(又は谷)等の特徴点を検出するので、検出精度が向上し、一層信頼性の高いテンポ制御が可能になる。
【0009】
【発明の実施の形態】
図1は、この発明に係る揺動分析装置10を示すもので、この装置は、図2に示す電子楽器50における自動演奏のテンポ及びダイナミクス(強弱)を制御するために使用されるものである。
【0010】
揺動分析制御装置10において、バス12には、操作検出回路14、A/D(アナログ/ディジタル)変換回路16,18、CPU(中央処理装置)20、ROM(リード・オンリィ・メモリ)22、RAM(ランダム・アクセス・メモリ)24、タイマ26、MIDI(Musical Instrument Digital Interface) インターフェース28等が接続されている。
【0011】
操作検出回路14は、演奏スタートスイッチ等を含むスイッチ群30中の各スイッチ毎に操作情報を検出するものである。演奏スタートスイッチは、電子楽器50に設けてもよいが、指揮棒32の把持部近傍に設けると操作しやすい。
【0012】
指揮棒32の先端近傍には、一例として圧電振動ジャイロセンサからなるx方向(水平方向)及びy方向(垂直方向)の角速度センサ34及び36が設けられており、センサ34及び36の出力X及びYは、それぞれノイズ除去回路38及び40を介してA/D変換回路16及び18に供給される。A/D変換回路16は、ノイズ除去回路38でノイズ除去された出力XをA/D変換した形のディジタル出力DX を送出し、A/D変換回路18は、ノイズ除去回路40でノイズ除去された出力YをA/D変換した形のディジタル出力DY を送出する。
【0013】
CPU20は、ROM22にストアされたプログラムに従ってA/D変換回路16,18の出力DX ,DY を分析してテンポ制御情報TC及びダイナミクス制御情報DCを発生するための各種処理を実行するもので、これらの処理については図3〜10を参照して後述する。RAM24は、CPU20による各種処理に際してレジスタ等として使用される記憶領域を含んでいる。
【0014】
タイマ26は、CPU20に割込命令信号を供給するもので、割込命令信号の発生周期は、一例として10[ms]である。CPU20は、タイマ26から割込命令信号が発生されるたびに図6のセンサ出力処理を実行する。
【0015】
MIDIイーターフェース28は、図2のMIDIイーターフェース70とMIDIケーブルで接続されたもので、テンポ制御情報TC、ダイナミクス制御情報DC等をMIDIイーターフェース70に供給する。
【0016】
図2の電子楽器50において、バス52には、押鍵検出回路54、操作検出回路56、表示回路58、音源回路60、CPU62、ROM64、RAM66、タイマ68、MIDIイーターフェース70、フロッピィディスク装置72が接続されている。
【0017】
押鍵検出回路54は、鍵盤74の多数の鍵にそれぞれ設けられた多数のキースイッチを走査するなどして各鍵毎に鍵操作情報を検出するものである。
【0018】
操作検出回路56は、演奏モード選択スイッチ等を含むスイッチ群76中の各スイッチ毎に操作情報を検出するものである。演奏モード選択スイッチによりマニアル演奏モード及び自動演奏モードのうち一方又は双方を選択可能である。
【0019】
表示回路58は、テンポ、音量等の設定値を表示する表示器を含んでいる。
【0020】
音源回路60は、一例として第1〜第15の音源チャンネルを有するもので、各音源チャンネル毎にイベントデータに応じて楽音信号を発生可能である。例えば、キーオンに係るチャンネルナンバ1のイベントデータがチャンネルナンバ1の音源チャンネルに割当てられると、この音源チャンネルからは、供給されたイベントデータの指示する音高及び音量を有する楽音信号の発生が開始される。そして、キーオフに係るチャンネルナンバ1のイベントデータがチャンネルナンバ1の音源チャンネルに割当てられると、この音源チャンネルでは、供給されたイベントデータの指示する音高を有する楽音信号の減衰が開始される。他の音源チャンネルにおいても、上記したと同様にして楽音信号発生制御動作が行なわれる。
【0021】
音源回路60から発生される1又は複数の楽音信号は、サウンドシステム78に供給され、音響に変換される。
【0022】
CPU62は、ROM64にストアされたプログラムに従って鍵盤74の操作に基づくマニアル演奏音信号の発生及び/又はRAM66の演奏データに基づく自動演奏音信号の発生を制御するもので、自動演奏音信号の発生のための各種処理については図11〜17を参照して後述する。RAM66には、フロッピィディスク装置72から所望の楽曲の演奏データを選択して書込めるようになっている。別の選択方法としては、演奏データをROM64から選択して読出すようにしてもよい。RAM66は、CPU62による各種処理に際してレジスタ、カウンタ等として使用される記憶領域も含んでいる。
【0023】
タイマ68は、CPU62に割込命令信号を供給するもので、割込命令信号の発生周期は、一例として1[ms]である。CPU62は、タイマ68から割込命令信号が発生されるたびに図13の再生処理を実行する。この結果として、RAM66の演奏データに基づく自動演奏が遂行される。
【0024】
MIDIイーターフェース70は、図1の揺動分析装置10からテンポ制御情報TC及びダイナミクス制御情報DCを受信する。CPU62は、テンポ制御情報TCに応じて自動演奏のテンポを制御すると共に、ダイナミクス制御情報DCに応じて自動演奏音の音量を制御する。
【0025】
図3は、指揮棒32の揺動動作を3拍子の場合(A)と2拍子又は4拍子の場合(B)とに分けて示したものである。
【0026】
(A)の3拍子の場合には、位置P1 ,P2 ,P3 の順に3角形を描くような揺動動作が行なわれる。センサ34の出力X及びセンサ36の出力Yに対応してA/D変換回路16及び18から得られる出力値をそれぞれDX 及びDY とすると、絶対角速度DZ は、次の数1の式で求められる。
【0027】
【数1】
図4は、絶対角速度DZ の時間的変化の一例を示すもので、変化波形における3つの谷は、図3の位置P1 ,P2 ,P3 にそれぞれ対応する。また、位置P1 〜P2 間の動作1と位置P2 〜P3 の動作2と位置P3 〜P1 の動作3とは、変化波形におけるピークQ1 ,Q2 ,Q3 (1,2,3拍目のピーク)にそれぞれ対応する。
【0028】
この発明の実施形態にあっては、ファジィ推論処理を用いてピークQ1 〜Q3 をそれぞれ検出すると共に動作1〜3(ピーク種類)をそれぞれ判別し、それぞれの判別結果に応じて動作1ならばC3 のキーコードを有するテンポ制御情報TCを発生し、動作2ならばC#3 のキーコードを有するテンポ制御情報TCを発生し、動作3ならばD3 のキーコードを有するテンポ制御情報TCを発生する。なお、この実施形態ではテンポ制御情報として所定のキーコードを有するキーデータを用いたが、テンポ制御専用のデータを用いてもよい。
【0029】
図3(B)の2拍子又は4拍子の場合には、位置P11から位置P12への振り下ろし動作1と位置P12から位置P11への振り上げ動作3との2動作となり、3拍子の場合と同様の処理により動作1ならばC3 のキーコードを有するテンポ制御情報TCを発生し、動作3ならばD3 のキーコードを有するテンポ制御情報TCを発生する。
【0030】
図3(A)又は(B)のいずれの場合にも、ダイナミクス制御情報DCは、絶対角速度DZ のピーク値(Q1 〜Q3 等)の大きさに対応して発生される。
【0031】
図5は、xy平面内の角度θを示すものである。角度θは、A/D変換回路16,18の出力値DX ,DY をxy平面にプロットしたときの点をSとすると、原点0と点Sを通る直線がx軸となす角度として定義される。角度θの情報は、ファジィ推論処理により動作1〜3(ピーク種類)を判別する際に使用される。
【0032】
図6は、センサ出力処理を示すもので、この処理は、タイマ26から割込命令信号が発生されるたびに(すなわち10[ms]の周期で)行なわれる。
【0033】
ステップ80では、A/D変換回路16,18から出力値DX ,DY を取込む。そして、ステップ82に移り、前掲の数1の式に従って絶対角速度DZ を求める。
【0034】
次に、ステップ84では、ピーク検出処理を行なう。ピーク検出処理では、図4のQ1 〜Q3 等のピークを検出すると共に検出したピークが何拍目のピークか判別するが、詳しくは図7を参照して後述する。
【0035】
次に、ステップ86では、ダイナミクス制御情報DCを作成し、イーターフェース28を介して送出する。ダイナミクス制御情報DCは、ステップ84でピークが検出されたときそのピーク値の大きさに対応する音量レベルを指示するように作成される。イーターフェース28から図2の電子楽器50に送信されたダイナミクス制御情報DCは、RAM66内の音量制御レジスタにセットされる。この後、図示しないメインルーチンにリターンする。
【0036】
図7は、ピーク検出処理を示すもので、ステップ90では、ルール1のファジィ推論処理を行なう。このファジィ推論処理では、今回より1つ前のDZ 値がピークである確率を求め、その確率が所定の条件を満たすときにピークとするが、詳しくは図8,9を参照して後述する。
【0037】
次に、ステップ92では、ステップ90の処理においてピークが得られたか判定する。この判定結果が肯定的(Y)であればステップ94に移る。
【0038】
ステップ94では、ピーク種類判別処理を行なう。この判別処理では、検出したピークが何拍目のピークか(例えば図3の動作1〜3のいずれか)判別するが、詳しくは図10を参照して後述する。
【0039】
ステップ94の処理が終ったとき又はステップ92の判定結果が否定的(N)であったときは、図6のルーチンにリターンする。
【0040】
図8は、ルール1のファジィ推論処理を示すもので、ステップ100では、今回より1つ前のDZ の値がピークである確率を求める。一例として、ファジィルール1は次の数2のように記述される。
【0041】
【数2】
もし{([a]1つ前の値は2つ前の値よりも大きい)
且つ([b]1つ前の値は今回の値よりも大きい)
且つ([c]前回のピーク発生時刻から時間が経っている)
且つ([d]1つ前の値はダイナミックなしきい値より大きい)
且つ([e]前回の谷発生時刻から時間が経っている)
且つ([f]1つ前の値が前回のピーク値と比べて小さすぎない)}
ならば([g]1つ前の値がピークである確率が高い)
ここで、ダイナミックなしきい値とは、次々に求められたDZ 値を所定時間内で平均した値をいう。
【0042】
次に、ファジィルール1において変数となる言語をメンバーシープ関数で表わす。図9(A)〜(G)は、ファジィルール1中の条件[a]〜[g]にそれぞれ対応するメンバーシップ関数を例示するもので、tは時間を表わす。
【0043】
次に、(A)〜(F)のメンバーシップ関数について入力に対するメンバーシップ値を求める。(A)のグラフにおいて、D2 を2つ前の値とすると、1つ前の値に対応するメンバーシップ値は破線で示すようにM1 となる。(B)のグラフにおいて、D0 を今回の値とすると、1つ前の値に対応するメンバーシップ値は破線で示すようにM2 となる。(C)のグラフにおいて、前回のピーク発生時刻からの経過時間に対応するメンバーシップ値は破線で示すようにM3 となる。(D)のグラフにおいて、Dd をダイナミックなしきい値とすると、1つ前の値に対応するメンバーシップ値は破線に対応してM4 =1となる。(E)のグラフにおいて、前回の谷発生時刻からの経過時間に対応するメンバーシップ値は破線で示すようにM5 となる。(F)のグラフにおいて、Dp を前回のピーク値とすると、1つ前の値に対応するメンバーシップ値は破線で示すようにM6 となる。
【0044】
次に、(A)〜(F)のメンバーシップ関数に基づく推論結果から最終的な推論結果を求める。すなわち、[a]〜[f]の条件は「且つ」で結ばれているので、メンバーシップ値M1 〜M6 のうちから最小値Mmin を求め、Mmin を(G)のグラフにメンバーシップ値として適用して図形FがMmin 以上の部分を削除する。そして、残った図形Fについて重心Fgを演算により求める。重心の変動範囲Pは、確率0〜1の範囲であり、重心Fgに対応してピークである確率を求める。
【0045】
次に、図8のステップ102では、ステップ100で求めた確率に基づいてピークであるか否か決定する。すなわち、求めた確率が所定値(例えば0.5)以上か判定し、この判定結果が肯定的ならばピークであると決定し、否定的ならばピークでないと決定する。そして、図7のルーチンにリターンする。
【0046】
図10は、ピーク種類判別処理を示すもので、ステップ110では、ルール2のファジィ推論処理を行なう。この推論処理では、今回のピーク種類が動作1である確率を求める。一例として、ファジィルール2は、次の数3のように記述される。
【0047】
【数3】
もし{(((出力値DY が小さい)且つ(出力値DX が大きい))
又は(前回のピーク種類が動作3)
又は((前回のピーク種類が動作2)且つ(今回と前回の角度差が大きい)))
且つ(今回の角度は中位)}
ならば(今回のピーク種類は動作1である確率が高い)
ここで、角度とは、図5に関して前述したものであり、角度差とは、かような角度の差である。
【0048】
ルール2のファジィ推論処理は、ルール1について前述したと同様に行なうことができる。すなわち、ルール2において変数となる言語をメンバーシップ関数で表わし、「ならば」の前までの各条件について入力に対するメンバーシップ値を求める。そして、「且つ」で結ばれた条件については最小のメンバーシップ値を求め、「又は」で結ばれた条件については最大のメンバーシップ値を求める。「ならば」のメンバーシップ関数に基づいて重心法により今回のピーク種類が動作1である確率を求める。
【0049】
次に、図10のステップ112では、ルール3のファジィ推論処理を行なう。この推論処理では、今回のピーク種類が動作2である確率を求める。一例として、ファジィルール3は、次の数4のように記述される。
【0050】
【数4】
もし{(((前回のピーク種類が動作1)且つ(今回と前回の角度差が小さ い)
又は((前回のピーク種類が動作3)且つ(今回と前回の角度差が大きい))
又は((前回のピーク種類が判別失敗)且つ(出力値DY が大きい)且つ(出力値DX が小さい))
又は(前回のピーク種類が判別失敗)且つ(今回の角度が0°に近い)))}
ならば(今回のピーク種類は動作2である確率が高い)
ルール3のファジィ推論処理は、ルール2について前述したと同様にして行なうことができる。
【0051】
次に、図10のステップ114では、ルール4のファジィ推論処理を行なう。この推論処理では、今回のピーク種類が動作3である確率を求める。一例として、ファジィルール4は、次の数5のように記述される。
【0052】
【数5】
もし{(((前回のピーク種類が動作2)且つ(今回と前回の角度差が小さ い)
又は((前回のピーク種類が動作1)且つ(今回と前回の角度差が大きい))
又は((前回のピーク種類が判別失敗)且つ(出力値DY が大きい))}
ならば(今回のピーク種類は動作3である確率が高い)
ルール4のファジィ推論処理は、ルール2について前述したと同様にして行なうことができる。
【0053】
次に、図10のステップ116では、ルール5のファジィ推論処理を行なう。この推論処理では、今回のピーク種類が判別失敗である確率を求める。一例として、ファジィルール5は、次の数6のように記述される。
【0054】
【数6】
もし(ルール2,3,4のいずれの推論処理で求めた確率も小さい)
ならば(今回のピーク種類は判別失敗である確率が高い)
ルール5のファジィ推論処理もルール2について前述したと同様にして行なうことができる。
【0055】
図10のステップ118では、ルール5の推論結果に基づいて判別失敗か否か決定する。すなわち、ステップ116で求めた確率が所定値(例えば0.5)以上か判定し、この判定結果が肯定的であれば判別失敗であるとし、否定的であれば判別失敗でないとする。そして、ステップ120に移る。
【0056】
ステップ120では、判別失敗か判定する。この判定結果が否定的(N)であればステップ122に移り、ルール2〜4の推論処理で求めた確率のうち最も高い確率についてピーク種類を決定する。例えば、ルール2の推論処理で求めた確率が最も高い場合、ピーク種類は動作1と決定される。
【0057】
次に、ステップ124では、ピーク種類に応じたキーコードを有するテンポ制御情報TCを発生する。例えば、ピーク種類が動作1であれば、C3 のキーコードを有するテンポ制御情報TCが発生される。発生されたテンポ制御情報TCは、インターフェース28,70を介してRAM66内の所定のレジスタにセットされる。
【0058】
ステップ120の判定結果が肯定的(Y)であったときは、ステップ126でピーク種類不明と決定する。ステップ124又は126の処理が終ったときは、図7のルーチンにリターンする。
【0059】
図11は、RAM66における演奏データのフォーマットを示すものである。
【0060】
所望の楽曲の演奏データは、楽曲進行に従ってデルタタイムデータΔT、イベントデータEV、デルタタイムデータΔT、イベントデータEV…のようにデータΔT及びEVを交互に配置したものである。いずれのデルタタイムデータΔTも、[ms]の単位で時間を表わすもので、最初のデルタタイムデータは、最初のイベントまでの時間を表わし、イベント間のデルタタイムデータは、イベント間の相対時間を表わす。例えば和音発音のように1タイミングに複数イベントがあるときは、該イベント間のデルタタイムデータは0を表わす。
【0061】
各イベントデータEVは、図12に示すように3バイトのデータからなる。第1バイトのうち上位4ビットがイベント種類データESであり、下位4ビットがチャンネルナンバデータCHNである。イベント種類データESは、キーオン又はキーオフのようなイベント種類を表わす。チャンネルナンバデータCHNは、0〜15のいずれかのチャンネルナンバを表わす。チャンネルナンバ1〜15は、音源回路60の第1〜第15の音源チャンネルに対応しているが、チャンネルナンバ0は、テンポ制御マークとして使用される。
【0062】
各イベントデータEVにおいて、第2バイトは、キーコードデータKCであり、音高を表わす。また、第3バイトは、ベロシティデータVLであり、押鍵速度に対応する音量を表わす。
【0063】
イベントデータEVとしては、チャンネルナンバ0のテンポ制御用のイベントデータと、チャンネルナンバ1〜15の発音/非発音制御用のイベントデータ(キーオン/オフに係るイベントデータ)との2種類のものが存在する。発音/非発音制御用のイベントデータは、楽曲を構成する各音符毎に楽音信号の発生及び減衰開始を制御するもので、自動演奏の分野で広く使用されている。一方、テンポ制御用のイベントデータは、この発明を実施するために使用されるもので、以下では、簡単のため「テンポ制御データ」と称する。
【0064】
テンポ制御データとしては、3拍子の場合、C3 ,C#3 ,D3 の3種類のキーコードを有するものが使用される。そして、C3 ,C#3 ,D3 のキーコードを有するテンポ制御データは、基準となるテンポにおいて第1拍、第2拍、第3拍のタイミングに対応する位置に配置され、このような順序で読出される。また、4拍子の楽曲の場合、C3 ,D3 ,C3 ,D3 のテンポ制御データがそれぞれ第1拍,第2拍,第3拍,第4拍のタイミングに対応する位置に配置され、このような順序で読出される。テンポ制御は、一例として、C3 のキーコードを有するテンポ制御データの読出タイミングに対して、C3 のキーコードを有するテンポ制御情報TCの受信タイミングが早ければテンポを進めるように、また遅ければテンポを遅らせるように行なわれる。
【0065】
図13は、再生処理を示すもので、この処理は、タイマ68から割込命令信号が発生されるたびに(すなわち1[ms]の周期で)行なわれる。以下の説明にて言及されるフラグ、レジスタ等は、RAM66内に存在するものである。
【0066】
ステップ130では、ランフラグRUNが1か判定する。フラグRUNは、前述の演奏スタートスイッチをオンするたびに1であれば0になり、0であれば1になるもので、RUN=1は、自動演奏中であることを表わす。ステップ130の判定結果が肯定的(Y)であればステップ132に移る。
【0067】
ステップ132では、読出停止フラグPAUSEが0か判定する。フラグPAUSEは、RAM66からテンポ制御データを読出したにもかかわらず、その読出タイミングまでに対応するテンポ制御情報TCが受信されていないときに1となるもので、ステップ132の判定結果が肯定的(Y)であるとき(TCを受信済みのとき)は、ステップ134に移る。
【0068】
ステップ134では、デルタタイムレジスタTIMEが0か判定する。レジスタTIMEには、RAM66から読出したデルタタイムデータΔTをセットし(ステップ142)、データΔTの示す値を割込みのたびに1ずつ減算している(ステップ148)ので、TIME=0は、次のイベントデータを読出すべきタイミングになったことを意味する。ステップ134の判定結果が肯定的(Y)であればステップ136に移る。
【0069】
ステップ136では、RAM66のアドレスを1つ進めてデータを読出す。そして、ステップ138に移り、読出したデータがデルタタイムデータΔTか判定する。ステップ134の後初めてステップ138にきたときは、ステップ138の判定結果が否定的(N)となる(ΔTの次は必ずイベントデータEVの読出しとなる)ので、ステップ140に移る。ステップ140では、図14について後述するようにイベント対応処理を行なう。この後、ステップ136に戻る。
【0070】
ステップ136では、再びアドレスを進めてデータを読出す。そして、ステップ138で読出データがデルタタイムデータΔTか判定すると、判定結果が肯定的(Y)となり、ステップ142に移る。
【0071】
ステップ142では、読出されたデルタタイムデータΔTをレジスタTIMEにセットする。そして、ステップ144でTIME=0か判定する。通常は、読出直後にデルタタイムデータΔTがゼロになることはないが、前述したように和音発音等の場合にはΔT=0のこともある。このような場合には、ステップ144の判定結果が肯定的(Y)となり、ステップ136に戻る。
【0072】
ステップ136では、次のイベントデータを読出し、ステップ138を介してステップ140でイベント対応処理を行なう。そして、ステップ136に戻って次のデルタタイムデータΔTを読出してステップ138,142を介して再びステップ144にくる。ステップ144の判定結果が肯定的(Y)であれば、ステップ136に戻る。ステップ136では、次のイベントデータを読出し、ステップ138を介してステップ140でイベントデータ対応処理を行なう。このようにして、和音を構成する第1〜第3音を実質的に同時に発音させることができる。ステップ140の後は、上記したと同様にステップ136,138,142,144の処理を行なう。
【0073】
ステップ144の判定結果が否定的(N)であったときは、ステップ146に移る。ステップ146では、レジスタTIMEの値にテンポ係数レジスタTMKの値(テンポ係数TMK)を乗じたものをTIMEにセットする。
【0074】
テンポ係数TMKは、基準値が1であり、指揮棒32の揺動速度が速い又は遅いに応じてそれぞれ1より小さく又は大きくなるように後述のステップ154の処理で変更される。従って、TIMEの値は、テンポ係数TMKの乗算により修正され、この結果として自動演奏のテンポが指揮棒32の揺動速度に追従すべく制御される。
【0075】
ステップ146の処理が終ったとき又はステップ134の判定結果が否定的(N)であった(読出すべきタイミングに達していない)ときは、ステップ148に移る。ステップ148では、TIMEの値を1減らす。そして、ステップ150に移り、読出間隔レジスタRBの値を1増やす。レジスタRBは、図16に示すようにあるテンポ制御データTEV1 の読出タイミングから次のテンポ制御データTEV2 の読出タイミングまでの時間間隔に対応する数値を得るためのものである。
【0076】
ステップ150の処理が終ったとき又はステップ132の判定結果が否定的(N)であった(TCの受信待ちである)ときは、ステップ152に移る。ステップ152では、受信間隔レジスタRAの値を1増やす。レジスタRAは、図16に示すようにあるテンポ制御情報TC1 の受信タイミングから次のテンポ制御情報TC2 の受信タイミングまでの時間間隔に対応する数値を得るためのものである。ステップ152の後は、ステップ154に移り、図15について後述するようにテンポ制御処理を実行する。
【0077】
ステップ154の処理が終ったとき又はステップ130の判定結果が否定的(N)であった(自動演奏中でない)ときは、図示しないメインルーチンにリターンする。
【0078】
図14は、イベント対応処理を示すもので、ステップ160では、読出データがテンポ制御データTEVが判定する。この判定結果が肯定的(Y)であればステップ162に移る。
【0079】
ステップ162では、受信フラグTCRFが1か(テンポ制御情報TCを受信済みか)判定する。この判定結果が肯定的(Y)であればステップ164に移り、TCRFに0をセットする。これは、テンポ制御データTEVを読出したときに対応するテンポ制御情報TCが受信済みであることを意味する。
【0080】
ステップ162の判定結果が否定的(N)であったときは、ステップ166に移り、テンポ制御データTEV中のキーコードデータKCをレジスタKEYにセットする。そして、ステップ168に移り、レジスタPAUSEに1をセットする。これは、テンポ制御データTEVに対応するテンポ制御情報TCを受信するまでRAM66からの演奏データ読出しを停止するためである。すなわち、図13では、ステップ132でPAUSE=1であればステップ136の読出処理を行なわない。そして、テンポ制御情報TCが受信されると、ステップ154の処理(ステップ196)でPAUSE=0となり、この後は、RAM66からの演奏データ読出しが行なわれる。
【0081】
ステップ160の判定結果が否定的(N)であったときは、ステップ170に移り、発音/非発音制御用のイベントデータPEVのうち発音用のものだけベロシティデータLVの値をRAM66内のレジスタにあるダイナミクス制御情報DCに応じて修正する。例えば、指揮棒の振りが強いときは、制御情報DCに応じて音量を高めるべくVLの値を修正する。そして、ステップ172に移る。
【0082】
ステップ172では、発音/非発音制御用のイベントデータPEVを音源回路60に送出する。このとき送出されるデータが発音制御用のイベントデータ(キーオンに係るイベントデータ)であればそれに対応する楽音信号の発生が開始され、非発音制御用のイベントデータ(キーオフに係るイベントデータ)であればそれに対応する楽音信号の減衰が開始される。
【0083】
ステップ164,168又は172の処理が終ったときは、図13のルーチンにリターンする。
【0084】
図15は、テンポ制御処理を示すもので、ステップ180では、テンポ制御情報TCの受信ありか判定する。この判定結果が否定的(N)であれば図13のルーチンにリターンする。
【0085】
ステップ180の判定結果が肯定的(Y)であったときは、ステップ182でPAUSE=1か(読出停止中か)判定する。この判定結果が肯定的(Y)である場合は、テンポ制御データTEVの読出しよりそれに対応するテンポ制御情報TCの受信が遅れた(揺動速度が遅い)場合であり、その一例を図16に示す。すなわち、テンポ制御データTEV2 が読出された時点でTEV2 に対応するテンポ制御情報TC2’が受信されておらず(PAUSE=1)、この後でTC2’が受信された場合である。
【0086】
一方、ステップ182の判定結果が否定的(N)である場合は、テンポ制御データTEVの読出しよりそれに対応するテンポ制御情報TCの受信が早かった(揺動速度が速い)場合であり、その一例を図16に示す。すなわち、テンポ制御データTEV2 が読出された時点でTEV2 に対応するテンポ制御情報TC2 がすでに受信されている(PAUSE=0)場合である。
【0087】
ステップ182の判定結果が肯定的(Y)であったときは、ステップ184に移り、受信したテンポ制御情報TCのキーコードKCとレジスタKEYのキーコードKCとが一致するか判定する。この判定結果が否定的(N)であれば図13のルーチンにリターンし、肯定的(Y)であればステップ186に移る。換言すれば、テンポ制御情報TCを受信してそのキーコードKCが読出しに係るテンポ制御データTCVのキーコードKCと一致することを条件としてステップ186〜196の処理を行なう。
【0088】
ステップ186では、レジスタRA,RBの値の比RA/RBをレジスタRATEにセットする。そして、ステップ188に移り、レジスタTMKの値にRATEの値を乗じたものをTMKにセットする。この結果、テンポ係数TMKがRATEの値に応じて修正されたことになる。一例として、図16のTEV2 ,TC2’の例では、比RA/RBの値は、1より大きくなり、テンポ係数TMKは、1より大きくなる。
【0089】
次に、ステップ190では、テンポ係数TMKの値のリミット処理を行なう。これは、TMK値が大きすぎないように所定値(例えば2.0)以下に制限する処理である。
【0090】
この後、ステップ192,194,196では、それぞれレジスタRB,RA,フラグPAUSEに0をセットする。そして、図13のルーチンにリターンする。
【0091】
次回の割込みにより図13のルーチンに入り、ステップ146でレジスタTIMEの値にテンポ係数TMKを乗ずると、TIMEの値は以前より大きくなり、自動演奏のテンポは揺動速度に追従して遅くなる。
【0092】
一方、ステップ182の判定結果が否定的(N)であったときは、ステップ198に移り、次のテンポ制御データTEVをサーチする。そして、ステップ200に移る。
【0093】
ステップ200では、受信したテンポ制御情報TCのキーコードKCとサーチしたテンポ制御データTEVのキーコードKCとが一致するか判定する。これは、前述のステップ184に対応する処理である。この判定結果が否定的(N)であれば図13のルーチンにリターンし、肯定的(Y)であればステップ202に移る。
【0094】
ステップ202では、前のテンポ制御データの読出タイミングからサーチしたテンポ制御データTEVの読出タイミングまで時間間隔をレジスタRBにセットする。例えば、図16に示すように発音/非発音制御用のイベントデータPEVを読出した後テンポ制御情報TC2 を受信してからテンポ制御データTEV2 をサーチした場合、レジスタRBには、テンポ制御データTEV1 の読出タイミングからTC2 の受信タイミングまでの時間間隔に対応する数値がセットされているだけで、TC2 の受信タイミングからTEV2 を(サーチではなく)演奏進行に応じて読出すべきタイミングまでの時間間隔に対応する数値が含まれていない。この時間間隔に対応する数値は、TEV2 を読出すべきタイミングで0になるレジスタTIMEにおいてTC2 受信時に残されている数値RTに等しい。そこで、レジスタRBの値にTIMEの値RTを加えたものをRBにセットする。
【0095】
また、図17に示すように発音/非発音制御用のイベントデータPEVを読出した後テンポ制御情報TC2 を受信してからサーチ動作により発音/非発音制御用のイベントデータPEV’及びテンポ制御データTEV2 を読出した場合には、TC2 の受信タイミングからPEV’を演奏進行に応じて読出すべきタイミングまでの時間に対応してレジスタTIMEの値RTを考慮すると共に、PEV’を演奏進行に応じて読出すべきタイミングからTEV2 を演奏進行に応じて読出すべきタイミングまでの時間に対応して数値RT’を考慮する。数値RT’は、データPEV’及びTEV2 のイベント間相対時間をΔTとし、テンポ係数をTMKとすると、次の数7の式で表わされる。
【0096】
【数7】
RT’=ΔT×TMK
従って、この場合には、レジスタRBの値にレジスタTIMEの値RTと数値RT’とを加えたものをRBにセットする。なお、TEV2 をサーチする際にPEV’のようなイベントデータが複数読出されるときは各イベントデータについてRT’と同様の考慮を払えばよい。
【0097】
次に、ステップ204では、レジスタRBの値に1/Nを乗じたものをRBにセットすると共に、レジスタTIMEの値に1/Nを乗じたものをTIMEにセットする。ここで、Nは、RBの値をレジスタRAの値に近づけるために適宜選定される定数である。
【0098】
次に、ステップ206では、フラグTCRFに1をセットする。この結果、この後の割込みにより図14のステップ162にくると、判定結果が肯定的(Y)となり、ステップ164でTCRT=0とされる。
【0099】
次に、ステップ208では、レジスタRA,RBの値の比RA/RBをレジスタRATEにセットする。そして、ステップ210に移り、レジスタTMKの値にRATEの値を乗じたものをTMKにセットする。この結果、テンポ係数TMKがRATEの値に応じて修正されたことになる。一例として、図16のTC2 ,TEV2 の例では、比の値RA/RBが1より小さくなり、テンポ係数TMKが1より小さくなる。この後、ステップ212に移る。
【0100】
ステップ212では、テンポ係数TMKの値のリミット処理を行なう。これは、TMK値が小さすぎないように所定値(例えば0.5)以上に制限する処理である。
【0101】
この後、ステップ214,216では、それぞれレジスタRB,RAに0をセットする。そして、図13のルーチンにリターンする。
【0102】
次回の割込みにより図13のルーチンに入り、ステップ146でレジスタTIMEの値にテンポ係数TMKを乗ずると、TIMEの値は以前より小さくなり、自動演奏のテンポは揺動速度に追従して速くなる。
【0103】
この発明は、上記した実施形態に限定されるものではなく、種々の改変形態で実施可能なものである。例えば、次の(1)〜(13)のような変更が可能である。
【0104】
(1)揺動動作の特徴点検出と動作種類判別の両方に対してファジィ推論処理を適用したが、動作種類判別のみにファジィ推論処理を適用するようにしてもよい。
【0105】
(2)揺動動作に応じた出力から直接ファジィ推論処理によりピークや動作種類を求めるようにしたが、従来の手法により求めたピークや動作種類をファジィ推論処理により修正するようなものであってもよい。また、ニューラルネットワークと融合させ、例えばメンバーシップ関数を決定乃至修正するのにニューラルネットワークを用いるようにしてもよい。
【0106】
(3)揺動動作を検知するためのセンサは、圧電振動ジャイロセンサ等の角速度センサに限らず、加速度センサや磁気又は光を用いたセンサであってもよい。また、揺動動作を撮影し、画像処理によって揺動動作を検知するものであってもよい。さらに、複数種類のセンサを組合せて用いてもよい。
【0107】
(4)判別する揺動動作の種類は、3種類に限らず、もっと多くの種類の動作を判別するようにしてもよい。
【0108】
(5)揺動分析装置と指揮棒とを別体としたが、指揮棒に揺動分析装置を内蔵させるようにしてもよい。また、揺動分析装置と自動演奏装置付き電子楽器とを別体としたが、これらを一体に構成してもよい。さらに、揺動分析装置からの出力情報TC,DCは、図2の電子楽器以外の電子楽器や自動演奏装置に供給して上述のような演奏制御を行なうようにしてもよい。
【0109】
(6)揺動動作の検知手段として、2つのセンサを用いたが、3つ以上のセンサを用いてもよい。例えば、3拍子用と、2,4拍子用とで異なるセンサを用いるようにしてもよいし、3つ以上のセンサの出力を総合的に判断して動作を検知するようにしてもよい。
【0110】
(7)センサは、指揮棒に装着したが、指揮棒に代わる揺動部材に装着したり、手など身体の一部に装着したり、マイクロホンに内蔵したり、カラオケ装置等の機器のリモートコントローラに内蔵したりしてもよい。センサと揺動分析装置との間の通信は、有線又は無線のいずれでもよい。
【0111】
(8)演奏中に演奏テンポを制御するようにしたが、演奏に先立って演奏テンポを決定する場合にもこの発明を適用することができる。
【0112】
(9)演奏データの記憶方式は、イベント+デルタタイム(イベント間相対時間)としたが、イベント+絶対時間等の他の方式を採用してもよい。また、デルタタイムは、msの単位であるとしたが、音符の長さを単位とする(例えば4分音符の1/24とする)ようにしてもよい。
【0113】
(10)テンポの制御は、デルタタイムの値にテンポ係数を乗算し、デルタタイムの値を変化させることで行なうようにしたが、図13のタイマ割込みの周期を変化させることで行なうようにしてもよい。また、1回のタイマ割込みにおいてデルタタイムの値から減算する値を1以外の値とすることによりテンポを制御するようにしてもよい。さらに、デルタタイムの値を変化させるには、乗算に限らず、加算等の処理を用いてもよい。
【0114】
(11)テンポ制御にあっては、テンポがなめらかに変化するように変化前の値から目標値までの間を補間するようにしてもよい。ダイナミクスの制御も同様にしてなめらかな変化が得られるようにしてもよい。
【0115】
(12)ダイナミクス制御情報DCに応じて演奏音の音量を制御するようにしたが、該情報DCに応じて演奏音の音色、音高、効果等を制御してもよい。また、ダイナミクス制御情報DCに応じて演奏パート数等を制御してもよい。これらのパラメータのうち複数のものを組合せて制御することで演奏のダイナミクスを一層強調するようにしてもよい。
【0116】
(13)ファジィルールやメンバーシップ関数をユーザがエディット可能とし、ユーザが最も操作しやすいように調節可能としてもよい。
【0118】
【発明の効果】
以上のように、この発明によれば、ファジィ推論処理により揺動動作の特徴点検出や動作種類判別を行なうようにしたので、検出精度や判別精度が向上し、信頼性の高い演奏態様制御が可能となり、安定した音楽演奏を行なえる効果が得られるものである。
【図面の簡単な説明】
【図1】この発明に係る揺動分析装置の回路構成を示すブロック図である。
【図2】図1の装置の出力に応じて自動演奏可能な電子楽器の回路構成を示すブロック図である。
【図3】指揮棒の揺動動作の説明図である。
【図4】絶対角速度の変化の一例を示す波形図である。
【図5】xy平面内の角度の説明図である。
【図6】センサ出力処理を示すフローチャートである。
【図7】ピーク検出処理を示すフローチャートである。
【図8】ルール1のファジィ推論処理を示すフローチャートである。
【図9】図8の処理で用いられるメンバーシップ関数を示すグラフである。
【図10】ピーク種類判別処理を示すフローチャートである。
【図11】演奏データのフォーマットを示す図である。
【図12】イベントデータのフォーマットを示す図である。
【図13】再生処理を示すフローチャートである。
【図14】イベント対応処理を示すフローチャートである。
【図15】テンポ制御処理を示すフローチャートである。
【図16】テンポ制御動作の説明図である。
【図17】テンポ制御動作の説明図である。
【符号の説明】
10:揺動分析装置、12,52:バス、16,18:A/D変換回路、20,62:CPU、22,64:ROM、24,66:RAM、26,68:タイマ、28,70:MIDIインターフェース、32:指揮棒、34,36:角速度センサ、50:電子楽器、60:音源回路。
Claims (2)
- 拍子に応じた揺動動作を検知する検知手段と、
この検知手段の検知出力に基づいて前記揺動動作の特徴点を検出する検出手段と、
前記検知手段の検知出力及び前記検出手段の検出出力に基づいて前記揺動動作の特徴点が何拍目の特徴点であるかをファジィ推論処理により動作種類として判別し、該動作種類を表わすテンポ制御情報を送出する判別手段と、
この判別手段からのテンポ制御情報に基づいて自動演奏のテンポを制御する演奏制御手段と
を備えた演奏制御装置。 - 前記検出手段がファジィ推論処理により前記揺動動作の特徴点を検出する請求項1記載の演奏制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27351895A JP3627319B2 (ja) | 1995-09-27 | 1995-09-27 | 演奏制御装置 |
US08/710,706 US5648627A (en) | 1995-09-27 | 1996-09-20 | Musical performance control apparatus for processing a user's swing motion with fuzzy inference or a neural network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27351895A JP3627319B2 (ja) | 1995-09-27 | 1995-09-27 | 演奏制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0990941A JPH0990941A (ja) | 1997-04-04 |
JP3627319B2 true JP3627319B2 (ja) | 2005-03-09 |
Family
ID=17528981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27351895A Expired - Fee Related JP3627319B2 (ja) | 1995-09-27 | 1995-09-27 | 演奏制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3627319B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9596538B2 (en) * | 2014-12-12 | 2017-03-14 | Intel Corporation | Wearable audio mixing |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2663503B2 (ja) * | 1988-04-28 | 1997-10-15 | ヤマハ株式会社 | 楽音制御装置 |
JPH02232692A (ja) * | 1989-03-06 | 1990-09-14 | Kan Oteru | 自動演奏機能を有する機器の制御装置 |
JP3298114B2 (ja) * | 1991-07-11 | 2002-07-02 | ヤマハ株式会社 | 楽音信号形成装置 |
JP2712897B2 (ja) * | 1991-07-16 | 1998-02-16 | ヤマハ株式会社 | 楽音制御装置 |
JPH0635466A (ja) * | 1992-07-20 | 1994-02-10 | Casio Comput Co Ltd | 電子楽器 |
JPH06161440A (ja) * | 1992-11-24 | 1994-06-07 | Sony Corp | 自動演奏装置 |
JP3231482B2 (ja) * | 1993-06-07 | 2001-11-19 | ローランド株式会社 | テンポ検出装置 |
-
1995
- 1995-09-27 JP JP27351895A patent/JP3627319B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0990941A (ja) | 1997-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022063777A (ja) | 演奏情報予測装置、有効弦振動判定モデル訓練装置、演奏情報生成システム、演奏情報予測方法及び有効弦振動判定モデル訓練方法 | |
JP3598613B2 (ja) | 楽音パラメータ制御装置 | |
JP3627321B2 (ja) | 演奏制御装置 | |
JP3627319B2 (ja) | 演奏制御装置 | |
JPH06289857A (ja) | 音声入力機能付き電子楽器 | |
JPH09185716A (ja) | 動作判定方法および動作判定装置 | |
JP2768233B2 (ja) | 電子楽器 | |
JP3303608B2 (ja) | 自動演奏装置 | |
JP3307162B2 (ja) | 音楽制御装置 | |
JPH03242697A (ja) | 電子楽器 | |
US6646194B2 (en) | Method and apparatus for waveform reproduction | |
JP3353661B2 (ja) | 音楽制御装置および記憶媒体 | |
JP2003091280A (ja) | 音楽制御装置 | |
JP2020126176A (ja) | 音楽生成装置及びプログラム | |
JP3152104B2 (ja) | テンポ制御装置 | |
JP3427569B2 (ja) | 音楽制御装置 | |
US6362410B1 (en) | Electronic musical instrument | |
JPH1138970A (ja) | 音楽制御装置および記憶媒体 | |
JPH0752345B2 (ja) | イニシャルタッチ制御装置 | |
JP3471480B2 (ja) | テンポ制御装置 | |
JP3279122B2 (ja) | テンポ制御装置 | |
JP3677906B2 (ja) | 発音条件設定装置 | |
JPH0573047A (ja) | 楽音発生制御装置 | |
JPH07111633B2 (ja) | 電子楽器 | |
JP2022052453A (ja) | 演奏情報予測装置、演奏モデル訓練装置、演奏情報生成システム、演奏情報予測方法及び演奏モデル訓練方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040521 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040601 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040802 |
|
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: 20041116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041129 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091217 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111217 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111217 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121217 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131217 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |