JP3567297B2 - 音源のアサイナ装置 - Google Patents
音源のアサイナ装置 Download PDFInfo
- Publication number
- JP3567297B2 JP3567297B2 JP09950896A JP9950896A JP3567297B2 JP 3567297 B2 JP3567297 B2 JP 3567297B2 JP 09950896 A JP09950896 A JP 09950896A JP 9950896 A JP9950896 A JP 9950896A JP 3567297 B2 JP3567297 B2 JP 3567297B2
- Authority
- JP
- Japan
- Prior art keywords
- string
- fret
- virtual
- assignment information
- new
- 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)
Description
【発明が属する技術分野】
この発明は、電子楽器に使用する音源のアサイナ装置に関する。
【0002】
【従来の技術】
ポリフォニックシンセサイザー等の一般的な電子楽器においては、その本体内に複数の系統の音源を備え、複数系統の音色を組み合わせることにより、種々の楽器の演奏を模倣したサウンドがつくり出せるようになっている。このような電子楽器は、押下された鍵盤を走査して鍵盤のキー番号である音高、鍵盤を押下した長さや強さ等の楽音データを送出する演奏部と、演奏部から送出された音符情報に応じた楽音を発生する音源部を備えている。また、鍵盤のような演奏部がなくMIDIの楽音データを外部装置から受信し、その楽音データを音源部に伝えることで楽音を発生するいわゆる音源モジュールもある。
このような電子楽器や音源モジュールには、演奏部からのキー番号をどのように複数の音源(チャンネル)に割り振るかというチャンネルアサイン機能をもつアサイナ装置が設けられており、各チャンネルに対して音高指示及び発音指示又は消音指示の演奏情報を伝えている。
【0003】
【発明が解決しようとする課題】
しかしながら従来の音源のアサイナ装置におけるチャンネルアサイナは、ピアノやオルガン等の鍵盤楽器の動作を想定したものが多く、1つの音高に対しては1つの鍵盤操作が一義的に決定する構成になっている。このため、弦楽器のように1つの音高に対して複数の弦が対応し、同じ音高でも押下する弦に応じて音色が変化する楽器については、その音色を忠実に再現することができないという問題があった。さらに、ギター等の弦楽器においては、鍵盤楽器にはない特殊演奏として、ハンマリングオン、プリングオフ、ピッキングアップ及びピッキングダウン等がある。したがってこれらを従来のような鍵盤楽器に基づく音源のアサイナ装置で再現することは困難であった。
また、鍵盤楽器でよく使う1オクターブ内に和音の構成音を収めて鍵盤操作を容易にする手法、いわゆるクローズドボイシング(密集和音)をギター等の弦楽器に適用した場合には、異なる弦の離れた位置を何箇所も押下しなければならず、手の大きさから実現は困難である。
この発明の課題は、1つの音高に対して複数の操作を採り得る弦楽器のアサインを実現するとともに、弦楽器に固有の特殊演奏の模倣を実現し、弦楽器で押弦可能な和音構成を実現することである。
【0004】
【課題を解決するための手段】
この発明は、鍵盤のキー番号を含む演奏情報を受信する受信手段と、発音させる仮想の弦楽器において受信手段が過去に受信したキー番号に割り当てられた仮想押弦位置であって、弦の弦番号及びフレット番号からなる仮想押弦位置を示すアサイン情報を記憶する記憶手段と、仮想の弦楽器において受信手段が新たなキー番号を受信したとき、アサイン情報に基づいて現時点での仮想押弦の手の中心位置を判断し、新たなキー番号に対応する複数の弦番号及びフレット番号のうち、フレット番号が現時点での仮想押弦の手の中心位置に最も近いものに新たなキー番号を割り当てて新たなアサイン情報を生成し、新たなアサイン情報を記憶手段に記憶させるとともに出力する制御手段と、を備えた構成になっている。
上記構成によれば、音高と操作位置とが一義的に定まる鍵盤のキー番号を受信すると、仮想の弦楽器において押弦すべき手の中心位置に最も近いフレット番号に受信したキー番号を割り当てる。したがって、1つの音高に対して複数の操作を採り得る弦楽器のアサインを実現することができる。
【0005】
またこの場合において、新たなアサイン情報の弦番号が記憶手段に記憶されているアサイン情報における仮想押弦中の弦の弦番号であり、新たなアサイン情報のフレット番号が仮想押弦中の弦のフレット番号と異なるものであるときは、仮想押弦中の弦の弦番号及びフレット番号に対応するキー番号の消音メッセージを出力した後、新たなアサイン情報を出力するように制御手段を構成してもよい。
この場合には、ハンマリングオンの奏法やプリングオフの奏法のような弦楽器に固有の特殊演奏の模倣を実現できる。
【0006】
またさらに、受信したキー番号に対応する仮想押弦の弦のフレット番号が手の中心位置から所定範囲にない場合には、キー番号をオクターブ単位でシフトして新たなアサイン情報を生成するように制御手段を構成してもよい。
この場合には、弦楽器で押弦可能な和音構成を実現できる。
【0007】
【発明の実施の形態】
以下、図1〜図26を参照してこの発明における音源のアサイン装置の実施形態をキーボード型シンセサイザーに適用した場合を例に採り説明する。
図1は、シンセサイザーの操作部を示す図である。操作部の上面には、音高や音の強さを入力する鍵盤1、微妙に音高をコントロールするベンダーホイール2、音量を調整するボリューム3、複数の各種スイッチ類4、動作状態等を表示するLCD5が設けられている。また、操作部の背面には、音響信号を出力する出力端子6、MIDIデータを入力するMIDIイン端子7、MIDIデータを出力するMIDIアウト端子8、及び、弦楽器用のメッセージ情報を出力するMIDI STRアウト端子9を備えている。
【0008】
図2は、このシンセサイザーのシステム構成を示す概略図であり、図3はその具体的なブロック図である。
図2に示すように、このシステムは楽音を構成する音符の波形データを発生する音源部10、ユーザから演奏指令を受けるユーザインタフェース/演奏部(以下、単に「演奏部」という)20、このシンセサイザーを制御するとともに、キー番号を変換して音源部10の各チャンネルに対して、発音指示あるいは消音指示を伝達する機能をもつアサイナ部30で構成されている。
【0009】
さらに、各部の構成は図3に示すようになっている。すなわち、音源部10は、波形データを格納している波形メモリ11、波形メモリ11から波形データを読み出す読み出し部12、読み出された波形データを加工するフィルタ部13、波形データを増幅するアンプ部14、ビブラートやトレモロ等の効果を付加するエフェクト部15、ディジタル信号の波形データをアナログ音響信号に変換するD/Aコンバータ16、アナログ音響信号を増幅するアナログアンプ部17を備えている。波形メモリ11には、弦楽器の複数の弦の任意のフレット押下に対応する波形データはもちろんのこと、ハンマリングオン、プリングオフ、ピッキングアップ及びピッキングダウン等のような弦楽器に特有の演奏方法に対応する波形データが記憶されている。
【0010】
演奏部20は、鍵盤1及び各種スイッチ類4の押下状態を検索するキースキャナ21、ベンダーホイール2のアナログ変位量をディジタルデータに変換するA/Dコンバータ22の他、LCD5を駆動するLCDドライバ(図示せず)を備えている。鍵盤1及び各種スイッチ類4をノートイベントを入力する入力手段とすると、キースキャナ21は入力されたノートイベントを受信する受信手段である。
アサイナ部30は、各部をバスで接続し、受信手段としてのキースキャナ21又はシリアルインタフェース34が受信したノートイベントのデータを処理するCPU(制御手段)31、CPU31の動作プログラムを記憶するプログラムROM32、楽音を制御するためのパラメータその他CPU31が処理するデータを記憶するRAM(記憶手段)33、外部からノートイベントすなわちキー番号のMIDI情報を受信する受信手段としてのシリアルインタフェース34を備えている。シリアルインタフェース34はまた、MIDI INから受信したMIDIデータをCPU31が処理可能なパラレルデータに変換し、CPU31から出力されるパラレルデータをMIDIデータに変換する変換手段でもあり、変換したMIDIデータをMIDI OUTから送信するとともに、CPU31から出力される弦楽器対応のメッセージをSTRING INFOMATION MIDI OUTから送信する送信手段でもある。なお、この実施形態において想定する弦楽器は、通常の24フレットの6弦ギターである。
【0011】
次に、RAM33に設けられた各レジスタについて説明する。
図4は、模倣する弦楽器の弦の状態「ストリングステータス」を示すレジスタである。[s]は弦の数に対応して変数が存在する配列を示し、[0]〜[5]が第1弦〜第6弦に対応している。押弦状態か否かを表すレジスタstr asgn[s]は「0」又は「1」の値を採り、「0」は押弦状態にない弦を示し「1」は押弦状態にある弦を示す。押弦フレットを表すレジスタstr fret[s]は「0」〜「24」の値を採り、押下されたフレット番号を示す。割り当てキーナンバーを表すレジスタstr key[s]は「0」〜「127」の値を採り、発音される楽音の音高を示す。演奏スタイルを表すレジスタstr pick[s]は、「0」、「1」、「2」、「3」の値を採り、それぞれ「0」はピッキングダウン、「1」はピッキングアップ、「2」はハンマリングオン、「3」はプリングオフを示す。各レジスタの初期値はいずれも「0」となっている。
【0012】
図5は、近い過去に離弦されたイベント「離弦イベントリスト」を示すレジスタであり、各イベント毎の状態が記憶される。[e]は最後のイベントから数えて何番目に起こったかという値から「1」を減算した値を示す配列である。すなわち、最後のイベントから数えて1番目の離弦イベントは[0]であり、次の離弦イベントは[1]である。最大4イベントまで記憶するので[e]は[0]〜[3]の値を採る。各変数は4つの配列になるが、書き込むときはポインタevptrが示す番号の変数配列に書き込む。ev ptrは最も古いイベントの番号であり、最新のイベントの番号はこのポインタの値から「1」を減算したものである。このポインタは初期値が「0」であり、書き込んだ際にインクリメントされる。例えば、最新の離弦イベントが[0]であるときは、このポインタの値は「1」であり、次の離弦イベントは[1]となる。このイベントを書き込むとポインタの値は「2」となる。ポインタが値「3」のとき、これをインクリメントすると、その値は「0」となり、書き込むごとに[e]は[0]〜[3]の値を循環しつつ変化する。
【0013】
割り当て弦レジスタev str[e]は離弦された弦番号を示し、「0」〜「5」及び「−1」の値を採る。「−1」の場合には割り当て弦がないことを示す。この初期値は「−1」である。押弦フレット番号レジスタev fret[e]は押下されたフレット番号を示し、「0」〜「24」の値となる。この初期値は「0」である。レジスタev time[e]は10ms単位で離弦の時刻を示し、「0」〜「65535」の値を採り、押弦中は離弦状態ではないので「0」になっている。この初期値は「0」になっている。
【0014】
図6は、時間管理のための現在時刻レジスタcurrent time[e]であり、イベントの経過時間を10ms単位で16ビットのカウンタを使って計測している。このカウンタは初期値「0」から10msごとにインクリメントされて「65535」までの値を採り、「65535」をインクリメントすると「0」に戻る。すなわち、このカウンタはインクリメントしていくと1周して廻り続けるフリーランニングタイマである。イベントの経過時間を算出するためには、現在時刻からイベント時刻を減算する必要がある。この場合に、仮にカウンタの値が1周してその値が小さくなったとしても、マイナスの時間はあり得ないので、減算結果に「65535」を加算すればよい。current time[e]の初期値は「0」である。
【0015】
チャンネルアサインには、後述するように、複数のモードがあるが、どのモードの場合にもアサインの最初に、ノートイベント(キー番号)を受信すると、割り当てようとするノートの音高が各弦で何フレットに該当するか、またその弦は現在別のイベントによって押弦中であるかをすべて検索してリストアップする。図7は、この検査結果を記憶する押弦フレットのレジスタscn fret[s]である。[s]は弦の番号を表す配列であり、[0]〜[5]が第1弦〜第6弦に対応している。scn fret[s]のフレット番号は「0」〜「24」の範囲であり、その初期値は「0」である。ただし、この値が「−1」である場合は割り当て不可を意味し、想定する弦楽器であるギターの指盤に該当するノートがないことを表している。
【0016】
次に、このscn fret[s]のフレット番号を書き込むポジションスキャン処理を図8のフローに基づいて説明する。
メインフロー(図示せず)からポジションスキャン処理に移行すると、弦番号sを第1弦「0」にセットし(ステップS1)、その弦の最低ノートナンバーを調べる(ステップS2)。そして、受信したノートイベントのキー番号(受信ノートナンバー)がその調べた結果である最低ノートキー未満であるか否かを判別する(ステップS3)。各弦の最低ノートキーはCPU31内のデータROMにあらかじめ記憶されている。受信ノートナンバーが最低ノートキー未満でない場合には、最低ノートキーに「24」を加算した値より大きいか否かを判別する(ステップS4)。「24」を加算した値より大きくない場合には、受信ノートナンバーから最低ノートキーを減算した値をscn fret[s]に書き込む(ステップS5)。一方、ステップS3において受信ノートナンバーが最低ノートキー未満である場合、又はステップS4において受信ノートナンバーが最低ノートキーに「24」を加算した値より大きい場合には、想定する弦楽器に該当するノートがないので、scn fret[s]に「−1」を書き込む(ステップS6)。ステップS5又はステップS6の後、弦番号sをインクリメントし(ステップS7)、sが「6」になったか否かを判別する(ステップS8)。「6」になっていない場合には、ステップS2に移行してステップS8までの各処理を実行する。ステップS8においてsが「6」になった場合、すなわちすべての弦についてscn fret[s]のフレット番号の書き込みが完了するとこのフローを終了し、図示しないメインフローに戻る。
【0017】
次に、弦楽器を模倣する場合の仮想的な手の中心位置(これを「ハンドポジション」という)の概念をアサインに取り入れる方法について説明する。ハンドポジションは手の中心位置がどの位置にあるかをフレット番号によって表す。その位置がフレットとフレットの間にある場合には少数を含む数値となる。この場合、ハンドポジションの初期値は適当な値が設定できる。実際に仮想的にアサインが開始され、割り当てを検討する場合、いずれのモードにおいても、このハンドポジションが重要な意味をもつ。すなわち、このハンドポジションに近い位置のフレット番号の弦ほど次に押弦される可能性が高いということを前提にアサインを行う。
このハンドポジションがどのように決定されるかというと、現在押弦されているものがあれば、それが重要な要素となることはいうまでもないが、過去に離弦されても離弦からの経過時間が短い場合には、その間に手が移動できる距離も小さいと考えられる。したがって、近い過去に離弦したイベントもハンドポジションの決定において重要な要素となる。
また、ある1箇所が押弦されていても、それが人さし指であれば、ハンドポジションはその指の位置よりも少し上に位置するはずで、近い過去に小指の押弦があって、現在は離弦されている場合は、そのイベントも判断に入れることでハンドポジションが押弦されている人さし指の位置より上の位置にもってくることができる。
【0018】
実際にノートが割り当てられている弦とフレットを「ノートポジション」と称することとする。例えば、図9に示すように、過去4つのノートポジションがある場合、番号「1」〜「4」が若いほど古いイベントのノートポジションとすると、新しいイベントの番号「4」に大きな重みを付けて平均値をとる。この場合には、図の2点鎖線に示す位置がハンドポジションとして得られる。
ハンドポジションに関する変数レジスタを図10に示す。現在のハンドポジションのレジスタhand positionには、「0」〜「24」の範囲のフレット番号が記憶される。この場合「0」は開放弦である。また、hand positionの初期値はレジスタinit hand positionの値が記憶されている。そして、このハンドポジション初期値を記憶するレジスタinit hand positionには、「0」〜「24」の範囲のフレット番号が記憶され、その初期値であるフレット番号は「7」である。すなわち、演奏されていない時に仮にこのフレット番号「7」の位置に手の中心位置があると仮定する。そして、イニシャライズのときにこのフレット番号「7」をhand positionに転送する。
レジスタhand timeには、過去のイベントの重みが完全に無効になる時間が10msの単位で記憶され、その範囲は「0」〜「65535」、その初期値は「100」である。
【0019】
次に、ハンドポジションを求める処理について、図11のフローに基づいて説明する。
まず、各弦の状態を調べて押弦中のものをリストアップして(ステップS11)、押弦中のノートポジションがあるか否かを判別する(ステップS12)。押弦中のノートポジションがある場合には最高のフレット番号と最低のフレット番号が異なるか否かを判別する(ステップS13)。両者のフレット番号が異なる場合には、それらの平均値を下記の(数1)にしたがって算出し、算出した値をhand positionに記憶する(ステップS14)。
【数1】
【0020】
一方、ステップS12において押弦中のノートポジションがない場合、又はステップS13において最高のフレット番号と最低のフレット番号とが等しい場合には、押弦中のノートポジションだけでハンドポジションの判断をすることはせず、以下に記述するように、過去のイベントを考慮する。
まず、過去のイベントのチェックを行う。すなわち、押弦中のイベントのフレット番号と図5のイベントレジスタに記憶されている過去の4つのイベントのフレット番号を調べて、それぞれに所定の重み付けをして平均値を求める。この重み付けのために、下記の(数2)にしたがって各イベントの経過時間t[e]を計算する(ステップS15)。ここで[e]はイベント番号である。
【数2】
この(数2)の式から明らかなように、経過時間t[e]は現在時刻から離弦の時刻を減算して求める。
【0021】
重みの付け方は以下の方法による。押弦中のものについては、いくつあっても重みは「1」とする。このときの押弦中のフレットポジションをfonとする。押弦中のものがない場合には、fon=0となる。離弦された過去のイベントについては、経過時間が図10のhand timeの無効時間を超えた場合には重みは「0」となる。経過時間が無効時間を超えない場合には、各イベントの重みs[e]は、下記の(数3)で表される。
【数3】
次に、上記結果を総合してハンドポジションを決定する。ハンドポジションは、押弦中のノートポジションと離弦されたイベントのノートポジションの重み付きの平均値である。そこで、下記の(数4)にしたがってフレット番号に重みを付けて平均値を計算し、hand positionに入力する(ステップS16)。この後、図示しないメインフローに戻る。
【数4】
【0022】
次に、ピッキング方向の決定について説明する。ピッキングの方向は、アップとダウンの2種類があり、初期値だけを決めておけば、次にどの弦に移動するかあるいは同じ弦を弾弦するかで次のピッキングの方向を決定する。この実施形態では、腕のピッキングストロークが小さくて済むものを選択する。この場合、以下の4つに分類できる。
その第1は、新たなノートイベントに対して割り当てられたノートポジションの弦が、前回のノートイベントのとき割り当てられた弦と比較して、開放弦の音高が高い弦すなわち細い弦のときはピッキングダウンである。
第2は、新たなノートイベントに対して割り当てられたノートポジションの弦が、前回のノートイベントのとき割り当てられた弦と比較して、開放弦の音高が低い弦すなわち太い弦のときはピッキングアップである。
第3は、新たなノートイベントに対して割り当てられたノートポジションの弦が、前回のノートイベントのとき割り当てられた弦と同じであり、前回のピッキングがアップである場合はピッキングダウンである。
第4は、新たなノートイベントに対して割り当てられたノートポジションの弦が、前回のノートイベントのとき割り当てられた弦と同じであり、前回のピッキングがダウンである場合はピッキングアップである。
【0023】
次に、上記分類にしたがった場合のピッキング方向の決定について、図12〜図14を参照して説明する。例えば、図12(A)に示すノートイベントのフレーズを受信したとする。この場合、最初のノートイベントのピッキング方向は直前の最後のピッキングがどの弦で、どちらの方向にピッキングされたかをRAM33のレジスタに記憶しておき、このレジスタの内容に応じてピッキング方向を決定する。図13に最後のピッキングの状態を記憶するラストピッキングイベントレジスタを示す。レジスタlast strには、最後に割り当てられた弦の弦番号「0」〜「5」のいずれかが記憶されている。この初期値は「0」である。レジスタlast pickには、最後のピッキング方向が記憶されている。この値が「0」の場合はダウン、「1」の場合はアップを示し、この初期値は「0」すなわちダウンである。
【0024】
図14はピッキング方向を決定する処理のフローである。
弦番号sを今回の新たな弦番号にセットし(ステップS21)、図13に示すlast strがこの弦番号sよりも小さいか否かを判別する(ステップS22)。last strがこの弦番号sよりも小さい場合には、上記分類の第2の場合に該当するので、今回のピッキング方向のフラグpを「1」すなわちアップにセットする(ステップS23)。last strがこの弦番号sよりも小さくない場合には、last strがこの弦番号sよりも大きいか否かを判別する(ステップS24)。last strがこの弦番号sよりも大きい場合には、上記分類の第1の場合に該当し、今回のピッキング方向のフラグpを「0」すなわちダウンにセットする(ステップS25)。
【0025】
ステップS24において、last strが弦番号sよりも大きくない場合には、図13に示すlast pickが「0」すなわちダウンであるか、又は「1」すなわちアップであるかを判別する(ステップS26)。そして、last pickが「0」である場合には、上記分類の第4に該当するので、ステップS23に移行して今回のピッキング方向のフラグpを「1」すなわちアップにセットする。一方、last pickが「1」である場合には、上記分類の第3に該当するので、ステップS25に移行して今回のピッキング方向のフラグpを「0」すなわちダウンにセットする。
ステップS23又はステップS25におけるフラグpのセットの後は、図13のlast pickの値をそのフラグpの値とし(ステップS27)、last strの値を今回の弦番号sとする(ステップS28)。この後、図示しないメインフローに戻る。
【0026】
この結果、図12(B)に示すように、第5弦をピッキングダウンした後、次に第4弦を押弦するので、last str(=4)>s(=3)すなわち次に弾弦する弦が前の弦より細いので、第4弦はピッキングダウンの奏法となる。この後、第3弦、第2弦の順に押弦するので、後に弾弦する弦が前の弦より細くなり、ピッキングダウンの奏法となる。第2弦はフレット番号5で弾弦した後、同じ第2弦をフレット番号6、フレット番号8で押弦するので、last pickを参照して、前のピッキング方向と反対の方向となり、フレット番号6の場合はピッキングアップ、フレット番号8はピッキングダウンの奏法となる。次は第3弦を押弦するので前の弦より太くなり、ピッキングアップの奏法となる。さらに次は同じ第3弦を他のフレット番号で押弦するので、前のピッキング方向と反対の方向となり、ピッキングダウンの奏法となる。
【0027】
次に、チャンネルアサインのモードについて説明する。アサインの基本的な動作は、図15に示すレジスタmodeによって設定される。modeの値の範囲は「0」〜「3」、すなわち4つの演奏モードによって決定する。これら4つの演奏モードのうち常にいずれか1つのモードだけが選択されている。mode「0」はノーマルモードであり、ソロ演奏やコード演奏に偏らない汎用性のある演奏に適している。mode「1」は開放弦使用モードであり、ノーマルモードにさらに開放弦の利用を可能にしたモードであり、基本はソロ演奏やコード演奏に偏らない汎用性のある演奏に適している。mode「2」はソロモードであり、ソロ演奏に適している。このモードでは、ハンマリングオン、プリングオフ、ピッキングアップ及びピッキングダウンのような特殊演奏もできる。mode「3」はオープンボイシングモードであり、コード演奏に適している。
図16は、モード選択のフローである。modeの値を図15を参照して調べ、modeの値を判別する(ステップS101〜ステップS104)。mode「0」の場合はノーマルモードに移行し(ステップS105)、mode「1」の場合は開放弦使用モードに移行し(ステップS106)、mode「2」の場合はソロモードに移行し(ステップS107)、mode「3」の場合はオープンボイシングモードに移行する(ステップS108)。アサイン処理は各モードごとに異なる。
【0028】
以下、各モードにおけるアサイン処理について順に説明する。
ノーマルモードの基本は、弦の割り当てが先着優先であることである。すなわち、ある弦が押弦されて一度割り当てられれば、離弦されるまではそのノートがその弦に対応する音源の発信部を独占する。
ノーマルモード時におけるアサイン処理について、図17のフローに基づいて説明する。何らかのノートイベントを受信したときには、図8に示すフローにしたがってポジションスキャン処理を行い、空いているすべての弦においてその音高に対応するノートポジション、すなわち弦番号及びフレット番号を調べあげリストアップする(ステップS31)。このリストに基づき、図11に示すフローにしたがってハンドポジションを決定する(ステップS32)。次に、空いているフレットの中で決定したハンドポジションに最も近いフレットを選択する(ステップS33)。この場合において、選択するフレットの候補が2つあるか否かを判別し(ステップS34)、2つある場合には最後に弾弦された弦に近い弦番号のものを選択する(ステップS35)。
【0029】
次に、図14に示すフローにしたがってピッキング方向を決定する(ステップS36)。そして、RAM33の所定の各レジスタに結果を記憶する(ステップS37)。すなわち、選択した弦の番号を割当弦番号sにセットし、弦割り当て状態を示すstr asgnに「1」(押弦状態)をセットし、押弦フレットを示すstr fretにフレット番号をセットし、弦割り当てキーナンバーstr keyにキー番号をセットし、演奏スタイルstr pickにピッキング方向をセットする。そして、記憶した各レジスタの内容を弦楽器対応のメッセージとしてシリアルインタフェース34を介して外部に出力する(ステップS38)。
このように、鍵盤用のノートイベントを受信したときは、RAM33のレジスタを参照して、想定する弦楽器における各弦のフレットの押弦位置を示すフレット番号のアサイン情報に基づいて、押弦する手の中心位置を判断し、中心位置に最も近いフレット番号に受信したノートイベントを割り当てて新たなアサイン情報を生成してRAM33に記憶させる。したがって、鍵盤用のノートイベントを変換して、1つの音高に対して複数の操作を採り得る弦楽器のアサインを実現することができる。
【0030】
次に、開放弦使用モードのアサイン処理について説明する。
開放弦使用モードは、上記したように、ノーマルモードに開放弦機能を付加したものである。ところで、押弦するハンドポジションは単位時間あたりに移動する距離に限界があり、1つの手で押弦する範囲にも限界がある。この限界を超えたようなキー番号を受信した場合には、ノーマルモードでは弦楽器の模倣性を実現することができないが、開放弦を使用すれば押弦の必要性がないので、いきなり離れた音高を演奏することができる。そこで、RAM33に開放弦を使用するためのパラメータを記憶するレジスタを設け、開放弦機能を付加した。
図18に示すように、開放弦許可スイッチのレジスタopens enableには、開放弦使用の不可「0」又は許可「1」のいずれかをセットする。この初期値は「0」である。開放弦検索上方向スレッシホールドのレジスタopens upper widthには、開放弦を使用するか否かの判断をするための上方向すなわち音高が高い方向の閾値のフレット数をセットする。この閾値の範囲は「0」〜「12」でその初期値は「3」である。開放弦検索下方向スレッシホールドのレジスタopens lower widthには、同じく開放弦を使用するか否かの判断をするための下方向すなわち音高が低い方向の閾値のフレット数をセットする。閾値の範囲は「0」〜「12」でその初期値は「2」である。
【0031】
次に、開放弦使用モードのアサイン処理について、図19のフローに基づいて説明する。この処理は、図17に示すノーマルモードのアサイン処理に開放弦を使用するか否かの判別処理が付加されているだけで、その他の処理については図17のフローと同じであるので、同じ符号で示すとともにその説明は省略する。すなわち、ステップS35において空いているフレット番号のなかで最も近いフレット番号を選択した後、開放弦使用の判別を行う(ステップS40)。以下、開放弦判別の詳細な処理について説明する。
ステップS41において、hand positionにセットされているフレット番号にopens upper widthにセットされているフレット数を加算した値が、ステップS33で選択した近いフレット番号の値よりも小さいか否か、すなわちハンドポジションから選択した近いフレットまでの距離がopens upper widthにセットされた閾値を超えているか否かを判別する。閾値を超えている場合には、そのフレットを押弦できないと判断して開放弦を探し(ステップS42)、一致する開放弦があるか否かを判別する(ステップS43)。一致する開放弦がある場合には、その開放弦が弾弦中であるか否かを判別し(ステップS44)、弾弦中でない場合にはその開放弦を使用することを決定する(ステップS45)。
【0032】
一方、ステップS41において選択した近いフレットまでの距離がopens upper widthにセットされた閾値を超えていない場合には、ステップS46に移行して、hand positionにセットされているフレット番号からopens lower widthにセットされているフレット数を減算した値が、選択した近いフレット番号の値よりも大きいか否か、すなわちハンドポジションから選択した近いフレットまでの距離がopens lower widthにセットされた閾値を超えているか否かを判別する。閾値を超えている場合には、そのフレットを押弦できないと判断して開放弦を探し(ステップS42)、一致する開放弦があったか否かを判別する(ステップS43)。一致する開放弦があった場合には、その開放弦が弾弦中であるか否かを判別し(ステップS44)、弾弦中でない場合にはその開放弦を使用することを決定する(ステップS45)。
【0033】
ステップS41及びステップS46において、ハンドポジションから近いフレットまでの距離が、opens lower widthの閾値とopens upper widthの閾値の範囲内にある場合には、そのフレットを押弦できると判断して、開放弦を使用せずその近いフレットを使用することを決定する(ステップS47)。また、ステップS43においてノートイベントに一致する開放弦がない場合、又はステップS44においてその開放弦が弾弦中である場合には、開放弦を使用できないためステップS47に移行して、近いフレットを使用することを決定する。このステップS40の開放弦使用の判別処理の後は、ノーマルモードの場合と同様に、ステップS36に移行してピッキング方向を決定する。
このように、選択した近いフレット番号が手の中心位置から所定範囲にない場合には、開放弦を含めて新たなアサイン情報を生成する。したがって、ノーマルモードの鍵盤用のノートイベントを変換して、1つの音高に対して複数の操作を採り得る弦楽器のアサインを実現する場合に、ノーマルモードの押弦の可能性をさらに高くすることができる。
【0034】
次に、ソロモードのアサイン処理について説明する。
ソロモードの基本は、弦の割り当てが後着優先であることである。すなわち、ある弦が押弦されて一度割り当てられたものであっても、ハンドポジションが所定の条件に合致すれば他のノートに割り当てられる。さらに、ソロモードの特徴はハンマリングオンやプリングオフ等の特殊演奏の模倣が可能なことである。
ハンマリングオンの奏法は、ある弦がすでに発音中である場合に、その弦の振動を利用して、押下しているフレットポジションより上(高い音高)のフレットポジションを別の指で叩く(これも一種の押弦である)ことで、ピッキングすることなく新たな発音を行う奏法である。
プリングオフの奏法は、ある弦がすでに発音中である場合に、その弦の振動を利用して、押下しているフレットポジションより下(低い音高)のフレットポジションをあらかじめ別の指で押えておき、現在のノートに対応するフレットポジションを押えている指で弦を引っ張りながらリリースすることにより、ピッキングすることなくあらかじめ押えていた指のフレット番号の音高で発音を行う奏法である。
【0035】
例えば、図20(A)に示すノートイベントのフレーズを受信したとする。この場合、RAM33のレジスタの内容に基づいてアサインを行う。図21は、ソロモードにおいて使用するレジスタである。ハンマリングオン許可スイッチのレジスタsolo ho enableには、ハンマリングオンの演奏を許可しない場合は「0」をセットし、許可する場合は「1」をセットする。プリングオフ許可スイッチのレジスタsolo po enableには、プリングオフの演奏を許可しない場合は「0」をセットし、許可する場合は「1」をセットする。なお、このソロモードにおいては、図4に示す演奏スタイルのレジスタstr
pick[s]も参照する。
【0036】
次に、ソロモードのアサイン処理について、図22のフローに基づいて説明する。何らかのノートイベントを受信したときには、図8に示すフローにしたがってポジションスキャン処理を行い、すべての弦においてその音高に対応するノートポジションすなわちフレット番号を調べあげリストアップする(ステップS51)。このリストに基づき図11に示すフローにしたがって、ハンドポジションを決定する(ステップS52)。そして、すべての弦の中でこの決定したハンドポジションに最も近いフレットを選択する(ステップS53)。この場合において、選択するフレットの候補が2つあるか否かを判別し(ステップS54)、2つある場合には最後に弾弦された弦に近い弦番号のフレットを選択する(ステップS55)。そして、その選択したフレット番号を割り当てフレットのレジスタfにセットする(ステップS56)。
【0037】
次に、選択した弦は使用中であるか否かを、図4のstr asgn[s]が「1」すなわち押弦状態であるか否かによって判別する(ステップS57)。押弦状態である場合には、割り当てフレットfが図4のstr fret[s]の押弦フレットと同じであるか否かを判別し(ステップS58)、同じでない場合にはfがstr fret[s]よりも小さいか否かを判別する(ステップS59)。fがstr fret[s]よりも大きい(音高が高い)場合には、図21に示すsolo ho enableが「1」すなわちハンマリングオンが可能か否かを判別し(ステップS60)、可能である場合にはハンマリングオンの奏法に決定する(ステップS61)。ステップS59において、fがstr fret[s]よりも小さい(音高が低い)場合には、図21に示すsolo po enableが「1」すなわちプリングオフが可能か否かを判別し(ステップS62)、可能である場合にはプリングオフの奏法に決定する(ステップS63)。
【0038】
ステップS57において、str asgn[s]が「0」すなわち選択した弦が使用中でない場合には、プリングオフ及びハンマリングオンの奏法を行わず、ステップS64に移行し、図14に示すフローにしたがってピッキング方向を決定する。また、ステップS60においてsolo ho enableが「0」である場合、及び、ステップS62においてsolo po enableが「0」である場合、すなわちプリングオフもハンマリングオンも不可である場合にも、ステップS64に移行してピッキング方向を決定する。
ステップS61でハンマリングオンに決定した後、若しくはステップS63でプリングオフに決定した後、又はステップS64でピッキング方向を決定した後は、ステップS65に移行して、配列[s]にチャンネルアサインをして、キー番号のレジスタstr key[s]のノートオフメッセージを出力する。
【0039】
次に、RAM33の所定の各レジスタに後に押弦したイベントの結果を記憶する(ステップS66)。すなわち、選択した弦の番号を割当弦番号sにセットし、弦割り当て状態を示すstr asgnに「1」(押弦状態)をセットし、押弦フレットを示すstr fretにフレット番号をセットし、弦割り当てキーナンバーstr keyにキー番号をセットし、ピッキング方向を決定した場合には演奏スタイルstr pickにピッキング方向をセットする。そして、記憶した各レジスタの内容を弦楽器対応のメッセージとして外部に出力する(ステップS67)。
この結果、図20(A)のノートイベントのフレーズを受けた場合には、図20(B)に示すような演奏パターンとなる。すなわち、第5弦をフレット番号7のノートでピッキングダウンした後、弾弦状態にない第4弦を新たに押弦し、しかも前の弦より細い弦であるので、第4弦はピッキングダウンとなる。次は、同じ第4弦の大きいフレット番号7を押弦するので、ハンマリングオンの奏法となる。次は、第4弦より細い第3弦のフレット番号7を押弦するので、ピッキングダウンの奏法となる。次は、同じ第3弦の小さいフレット番号5を押弦するので、プリングオフの奏法となる。次は、弾弦状態にない第2弦のフレット番号5を新たに押弦し、しかも前の弦より細い弦であるので、ピッキングダウンの奏法となる。次は、同じ第2弦の大きいフレット番号6を押弦するので、ハンマリングオンの奏法となる。次は、同じ第2弦のさらに大きいフレット番号8を押弦するので、ハンマリングオンの奏法となる。
【0040】
このように、RAM33に記憶されているアサイン情報における押弦中の弦が発音中の弦であり、受信したノートイベントが発音中の弦の異なるフレット番号に割り当てるものであるときは、発音中の弦のノートを受信したノートイベントに変更して新たなアサイン情報を生成することにより、ハンマリングオンやプリングオフの奏法のメッセージを出力する。したがって、弦楽器のソロ演奏を模倣することができる。
【0041】
次に、オープンボイシングモードのアサイン処理について説明する。
オープンボイシングモードは、コード演奏に適しているもので、弦の割り当ては先着優先になる。またオープンボイシングモードの最大の特徴は、キーボードで演奏された形式のMIDI信号に対応した音高通りに発音するのではなく、ノートをオクターブ単位でずらして発音することができる。
【0042】
オープンボイシングモードの動作原理は以下のようなものである。クローズドボイシングが困難になる理由は、押弦する1つの手が同時に押えらる範囲が手の大きさを超えているからである。このため、一度に押えられる範囲を設定し、その範囲を超えたノートイベントを受信した場合には、そのノートをオクターブ単位でシフトする。このため、図23に示すように、設定範囲のパラメータをセットするレジスタをRAM33に設けている。レジスタopenv upper widthには、開放弦検索上方向スレッシホールドのフレット数がセットされる。その値の範囲は「0」〜「12」でありその初期値は「3」である。レジスタopenv lower widthには、開放弦検索下方向スレッシホールドのフレット数がセットされる。その値の範囲は「0」〜「12」でありその初期値は「2」である。
【0043】
例えば、図24(A)に示すようなEm9のコードフレーズのノートイベントが、E、F#、G、Dの順に受信して入力された場合、これらの音高を弦楽器の弦及びフレットに割り当てたとすると、その指盤上では図24(B)に示すアサインの押弦パターンとなる。この場合、最初の構成音Eは第5弦のフレット番号7に相当し、次の構成音F#は第4弦のフレット番号4に相当し、これらは3フレット分離れている。したがって、openv lower widthの値が「2」だとすると、弦楽器で演奏可能なクローズドボイシングの条件に適合しない。そこで、図25(A)に示すように、構成音F#を1オクターブ上げて、図25(B)に示すように、クローズドボイシングの条件に適合する第2弦のフレット番号7の位置に対応させる。さらに、構成音Gについてはオクターブシフトはしないが、構成音F#の移動によって開放弦になった第4弦のフレット番号5に移動する。また、構成音Dは構成音Gの移動によって開放弦になった第3弦のフレット番号7に移動する。この結果、押弦可能なノートポジションとなるので弦楽器のクローズドボイシングの条件に適合するようになる。
【0044】
次に、オープンボイシングモードのアサイン処理について、図26のフローに基づいてさらに説明する。
何らかのノートイベントを受信したときには、図8に示すフローにしたがってポジションスキャン処理を行い、空いているすべての弦においてその音高に対応するノートポジション、すなわちフレット番号を調べあげリストアップする(ステップS71)。このリストに基づき図11に示すフローにしたがって、ハンドポジションを決定する(ステップS72)。そして、空いているフレット番号の中でハンドポジションに最も近いフレット番号を選択する(ステップS73)。この場合において、選択するフレットの候補が2つあるか否かを判別し(ステップS74)、2つある場合には最後に弾弦された弦に近いフレット番号を選択する(ステップS75)。
【0045】
次に、図10に示すレジスタhand positionにopenv upper widthを加算した値が選択した近いフレット番号の値より小さいか否かを判別する(ステップS76)。加算した値が近いフレット番号の値より小さい場合には、そのフレット番号が手で押弦可能な範囲を超えているので、受信したノートを1〜2オクターブ上又は下にシフトしてノートポジションを検索する(ステップS77)。一方、ステップS76において加算した値が近いフレットの値より小さくない場合には、hand positionからopenv lower widthを減算した値が近いフレットの値よりも大きいか否かを判別する(ステップS78)。減算した値が近いフレットの値よりも大きい場合には、そのフレット番号が手で押弦可能な範囲を超えているので、ステップS77に移行して1〜2オクターブ上又は下にシフトしてノートポジションを検索する。シフトしたポジションがopenv upper width及びopenv lower widthの範囲に入っているか否かを判別し(ステップS79)、範囲に入っている場合にはそのシフトしたフレット番号をノートポジションに決定する(ステップS80)。ステップS78において、減算した値が近いフレット番号の値よりも大きくない場合には、ステップS73又はステップS75で選択した最も近いフレット番号をノートポジションに決定する(ステップS81)。また、ステップS79においてシフトしたフレットが範囲に入らない場合にも、ステップS81に移行してステップS73又はステップS75で選択した最も近いフレット番号をノートポジションに決定する。
【0046】
ステップS80又はステップS81においてフレット番号を決定した後は、図14に示すフローにしたがってピッキング方向を決定する(ステップS82)。そして、RAM33の所定の各レジスタに結果を記憶する(ステップS83)。すなわち、選択した弦の番号を割当弦番号sにセットし、弦割り当て状態を示すstr asgnに「1」(押弦状態)をセットし、押弦フレットを示すstrfretにフレット番号をセットし、弦割り当てキーナンバーstr keyにキー番号をセットし、演奏スタイルstr pickにピッキング方向をセットする。そして、記憶した各レジスタの内容を弦楽器対応のメッセージとして出力する(ステップS84)。
【0047】
このように、受信したノートイベントのフレット番号が手の中心位置から所定範囲にない場合には、ノートイベントの音高をオクターブ単位でシフトして新たなアサイン情報を生成する。したがって、例えばキーボードでは演奏可能であるがギターでは演奏不可能なクローズドボイシングの演奏コードを入力した場合に、ギターで演奏可能なオープンボイシングの演奏コードに変換して出力することができる。この結果、ギターらしい響きのコード演奏を実現することができる。
【0048】
次に、ノートオフ処理について図27のフローに基づいて説明する。
ノートオフのノートイベントを受信したときは、オフされたキーと同じキーで発音中の弦を検索する(ステップS91)。そして、該当する弦があるか否かを判別し(ステップS92)、該当する弦がある場合にはその弦番号をレジスタsにセットするとともに、離弦されたノートポジションのフレット番号をレジスタfにセットする(ステップS93)。そして、str asgnに「0」をセットして押弦状態から離弦状態に弦ステータスを更新する(ステップS94)。次に、図5に示すイベントステータスにおいて、書き込みポインタev ptrの示す各レジスタの内容を更新する(ステップS95)。すなわち、ev timeにcurrent timeをセットし、ev strにレジスタsの弦番号をセットし、ev fretにレジスタfのフレット番号をセットする。そして、ev ptrをインクリメントする。そして、記憶した各レジスタの内容を弦楽器対応のメッセージとして出力する(ステップS96)。
【0049】
なお、上記実施形態では、キーボード型シンセサイザを例に採って説明したが、この発明である音源のアサイナ装置を適用できる楽器はシンセサイザに限定するものではない。例えば、MIDIフォーマットの通常の演奏信号を弦楽器コントロールに適したマルチチャンネルのMIDI信号に変換するコンバータ単体に適用してもよい。あるいは、キーボードと弦楽器アサイナからなるMIDIコントローラでもよい。あるいは、弦楽器アサイナと音源部からなるMIDI音源モジュールに適用してもよい。すなわち、弦楽器では直接再現できない鍵盤のキー番号を受けて、これを弦楽器で再現できるようにアサインして送出できる機能を必要とするあらゆる装置にこの発明を適用することができる。
【0050】
【発明の効果】
この発明によれば、音高と操作位置とが一義的に定まる鍵盤のキー番号を受信すると、仮想の弦楽器において押弦すべき手の中心位置に最も近いフレット番号に受信したキー番号を割り当てる。したがって、1つの音高に対して複数の操作を採り得る弦楽器のアサインを実現することができる。
【0051】
またこの場合において、記憶手段に記憶されているアサイン情報における仮想押弦に対応する弦が発音中の弦であり、受信したキー番号が発音中の弦の異なるフレット番号に割り当てるものであるときは、発音中の弦のキー番号を受信したキー番号に変更して新たなアサイン情報を生成することにより、ハンマリングオンの奏法やプリングオフの奏法のような弦楽器に固有の特殊演奏の模倣を実現できる。
【0052】
またさらに、受信したキー番号に対応する仮想押弦の弦のフレット番号が手の中心位置から所定範囲にない場合には、キー番号をオクターブ単位でシフトして新たなアサイン情報を生成することにより、弦楽器で押弦可能な和音構成を実現できる。
【図面の簡単な説明】
【図1】この発明の実施形態におけるシンセサイザーの操作部の平面図。
【図2】実施形態におけるシステム構成を示す概略図
【図3】図2の具体的なシステム構成を示すブロック図。
【図4】RAMのレジスタメモリの内容を示す図。
【図5】RAMのレジスタメモリの内容を示す図。
【図6】RAMのレジスタメモリの内容を示す図。
【図7】RAMのレジスタメモリの内容を示す図。
【図8】ポジションスキャン処理のフローチャート。
【図9】弦楽器のハンドポジションを説明するための図。
【図10】RAMのレジスタメモリの内容を示す図。
【図11】ハンドポジション処理のフローチャート。
【図12】ピッキング方向を説明するための図で、(A)は受信したノートイベントを示し、(B)は弦楽器の押弦パターンを示す。
【図13】RAMのレジスタメモリの内容を示す図。
【図14】ピッキング方向決定処理のフローチャート。
【図15】RAMのレジスタメモリの内容を示す図。
【図16】モード選択処理のフローチャート。
【図17】ノーマルモードのフローチャート。
【図18】RAMのレジスタメモリの内容を示す図。
【図19】開放弦使用モードのフローチャート。
【図20】特殊演奏を説明するための図で、(A)は受信したノートイベントを示し、(B)は弦楽器の押弦パターンを示す。
【図21】RAMのレジスタメモリの内容を示す図。
【図22】ソロモードのフローチャート。
【図23】RAMのレジスタメモリの内容を示す図。
【図24】オープンボイシングを説明するための図で、(A)は受信したノートイベントを示し、(B)はノートポジションを示す。
【図25】オープンボイシングを説明するための図で、(A)はシフトしたノートイベントを示し、(B)は変更したノートポジションを示す。
【図26】オープンボイシングのフローチャート。
【図27】ノートオフ処理のフローチャート。
【符号の説明】
21 キースキャナ
31 CPU
33 RAM
34 シリアルインタフェース
Claims (9)
- 鍵盤のキー番号を含む演奏情報を受信する受信手段と、
発音させる仮想の弦楽器において前記受信手段が過去に受信したキー番号に割り当てられた仮想押弦位置であって、弦の弦番号及びフレット番号からなる仮想押弦位置を示すアサイン情報を記憶する記憶手段と、
前記仮想の弦楽器において前記受信手段が新たなキー番号を受信したとき、前記アサイン情報に基づいて現時点での仮想押弦の手の中心位置を判断し、当該新たなキー番号に対応する複数の弦番号及びフレット番号のうち、フレット番号が前記現時点での仮想押弦の手の中心位置に最も近いものに当該新たなキー番号を割り当てて新たなアサイン情報を生成し、当該新たなアサイン情報を前記記憶手段に記憶させるとともに出力する制御手段と、
を備えたことを特徴とする音源のアサイナ装置。 - 前記制御手段は、前記アサイン情報を参照した結果、仮想押弦に対応する弦が複数ある場合は、当該各弦のフレット番号の平均値を前記手の中心位置とすることを特徴とする請求項1記載の音源のアサイナ装置。
- 前記制御手段は、前記アサイン情報を参照した結果、仮想押弦に対応する弦がない場合、仮想押弦に対応する弦が1つである場合、又は仮想押弦に対応する複数の弦のフレット番号が同一である場合には、過去に仮想離弦された弦のフレット番号と、当該仮想離弦からの経過時間が短いほど重み付けを大きくする関数に基づいて前記現時点での仮想押弦の手の中心位置を算出することを特徴とする請求項1記載の音源のアサイナ装置。
- 前記制御手段は、前記手の中心位置に最も近いフレット番号が前記手の中心位置から所定範囲にない場合には、開放弦を示すフレット番号を含めて前記新たなアサイン情報を生成することを特徴とする請求項1〜3のいずれかに記載の音源のアサイナ装置。
- 前記制御手段は、前記新たなアサイン情報の弦番号が前記記憶手段に記憶されているアサイン情報における仮想押弦中の弦の弦番号であり、当該新たなアサイン情報のフレット番号が当該仮想押弦中の弦のフレット番号と異なるものであるときは、当該仮想押弦中の弦の弦番号及びフレット番号に対応するキー番号の消音メッセージを出力した後、当該新たなアサイン情報を出力することを特徴とする請求項1〜4のいずれかに記載の音源のアサイナ装置。
- 前記制御手段は、前記新たなアサイン情報のフレット番号が前記仮想押弦中の弦のフレット番号よりも大きい値であるときは、ハンマリングオンの奏法のアサイン情報を生成することを特徴とする請求項5記載の音源のアサイナ装置。
- 前記制御手段は、前記新たなアサイン情報のフレット番号が前記仮想押弦中の弦のフレット番号よりも小さい値であるときは、プリングオフの奏法のアサイン情報を生成することを特徴とする請求項5記載の音源のアサイナ装置。
- 前記制御手段は、前記受信したキー番号に対応する仮想押弦の弦のフレット番号が前記手の中心位置から所定範囲にない場合には、当該キー番号をオクターブ単位でシフトして前記新たなアサイン情報を生成することを特徴とする請求項1〜3のいずれかに記載の音源のアサイナ装置。
- 前記記憶手段は、前回受信したキー番号に割り当てられた弦番号及び当該弦の仮想ピッキング情報からなる履歴情報を記憶し、
前記制御手段は、前記新たなキー番号に割り当てられた弦番号に対応する開放弦の音高が前記前回受信したキー番号に割り当てられた弦番号に対応する開放弦の音高よりも高い場合には仮想ピッキング情報としてピッキングダウン情報を生成し、前記新たなキー番号に割り当てられた弦番号に対応する開放弦の音高が前記前回受信したキー番号に割り当てられた弦番号に対応する開放弦の音高よりも低い場合には仮想ピッキング情報としてピッキングアップ情報を生成し、前記新たなキー番号に割り当てられた弦番号が前記前回受信したキー番号に割り当てられた弦番号と同一である場合には前記記憶手段に記憶した前回の仮想ピッキング情報とは反対の方向の仮想ピッキング情報を生成し、当該生成した仮想ピッキング情報及び前記新たなキー番号に割り当てられた弦番号を新たな履歴情報として前記記憶手段に記憶させるとともに、当該生成した仮想ピッキング情報及び新たなアサイン情報を出力することを特徴とする請求項1又は2記載の音源のアサイナ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09950896A JP3567297B2 (ja) | 1996-03-29 | 1996-03-29 | 音源のアサイナ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09950896A JP3567297B2 (ja) | 1996-03-29 | 1996-03-29 | 音源のアサイナ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09269781A JPH09269781A (ja) | 1997-10-14 |
JP3567297B2 true JP3567297B2 (ja) | 2004-09-22 |
Family
ID=14249211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09950896A Expired - Fee Related JP3567297B2 (ja) | 1996-03-29 | 1996-03-29 | 音源のアサイナ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3567297B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6439225B2 (ja) * | 2014-06-17 | 2018-12-19 | カシオ計算機株式会社 | 楽音発生装置、電子楽器、楽音発生方法およびプログラム |
-
1996
- 1996-03-29 JP JP09950896A patent/JP3567297B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09269781A (ja) | 1997-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004264501A (ja) | 鍵盤楽器 | |
EP0339575B1 (en) | Electronic musical instrument | |
JP3177374B2 (ja) | 自動伴奏情報発生装置 | |
JPH03174590A (ja) | 電子楽器 | |
CN1770258B (zh) | 表演风格确定设备和方法 | |
US5223659A (en) | Electronic musical instrument with automatic accompaniment based on fingerboard fingering | |
JP3567297B2 (ja) | 音源のアサイナ装置 | |
US5319152A (en) | Chord information output apparatus and automatic accompaniment apparatus | |
JP2745215B2 (ja) | 電子弦楽器 | |
JP2640992B2 (ja) | 電子楽器の発音指示装置及び発音指示方法 | |
JP3719157B2 (ja) | 楽曲データの表情付け装置及び楽曲データの表情付け方法並びに楽曲データの表情付けプログラム | |
JP7173107B2 (ja) | 電子楽器、方法、プログラム | |
JP4174961B2 (ja) | 演奏装置、演奏方法および情報記録媒体 | |
JP4025440B2 (ja) | 電子鍵盤楽器 | |
JPH06222754A (ja) | 電子弦楽器 | |
JP3424989B2 (ja) | 電子楽器の自動伴奏装置 | |
JPH0822282A (ja) | ギター自動伴奏装置 | |
JP4032533B2 (ja) | 楽音信号生成装置、楽音信号生成方法、および楽音信号生成プログラムを記録した記録媒体 | |
JP3476863B2 (ja) | 電子楽器の自動伴奏装置 | |
JPH09106284A (ja) | 和音発生指示装置 | |
JP2022052389A (ja) | 演奏情報予測装置、演奏モデル訓練装置、演奏情報生成システム、演奏情報予測方法及び演奏モデル訓練方法 | |
JP3434403B2 (ja) | 電子楽器の自動伴奏装置 | |
CN116364041A (zh) | 吉他控制方法、吉他及存储介质 | |
JP3241813B2 (ja) | 演奏情報処理装置 | |
JPH10319949A (ja) | 電子楽器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040217 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040331 |
|
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: 20040518 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040531 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080625 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100625 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130625 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |