JP6387642B2 - 電子弦楽器、楽音発生方法及びプログラム - Google Patents
電子弦楽器、楽音発生方法及びプログラム Download PDFInfo
- Publication number
- JP6387642B2 JP6387642B2 JP2014058971A JP2014058971A JP6387642B2 JP 6387642 B2 JP6387642 B2 JP 6387642B2 JP 2014058971 A JP2014058971 A JP 2014058971A JP 2014058971 A JP2014058971 A JP 2014058971A JP 6387642 B2 JP6387642 B2 JP 6387642B2
- Authority
- JP
- Japan
- Prior art keywords
- string
- vibration
- pitch
- command
- change
- 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.)
- Active
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
このような方式は、指板上のスイッチやセンサで、押弦された位置を認識することが必要なため、弦楽器としての外観を損ねること、さらには発音後の音高の変化に対応できない問題がある。
また、弾弦された弦の振動をマイクで拾い、電気信号として周波数や振幅を認識する方式も従来から提案されている(特許文献1)。この方式では、指板上にスイッチやセンサを設ける必要がないため、弦楽器としての外観を損ねることもなく、発音後の音高の変化にも忠実に対応できるが、弦の振動からその周波数や振幅を抽出するまで時間がかかるため、弾弦してから実際に発音するまで若干の遅延が生じる問題がある。
そこで近年では、金属フレットと金属弦とを用い、この両者の電気的な接触を検出することにより押弦位置を検出し、金属弦の弾弦と同時にこの押弦位置により決定された音高の楽音を発音させ、その後弾弦から抽出した周波数で発音中の楽音の音高を補正する、という方式が提案されている。
このような方式によれば、弦楽器としての外観を損ねることもなく、かつ発音の遅延も生じない。
特に、弦楽器の楽音の音高の変化は比較的少ないものの、発音当初は音高の変化が早く安定していないこと、かつできる限り早く正確な音高に補正しなければならないことから、この音高補正のためのコマンド送付も比較的短い間隔で頻繁に行わねばならない。
しかしながら、あまりに短い間隔でコマンド送付を行うことは、音源との通信データ量及び制御系統の処理負担が増大することとなり、特に複数の弦が同時に弾弦された場合などは、その処理に対応できなくなる恐れがある。
一方、複数張設される弦の太さは夫々異なり、太さが太くなるほどその振動周波数が小さくなることは知られている。したがって、細い弦は振動周波数が高く周期が短いうえに振動周波数の変化も生じやすいが、逆に太い弦は振動周波数が低いので周期が長く、かつ振動周波数の変化も生じにくい。この点を考慮すると、太さが異なる弦を同一の時間間隔で弦の振動周波数検出及び音高補正のためのコマンド送付の処理を行うのは不合理である。つまり、細い弦に合わせた時間間隔で処理を行えば、太い弦で無駄な処理を行うことになり、太い弦に合わせれば細い弦で発生する楽音の音高の変化が忠実に再現できなくなる。
また、本発明の他の態様の電子弦楽器は、指板部上に張設された複数の弦のいずれかが弾弦されたか否かを検出する弾弦検出手段と、前記弾弦検出手段によって弾弦が検出された弦の振動ピッチを検出する弦振動検出手段と、前記弦振動検出手段によって検出された弦の振動ピッチの変化が所定以下の状態であるか否かを判定する振動状態判定手段と、前記弦振動検出手段によって検出された振動ピッチに応じて、発音中の楽音の音高を補正するためのコマンドを音源に出力するコマンド出力手段と、前記振動状態判定手段によって前記弦の振動ピッチの変化が所定以下の状態であると判定された場合は、前記弦の振動ピッチの変化が所定以下の状態でないと判定された場合と比べて、前記コマンド出力手段による前記コマンドの出力の周期を長くするように制御するコマンド出力制御手段と、を有し、前記振動状態判定手段は、前記弦振動検出手段によって検出された弦の振動において、振動ピッチの変化が予め設定された第1の閾値以下となっているか否かに基づいて、弦の振動ピッチの変化が所定以下の状態であるか否かを判定することを特徴とする。
また、本発明の他の態様の電子弦楽器は、指板部上に張設された複数の弦のいずれかが弾弦されたか否かを検出する弾弦検出手段と、前記弾弦検出手段によって弾弦が検出された弦の振動ピッチを検出する弦振動検出手段と、前記弦振動検出手段によって検出された弦の振動ピッチの変化が所定以下の状態であるか否かを判定する振動状態判定手段と、前記弦振動検出手段によって検出された振動ピッチに応じて、発音中の楽音の音高を補正するためのコマンドを音源に出力するコマンド出力手段と、前記振動状態判定手段によって前記弦の振動ピッチの変化が所定以下の状態であると判定された場合は、前記弦の振動ピッチの変化が所定以下の状態でないと判定された場合と比べて、前記コマンド出力手段による前記コマンドの出力の周期を長くするように制御するコマンド出力制御手段と、発音後における振動ピッチの変化が予め設定された第2の閾値以上であるか否かを判定するピッチ変化判定手段と、を有し、前記コマンド出力制御手段は、前記ピッチ変化判定手段によって振動ピッチが前記第2の閾値以上変化したと判定された場合、前記コマンドの出力の周期をより短くすることを特徴とする。
初めに、図1を参照して、本発明の一実施形態としての電子弦楽器1の概要について説明する。
さらに、電子部13は、DSP(Digital Signal Processor)46と、D/A(デジタルアナログコンバータ)47と、を備える。
ヘキサピックアップ12は、検出された各々の弦22の独立した振動を電気信号に変換してアナログフィルタ12aに出力する。
アナログフィルタ12aは、ヘキサピックアップ12によって検出された弦の振動波形において、設定された周波数領域の成分を通過させる。
A/D12bは、アナログフィルタ12aを通過した振動波形をアナログ信号からデジタル信号に変換し、CPU41に出力する。
表示部15は、発音対象となる音色の種類等を表示する。
図3に示すように、押弦センサ44においては、フレット23の数に対応する22の選択線KI0〜KI21と、弦22の数に対応する6の信号線KC0〜KC5とがマトリクス状に配列された構成を有している。
即ち、押弦センサ44は、所定時間毎に信号線KC0〜KC5を1つずつアクティブな状態に切り替え、選択線KI0〜KI21の状態(ハイレベルまたはローレベル)を読み出して、すべてのフレット23について、いずれの位置が押弦されているかを検出する。
図4は、本実施形態に係る電子弦楽器1において実行されるメインフローを示すフローチャートである。
図4に示すメインフローは、電子弦楽器1の動作中、CPU41によって繰り返し実行される。
メインフローが開始されると、ステップS1において、CPU41は、処理対象の弦番号Nに1をセットし(N=1)、振動波形をサンプリングするためのタイマTsの動作を開始する。
ステップS2において、発音中でない(NO)と判定された場合、処理はステップS3に移行する。
一方、ステップS2において、発音中であると判定された場合、処理はステップS9に移行する。
ステップS3において、CPU41は、弦22の振動状態を認識するためのサブフローである弦状態認識処理(図6参照)を実行する。
ステップS4において、弦22の振動状態が正ゼロクロス中でない(NO)、即ち、正ゼロクロス中を示すフラグがオフであると判定された場合、処理はステップS16に移行する。
一方、ステップS4において、弦22の振動状態が正ゼロクロス中である(YES)、即ち、正ゼロクロス中を示すフラグがオンであると判定された場合、処理はステップS5に移行する。
ステップS5において、弦22の振幅が発音を行うための閾値Th1を超えていない(NO)と判定された場合、処理はステップS6に移行する。
一方、ステップS5において、弦22の振幅が発音を行うための閾値Th1を超えている(YES)と判定された場合、処理はステップS7に移行する。
ステップS6において、CPU41は、発音開始からの時間をカウントするための波形タイマTcの値(波形タイマ値)をクリアし、ゼロに設定する。なお、波形タイマ値は、メインフローと並行して実行される割り込み処理(図5参照)によって、所定時間(例えば、1ms)毎に更新される。波形タイマTcは、振動波形をサンプリングするためのタイマTsよりも低い周波数である。そのため、波形タイマTcを用いることにより、より低い処理負荷で振動波形と同期するタイマを実現することができる。
ステップS8において、CPU41は、波形タイマ値を1に設定する。
ステップS10において、CPU41は、弦22の振動状態が正ゼロクロス中であるか否か(即ち、正ゼロクロス中を示すフラグがオンであるか否か)の判定を行う。
ステップS10において、弦22の振動状態が正ゼロクロス中である(YES)、即ち、正ゼロクロス中を示すフラグがオンであると判定された場合、処理はステップS11に移行する。
一方、ステップS10において、弦22の振動状態が正ゼロクロス中でない(NO)、即ち、正ゼロクロス中を示すフラグがオンでないと判定された場合、処理はステップS16に移行する。
ステップS11において、CPU41は、弦22の振幅がピッチ抽出を行うための閾値Th2を超えているか否かの判定を行う。具体的には、CPU41は、弦22の正の振幅値の絶対値または負の振幅値の絶対値が閾値Th2を超えているか否かの判定を行う。
なお、本実施形態において、ピッチ抽出を行うための弦22の振幅の閾値Th2は、発音を行うための弦22の振幅の閾値Th1と同一であるものとする。ただし、ピッチ抽出を行うための弦22の振幅の閾値Th2は、発音を行うための弦22の振幅の閾値Th1と異なるものとしてもよい。
一方、ステップS11において、弦22の振幅がピッチ抽出を行うための閾値Th2を超えていない(NO)と判定された場合、処理はステップS6に移行する。
ステップS12において、CPU41は、今回の正ゼロクロスにおけるタイマTsの値(ゼロクロスタイマ値)から前回の正ゼロクロスにおけるゼロクロスタイマ値を減算し、弦22の振動のピッチを算出する。
ステップS13において、CPU41は、今回の正ゼロクロスにおけるゼロクロスタイマ値を前回の正ゼロクロスにおけるゼロクロスタイマ値に設定する。
ステップS14において、コマンドを出力しない(NO)と判定された場合、処理はステップS16に移行する。
一方、ステップS14において、コマンドを出力する(YES)と判定された場合、処理はステップS15に移行する。
ステップS16において、CPU41は、弦番号Nを1インクリメントする(N=N+1)。
ステップS17において、弦番号Nが6より大きい(YES)と判定された場合、処理はステップS18に移行する。
一方、ステップS17において、弦番号Nが6以下である(NO)と判定された場合、処理はステップS2に移行する。
ステップS18において、CPU41は、処理対象の弦番号Nに1をセットする(N=1)。
ステップS18の後、処理はステップS2に移行する。
次に、割り込み処理について説明する。
図5は、割り込み処理を示すフローチャートである。
割り込み処理は、CPU41によって、メインフローと並行して所定時間(例えば、1ms)毎に実行される。
割り込み処理が開始されると、ステップS101において、CPU41は、波形タイマ値がゼロであるか否かの判定を行う。
一方、ステップS101において、波形タイマ値がゼロでない(NO)、即ち、1以上であると判定された場合、処理はステップS102に移行する。
ステップS102において、CPU41は、波形タイマ値を1インクリメントする。
ステップS102の後、割り込み処理は終了となる。
次に、弦状態認識処理について説明する。
図6は、メインフローのステップS3においてサブフローとして実行される弦状態認識処理を示すフローチャートである。
弦状態認識処理が開始されると、ステップS201において、CPU41は、弦番号Nの弦22をアクティブとするためのスキャンパルスを印加する。
ステップS202において、CPU41は、弦番号Nの弦22がいずれのフレット23に接触しているかを表すフレット情報を取得する。このとき、フレット情報は、押弦センサ44の出力信号から取得される。
ステップS204において、CPU41は、正ゼロクロス中であることを示すフラグをオフにする。
ステップS205において、CPU41は、今回取得した振幅値がゼロまたは正であるか否かの判定を行う。
ステップS205において、今回取得した振幅値がゼロまたは正でない(NO)と判定された場合、処理はステップS206に移行する。
一方、ステップS205において、今回取得した振幅値がゼロまたは正である(YES)と判定された場合、処理はステップS209に移行する。
ステップS206において、前回取得した振幅値がゼロまたは正でない(NO)と判定された場合、処理はステップS207に移行する。
一方、ステップS206において、前回取得した振幅値がゼロまたは正である(YES)と判定された場合、処理はメインフローに戻る。
ステップS207において、今回の振幅値の方が前回までに取得された負の振幅値の最大値よりも絶対値が大きい(YES)と判定された場合、処理はステップS208に移行する。
一方、ステップS207において、今回の振幅値の方が前回までに取得された負の振幅値の最大値よりも絶対値が大きくない(NO)と判定された場合、処理はメインフローに戻る。
ステップS208において、CPU41は、今回の振幅値を負の振幅値の最大値とする。
ステップS208の後、処理はメインフローに戻る。
ステップS209において、前回の振幅値がゼロまたは正でない(NO)と判定された場合、処理はステップS210に移行する。
一方、ステップS209において、前回の振幅値がゼロまたは正である(YES)と判定された場合、処理はステップS211に移行する。
ステップS210において、CPU41は、正ゼロクロス中であることを示すフラグをオンにする。
ステップS210の後、処理はメインフローに戻る。
ステップS211において、今回の振幅値の方が前回までに取得された正の振幅値の最大値よりも絶対値が大きい(YES)と判定された場合、処理はステップS212に移行する。
一方、ステップS211において、今回の振幅値の方が前回までに取得された正の振幅値の最大値よりも絶対値が大きくない(NO)と判定された場合、処理はメインフローに戻る。
次に、ピッチ抽出処理について説明する。
図7は、メインフローのステップS9においてサブフローとして実行されるピッチ抽出処理を示すフローチャートである。
また、図8は、弦22の振動波形を示す模式図である。
ピッチ抽出処理が開始されると、ステップS301において、CPU41は、A/D12bから出力される弦番号Nの弦における波形の振幅を取得する。
ステップS302において、CPU41は、正ゼロクロス中であることを示すフラグをオフにする。
ステップS303において、今回取得した振幅値がゼロまたは正でない(NO)と判定された場合、処理はステップS304に移行する。
一方、ステップS303において、今回取得した振幅値がゼロまたは正である(YES)と判定された場合、処理はステップS307に移行する。
ステップS304において、前回取得した振幅値がゼロまたは正でない(NO)と判定された場合、処理はステップS305に移行する。
一方、ステップS304において、前回取得した振幅値がゼロまたは正である(YES)と判定された場合、処理はメインフローに戻る。
ステップS305において、CPU41は、今回の振幅値の方が前回までに取得された負の振幅値の最大値よりも絶対値が大きいか否かの判定を行う。
ステップS305において、今回の振幅値の方が前回までに取得された負の振幅値の最大値よりも絶対値が大きい(YES)と判定された場合、処理はステップS306に移行する。
一方、ステップS305において、今回の振幅値の方が前回までに取得された負の振幅値の最大値よりも絶対値が大きくない(NO)と判定された場合、処理はメインフローに戻る。
ステップS306の後、処理はメインフローに戻る。
ステップS307において、CPU41は、前回の振幅値がゼロまたは正であるか否かの判定を行う。
ステップS307において、前回の振幅値がゼロまたは正でない(NO)と判定された場合、処理はステップS308に移行する。
一方、ステップS307において、前回の振幅値がゼロまたは正である(YES)と判定された場合、処理はステップS310に移行する。
ステップS308において、CPU41は、現在のタイマTsの値をゼロクロスタイマ値とする。
ステップS309において、CPU41は、正ゼロクロス中であることを示すフラグをオンにする。
ステップS309の後、処理はメインフローに戻る。
ステップS310において、今回の振幅値の方が前回までに取得された正の振幅値の最大値よりも絶対値が大きい(YES)と判定された場合、処理はステップS311に移行する。
一方、ステップS310において、今回の振幅値の方が前回までに取得された正の振幅値の最大値よりも絶対値が大きくない(NO)と判定された場合、処理はメインフローに戻る。
このような処理により、図8に示す振動波形において、負のピーク値と正のピーク値とが検出され、これらに挟まれた正ゼロクロス点のゼロクロスタイマ値Tbが検出される。そして、ゼロクロスタイマ値Tbと、次に検出された正ゼロクロス点のゼロクロスタイマ値Tとの差分(T−Tb)からピッチが算出される。
次に、コマンド出力判定処理について説明する。
図9は、メインフローのステップS14においてサブフローとして実行されるコマンド出力判定処理を示すフローチャートである。
なお、コマンド出力判定処理では、弦振動が不安定であると判定する経過時間(不安定時間It)を各弦及び各フレットについて示すテーブル(以下、「不安定時間テーブル」と呼ぶ。)が用いられる。また、コマンド出力判定処理では、弦振動が安定した後に、ピッチ変更コマンドを出力する時間間隔(安定時インターバル時間St)を各弦及び各フレットについて示すテーブル(以下、「安定時インターバルテーブル」と呼ぶ。)が用いられる。
図10に示すように、不安定時間テーブルには、弦番号1〜6の弦22それぞれについて、押弦されたフレットに対応する弦振動が不安定であると判定する不安定時間Itが設定されている。不安定時間Itは、電子弦楽器1における弦の振動を実測して得られる実験値や理論値を基に設定される。
例えば、弦番号4の弦22では、フレット番号1〜5で押弦された場合、波形タイマ値=7までが不安定時間Itであり、フレット番号6〜11で押弦された場合、波形タイマ値=6までが不安定時間Itである。同様に、フレット番号12〜17で押弦された場合、波形タイマ値=5までが不安定時間Itであり、フレット番号18〜22で押弦された場合、波形タイマ値=4までが不安定時間Itである。
なお、図10に示すフレットのグループは一例であり、より少ないグループ数に分割したり、それぞれのフレット毎に設定する場合を含め、より多いグループ数に分割したりすることが可能である。
図11に示すように、安定時インターバルテーブルには、弦番号1〜6の弦22それぞれについて、押弦されたフレットに対応する弦振動が安定した後に、ピッチ変更コマンドを出力する安定時インターバル時間Stが設定されている。
例えば、弦番号4の弦22では、フレット番号1〜5で押弦された場合、波形タイマ値=40の時間間隔が安定時インターバル時間Stであり、フレット番号6〜11及びフレット番号12〜17で押弦された場合、波形タイマ値=30の時間間隔が安定時インターバル時間Stである。同様に、フレット番号18〜22で押弦された場合、波形タイマ値=40の時間間隔が安定時インターバル時間Stである。
なお、図11に示すフレットのグループは一例であり、より少ないグループ数に分割したり、それぞれのフレット毎に設定する場合を含め、より多いグループ数に分割したりすることが可能である。
ステップS401において、波形タイマ値が、対象となる弦22について設定されている不安定時間Itを経過している(YES)と判定された場合、処理はステップS402に移行する。
一方、ステップS401において、波形タイマ値が、対象となる弦22について設定されている不安定時間Itを経過していない(NO)と判定された場合、処理はステップS404に移行する。
ステップS403において、CPU41は、前回のコマンド出力からの経過時間が、対象となる弦22について設定されている安定時インターバル時間St以下であるか否かの判定を行う。
ステップS403において、前回のコマンド出力からの経過時間が、対象となる弦22について設定されている安定時インターバル時間St以下である(YES)と判定された場合、処理はメインフローに戻る。
一方、ステップS403において、前回のコマンド出力からの経過時間が、対象となる弦22について設定されている安定時インターバル時間St以下でない(NO)と判定された場合、処理はステップS404に移行する。
ステップS405において、CPU41は、今回の波形タイマ値を前回のコマンド出力時間に設定する。
ステップS405の後、処理はメインフローに戻る。
図12においては、フィルタ処理によって整形された弦の振動波形と、ピッチ変更コマンドが送信されるタイミングとが、波形タイマ値と対応付けて示されている。
図12に示すように、上述のような処理が実行される結果、電子弦楽器1においては、弾弦が行われて発音コマンドが出力された場合、各弦について設定された不安定時間Itが経過するまでは、正ゼロクロス点が検出される毎(即ち、1周期毎)にピッチ変更コマンドが出力される。
そのため、音高の変化に対して速やかに音高を補正するピッチ変更コマンドが送信されると共に、音高の変化が小さい場合には、ピッチ変更コマンドが送信される頻度が低下される。
また、ピッチ変更コマンドは、各弦及び押弦位置に応じた頻度で出力される。
したがって、電子弦楽器1における音高の補正をより効率的に行うことが可能となる。
図13に示す振動波形の場合、波形の周期は1.01ms程度である。
ここで、例えば、MIDIにおけるコマンドは、1つのコマンドの送信に1ms程度を要することから、ピッチ変更コマンドを1周期毎に出力すると、コマンドの送信によって通信データ量が飽和する可能性が高い。特に、複数の弦を弾弦した場合には、コマンドの送信によって通信データ量が飽和する可能性がさらに高いものとなる。
これに対し、本実施形態における電子弦楽器1の場合、弦の振動が安定した後には、ピッチ変更コマンドを出力する頻度が低下することから、通信データ量が飽和することを抑制できる。
上述の実施形態において、波形タイマTcのカウント値が不安定時間Itを経過しているか否かによって不安定期間と安定期間とを識別し、ピッチ変更コマンドを出力する頻度を変更することとしたが、ピッチ抽出の結果によって弦振動の安定性を判定し、ピッチ変更コマンドの頻度を変えることとしてもよい。即ち、ピッチ抽出によって取得されたピッチの変化がピッチの安定性を判定するための閾値Pth1(第1の閾値)以下となった場合に、弦の振動が安定したものと判定してもよい。
これにより、弦の振動波形の直接的な状態に対応して、より速やかに、かつ、より正確に弦振動の安定性を判定することが可能となる。
上述の実施形態において、ピッチ抽出の結果から、チョーキング奏法等により発音後のピッチが変化されたか否かを判定し、ピッチ変更コマンドを出力する頻度を変化させてもよい。即ち、不安定時間Itを経過した後に、ピッチ抽出によってピッチが閾値Pth2(第2の閾値)以上変化したと判定された場合に、CPU41は、ピッチ変更コマンドを出力する頻度をより高める(時間間隔をより小さくする)制御を行うことができる。また、このとき、ピッチが閾値Pth2以上変化したと判定された場合、直ちにピッチ変更コマンドを出力することとしてもよい。
これにより、演奏者の奏法に応じて、より適切に音高を補正することが可能となる。
上述の実施形態において、図10に示す不安定時間テーブルに設定された不安定時間Itは、弾弦の強さに応じて変化させることとしてもよい。即ち、検出された弦の振動波形の振幅が大きい場合に、不安定時間Itをより大きくし、検出された弦の指導波形の振幅が小さい場合に、不安定時間Itをより小さくするよう変化させてもよい。この場合、図1に示す不安定時間テーブルに設定された不安定時間Itに対して、弦の振動波形の振幅の大きさに応じた係数を乗算して変化させることができる。あるいは、弦の振動波形の振幅の大きさに応じた複数の不安定時間テーブルを用意しておき、検出された弦の振動波形の振幅の大きさに応じて、いずれかの不安定時間テーブルを選択して用いることとしてもよい。
これにより、強く弾弦が行われた場合には、弦の振動が安定し難いという現象を加味して、より適切な不安定時間Itを設定することが可能となる。
ヘキサピックアップ12は、指板21上に張設された複数の弦22のいずれかが弾弦されたか否かを検出する。
CPU41は、ヘキサピックアップ12によって弾弦が検出された弦22の振動ピッチを検出する。
また、CPU41は、検出した弦22の振動ピッチの変化が所定以下の状態であるか否かを判定する。
また、CPU41は、検出した振動ピッチに応じて、発音中の楽音の音高を補正するためのピッチ変更コマンドを音源45に出力する。
また、CPU41は、弦22の振動ピッチの変化が所定以下の状態であると判定された場合は、弦22の振動ピッチの変化が所定以下の状態でないと判定された場合と比べて、ピッチ変更コマンドの出力の周期を長くするように制御する。
これにより、音高の変化に対して速やかに音高を補正するピッチ変更コマンドが出力されると共に、音高の変化が小さい場合には、ピッチ変更コマンドが出力される頻度が低下される。
したがって、電子弦楽器1における音高の補正をより効率的に行うことが可能となる。
また、CPU41は、発音開始からの時間が予め設定された基準値(不安定時間It)を超えているか否かに基づいて、弦の振動ピッチの変化が所定以下の状態であるか否かを判定する。
これにより、弦の振動ピッチが安定すると想定して設定された波形タイマTcの基準値をカウントすることにより、簡単に弦の振動ピッチが安定した状態であるか否かを判定することができる。
これにより、カウントされた波形タイマTcの値を用いて、簡単にピッチ変更コマンドの出力間隔を制御することができる。
また、CPU41は、検出した弦の振幅の大きさに応じて、弦の振動の変化が所定以下の状態であるか否かを判定する際の条件を変化させる。
これにより、弾弦の強さによって弦振動が安定するまでの時間が変化する状況を適確に反映させて、ピッチ変更コマンドの出力間隔を制御することができる。
これにより、弦の振動波形の直接的な状態に対応して、より速やかに、かつ、より正確に弦振動の安定性を判定することが可能となる。
また、CPU41は、振動ピッチが第2の閾値Pth2以上変化したと判定された場合、ピッチ変更コマンドの出力の周期をより短くする。
これにより、演奏者の奏法に応じて、より適切に音高を補正することが可能となる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
[付記1]
指板部上に張設された複数の弦のいずれかが弾弦されたか否かを検出する弾弦検出手段と、
前記弾弦検出手段によって弾弦が検出された弦の振動ピッチを検出する弦振動検出手段と、
前記弦振動検出手段によって検出された弦の振動ピッチの変化が所定以下の状態であるか否かを判定する振動状態判定手段と、
前記弦振動検出手段によって検出された振動ピッチに応じて、発音中の楽音の音高を補正するためのコマンドを音源に出力するコマンド出力手段と、
前記振動状態判定手段によって前記弦の振動ピッチの変化が所定以下の状態であると判定された場合は、前記弦の振動ピッチの変化が所定以下の状態でないと判定された場合と比べて、前記コマンド出力手段による前記コマンドの出力の周期を長くするように制御するコマンド出力制御手段と、
を有する電子弦楽器。
[付記2]
発音開始からの時間をカウントする波形タイマカウンタをさらに備え、
前記振動状態判定手段は、発音開始からの時間が予め設定された基準値を超えているか否かに基づいて、弦の振動ピッチの変化が所定以下の状態であるか否かを判定する付記1に記載の電子弦楽器。
[付記3]
前記コマンド出力制御手段は、前記コマンドの出力の周期を前記波形タイマカウンタのカウント値によって制御し、前記振動状態判定手段によって発音開始からの時間が前記基準値を超えていると判定された場合は、発音開始からの時間が前記基準値を超えていないと判定された場合と比べて、前記コマンドを出力する周期を大きく設定する付記2に記載の電子弦楽器。
[付記4]
前記弾弦検出手段によって弾弦が検出された弦の振幅を検出する弦振幅検出手段をさらに有し、
前記振動状態判定手段は、前記弦振幅検出手段によって検出された弦の振幅の大きさに応じて、弦の振動の変化が所定以下の状態であるか否かを判定する際の条件を変化させる付記3に記載の電子弦楽器。
[付記5]
前記振動状態判定手段は、前記弦振動検出手段によって検出された弦の振動において、振動ピッチの変化が予め設定された第1の閾値以下となっているか否かに基づいて、弦の振動ピッチの変化が所定以下の状態であるか否かを判定する付記1に記載の電子弦楽器。
[付記6]
発音後における振動ピッチの変化が予め設定された第2の閾値以上であるか否かを判定するピッチ変化判定手段をさらに有し、
前記コマンド出力制御手段は、前記ピッチ変化判定手段によって振動ピッチが前記第2の閾値以上変化したと判定された場合、前記コマンドの出力の周期をより短くする付記1から5のいずれか1つに記載の電子弦楽器。
[付記7]
指板部上に張設された複数の弦のいずれかが弾弦されたか否かを検出する弾弦検出手段を備える電子弦楽器に用いられる楽音発生方法であって、
前記電子弦楽器が、
前記弾弦検出手段によって弾弦が検出された弦の振動ピッチを検出し、
検出された弦の振動ピッチの変化が所定以下の状態であるか否かを判定し、
検出された振動ピッチに応じて、発音中の楽音の音高を補正するためのコマンドを音源に出力し、
前記弦の振動ピッチの変化が所定以下の状態である判定された場合は、前記弦の振動ピッチの変化が所定以下の状態でないと判定された場合と比べて、前記コマンドの出力の周期を長くするように制御する、楽音発生方法。
[付記8]
指板部上に張設された複数の弦のいずれかが弾弦されたか否かを検出する弾弦検出手段を備える電子弦楽器として用いられるコンピュータに、
前記弾弦検出手段によって弾弦が検出された弦の振動ピッチを検出する弦振動検出ステップと、
前記弦振動検出ステップにおいて検出された弦の振動ピッチの変化が所定以下の状態であるか否かを判定する振動状態判定ステップと、
前記弦振動検出ステップにおいて検出された振動ピッチに応じて、発音中の楽音の音高を補正するためのコマンドを音源に出力するコマンド出力ステップと、
前記振動状態判定ステップにおいて前記弦の振動ピッチの変化が所定以下の状態であると判定された場合は、前記弦の振動ピッチの変化が所定以下の状態でないと判定された場合と比べて、前記コマンド出力ステップにおける前記コマンドの出力の周期を長くするように制御するコマンド出力制御ステップと、
を実行させるプログラム。
Claims (7)
- 指板部上に張設された複数の弦のいずれかが弾弦されたか否かを検出する弾弦検出手段と、
前記弾弦検出手段によって弾弦が検出された弦の振幅を検出する弦振幅検出手段と、
前記弾弦検出手段によって弾弦が検出された弦の振動ピッチを検出する弦振動検出手段と、
前記弦振動検出手段によって検出された弦の振動ピッチの変化が所定以下の状態であるか否かを判定する振動状態判定手段と、
前記弦振動検出手段によって検出された振動ピッチに応じて、発音中の楽音の音高を補正するためのコマンドを音源に出力するコマンド出力手段と、
前記振動状態判定手段によって前記弦の振動ピッチの変化が所定以下の状態であると判定された場合は、前記弦の振動ピッチの変化が所定以下の状態でないと判定された場合と比べて、前記コマンド出力手段による前記コマンドの出力の周期を長くするように制御するコマンド出力制御手段と、
を有し、
前記振動状態判定手段は、前記弦振幅検出手段によって検出された弦の振幅の大きさに応じて、弦の振動の変化が所定以下の状態であるか否かを判定する際の条件を変化させる、電子弦楽器。 - 指板部上に張設された複数の弦のいずれかが弾弦されたか否かを検出する弾弦検出手段と、
前記弾弦検出手段によって弾弦が検出された弦の振動ピッチを検出する弦振動検出手段と、
前記弦振動検出手段によって検出された弦の振動ピッチの変化が所定以下の状態であるか否かを判定する振動状態判定手段と、
前記弦振動検出手段によって検出された振動ピッチに応じて、発音中の楽音の音高を補正するためのコマンドを音源に出力するコマンド出力手段と、
前記振動状態判定手段によって前記弦の振動ピッチの変化が所定以下の状態であると判定された場合は、前記弦の振動ピッチの変化が所定以下の状態でないと判定された場合と比べて、前記コマンド出力手段による前記コマンドの出力の周期を長くするように制御するコマンド出力制御手段と、
を有し、
前記振動状態判定手段は、前記弦振動検出手段によって検出された弦の振動において、振動ピッチの変化が予め設定された第1の閾値以下となっているか否かに基づいて、弦の振動ピッチの変化が所定以下の状態であるか否かを判定する、電子弦楽器。 - 指板部上に張設された複数の弦のいずれかが弾弦されたか否かを検出する弾弦検出手段と、
前記弾弦検出手段によって弾弦が検出された弦の振動ピッチを検出する弦振動検出手段と、
前記弦振動検出手段によって検出された弦の振動ピッチの変化が所定以下の状態であるか否かを判定する振動状態判定手段と、
前記弦振動検出手段によって検出された振動ピッチに応じて、発音中の楽音の音高を補正するためのコマンドを音源に出力するコマンド出力手段と、
前記振動状態判定手段によって前記弦の振動ピッチの変化が所定以下の状態であると判定された場合は、前記弦の振動ピッチの変化が所定以下の状態でないと判定された場合と比べて、前記コマンド出力手段による前記コマンドの出力の周期を長くするように制御するコマンド出力制御手段と、
発音後における振動ピッチの変化が予め設定された第2の閾値以上であるか否かを判定するピッチ変化判定手段と、
を有し、
前記コマンド出力制御手段は、前記ピッチ変化判定手段によって振動ピッチが前記第2の閾値以上変化したと判定された場合、前記コマンドの出力の周期をより短くする、電子弦楽器。 - 発音開始からの時間をカウントする波形タイマカウンタをさらに備え、
前記振動状態判定手段は、発音開始からの時間が予め設定された基準値を超えているか否かに基づいて、弦の振動ピッチの変化が所定以下の状態であるか否かを判定する請求項1から3のいずれか一項に記載の電子弦楽器。 - 前記コマンド出力制御手段は、前記コマンドの出力の周期を前記波形タイマカウンタのカウント値によって制御し、前記振動状態判定手段によって発音開始からの時間が前記基準値を超えていると判定された場合は、発音開始からの時間が前記基準値を超えていないと判定された場合と比べて、前記コマンドを出力する周期を大きく設定する請求項4に記載の電子弦楽器。
- 電子弦楽器が、
弾弦された弦の振幅を検出し、
検出された弦の振動ピッチの変化が予め設定された第1の閾値以下となっているか否かを判定し、
前記検出された振動ピッチに応じて、発音中の楽音の音高を補正するためのコマンドを音源に出力し、
前記弦の振動ピッチの変化が前記第1の閾値以下となっていると判定された場合は、前記弦の振動ピッチの変化が前記第1の閾値以下となっていないと判定された場合と比べて、前記コマンドの出力の周期を長くするように制御する、楽音発生方法。 - コンピュータに、
弾弦された弦の振動ピッチを検出する弦振動検出ステップと、
前記弦振動検出ステップにおいて検出された弦の振動ピッチの変化が予め設定された第1の閾値以下となっているか否かを判定する振動状態判定ステップと、
前記弦振動検出ステップにおいて検出された振動ピッチに応じて、発音中の楽音の音高を補正するためのコマンドを音源に出力するコマンド出力ステップと、
前記振動状態判定ステップにおいて前記弦の振動ピッチの変化が前記第1の閾値以下となっていると判定された場合は、前記弦の振動ピッチの変化が前記第1の閾値以下となっていないと判定された場合と比べて、前記コマンドの出力の周期を長くするように制御する、コマンド出力制御ステップと、
を実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014058971A JP6387642B2 (ja) | 2014-03-20 | 2014-03-20 | 電子弦楽器、楽音発生方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014058971A JP6387642B2 (ja) | 2014-03-20 | 2014-03-20 | 電子弦楽器、楽音発生方法及びプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015184379A JP2015184379A (ja) | 2015-10-22 |
JP2015184379A5 JP2015184379A5 (ja) | 2017-04-27 |
JP6387642B2 true JP6387642B2 (ja) | 2018-09-12 |
Family
ID=54351005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014058971A Active JP6387642B2 (ja) | 2014-03-20 | 2014-03-20 | 電子弦楽器、楽音発生方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6387642B2 (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4653376A (en) * | 1984-09-21 | 1987-03-31 | David Allured | Electronic sensing system for a stringed and fretted musical instrument |
JP2532424B2 (ja) * | 1986-12-29 | 1996-09-11 | カシオ計算機株式会社 | 波形信号入力制御装置 |
JP2722584B2 (ja) * | 1988-12-23 | 1998-03-04 | カシオ計算機株式会社 | 楽音制御装置 |
JP2775633B2 (ja) * | 1988-12-23 | 1998-07-16 | カシオ計算機株式会社 | 楽音制御装置 |
JPH02188799A (ja) * | 1989-01-18 | 1990-07-24 | Casio Comput Co Ltd | 電子楽器 |
-
2014
- 2014-03-20 JP JP2014058971A patent/JP6387642B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015184379A (ja) | 2015-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8723011B2 (en) | Musical sound generation instrument and computer readable medium | |
JP6171347B2 (ja) | 電子弦楽器、楽音生成方法及びプログラム | |
JP6847237B2 (ja) | 楽曲解析装置および楽曲解析プログラム | |
US9653059B2 (en) | Musical sound control device, musical sound control method, and storage medium | |
US9087503B2 (en) | Sampling device and sampling method | |
US9047853B2 (en) | Electronic stringed instrument, musical sound generation method and storage medium | |
JP2013125051A (ja) | 楽音制御装置 | |
US9384724B2 (en) | Music playing device, electronic instrument, music playing method, and storage medium | |
JP6387642B2 (ja) | 電子弦楽器、楽音発生方法及びプログラム | |
JP6387643B2 (ja) | 電子弦楽器、楽音発生方法及びプログラム | |
JP6048151B2 (ja) | 電子弦楽器、楽音生成方法及びプログラム | |
JP2016177119A (ja) | 電子管楽器、楽音制御方法、およびプログラム | |
JP2015011134A (ja) | 電子弦楽器、楽音発生方法及びプログラム | |
JP6135312B2 (ja) | 電子弦楽器、楽音制御方法及びプログラム | |
JP6135311B2 (ja) | 楽音発生装置、楽音発生方法及びプログラム | |
JP2015152776A (ja) | 電子弦楽器、楽音発生方法及びプログラム | |
JP5742592B2 (ja) | 楽音生成装置、楽音生成プログラム及び電子楽器 | |
JP2015172679A (ja) | 楽音発生装置、楽音発生方法及びプログラム | |
JP2014134756A (ja) | 電子弦楽器、楽音発生方法及びプログラム | |
JP6361109B2 (ja) | 電子弦楽器、楽音制御方法及びプログラム | |
JP2023046424A (ja) | 情報処理装置、電子楽器、音色制御方法及びプログラム | |
JP6102975B2 (ja) | 楽音生成装置、楽音生成プログラム及び電子楽器 | |
JP6387621B2 (ja) | 電子弦楽器の押弦位置検出装置、押弦位置検出方法及びプログラム | |
JP2014134602A (ja) | 電子弦楽器、楽音生成方法及びプログラム | |
JP2014134603A (ja) | 電子弦楽器、楽音発生方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170317 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170317 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180130 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180328 |
|
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: 20180717 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180730 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6387642 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |