(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024163649
(43)【公開日】2024-11-22
(54)【発明の名称】電子楽器、電子楽器を制御するための方法及びプログラム
(51)【国際特許分類】
G10H 1/18 20060101AFI20241115BHJP
【FI】
G10H1/18 101
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023079438
(22)【出願日】2023-05-12
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】110004185
【氏名又は名称】インフォート弁理士法人
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【弁理士】
【氏名又は名称】大菅 義之
(74)【代理人】
【識別番号】100182936
【弁理士】
【氏名又は名称】矢野 直樹
(72)【発明者】
【氏名】田近 義則
【テーマコード(参考)】
5D478
【Fターム(参考)】
5D478BC14
5D478DB11
5D478DC02
5D478DC16
(57)【要約】
【課題】電子楽器にて生成される楽音波形の表現力を向上させる技術に関し、楽音波形にランダムな要素を付加して再生される楽音波形による表現を多彩に変更可能とする。
【解決手段】プロセッサは、今回のノートオン時に波形再生部に再生開始させる楽音波形(例えば打楽器音波形)の音響特性(例えばベロシティ)を、今回と同一種別の楽音波形の前回のノートオンの時間間隔(S201)に応じて変更し(S203、S204)、それに基づく発音処理を実行する(S205)。
【選択図】
図2
【特許請求の範囲】
【請求項1】
プロセッサと、楽音波形を再生する波形再生部と、前記楽音波形の再生開始又は再生終了を夫々指示するノートオン又はノートオフを入力する操作子と、を備えた電子楽器であって、
前記プロセッサは、
前記操作子により入力された第2のノートオンを検出すると、前記第2のノートオンと同一種別の楽音波形のノートオンであって、前記第2のノートオンよりも1つ前に前記操作子により入力された第1のノートオンの検出タイミングから前記第2のノートオンの検出タイミングまでの時間間隔を算出し、
前記第2のノートオンの検出タイミングで前記波形再生部に再生開始させる前記楽音波形の音響特性を前記時間間隔に応じて変更する、
電子楽器。
【請求項2】
前記プロセッサは、
前記操作子により入力された1つの音高を指示する前記ノートオンの検出タイミングで、前記波形再生部に対して、前記ノートオンに対応付けられている1つの打楽器音波形を前記楽音波形として再生開始させ、
前記操作子により入力された前記第1のノートオン及び前記第2のノートオンが同一の前記打楽器音波形の再生開始を連続して指示している場合に、前記第2のノートオンの検出タイミングで前記波形再生部に再生開始させる前記打楽器音波形の音響特性を前記時間間隔に基づいて変更する、
請求項1に記載の電子楽器。
【請求項3】
楽器の発音源の挙動に対応した波形であって、時間経過と共に所定の最大値および所定の最小値から漸次振動しながら減衰するベロシティ変換データを記憶するメモリを備え、
前記操作子は、前記ノートオンの入力と共に前記入力の強さに応じたベロシティ値を更に入力し、
前記プロセッサは、前記第2のノートオンの検出タイミングで、前記メモリから前記時間間隔に対応する先頭からの前記時間経過の位置の前記ベロシティ変換データを読み出し、前記操作子により前記第2のノートオンと共に入力された前記ベロシティ値に前記読み出したベロシティ変換データの値を演算して得られる更新・変更されたベロシティ値を指定して、前記波形再生部に前記打楽器音波形を再生開始させる、
請求項2に記載の電子楽器。
【請求項4】
前記プロセッサは、
前記操作子により入力された前記ノートオンの検出タイミングで、前記波形再生部に前記楽音波形として前記ノートオンに対応する音高の弦楽器音波形を再生開始させると共に、前記ノートオンの検出数を1増加させ、
前記操作子により入力された前記ノートオフの検出タイミングで、前記波形再生部に前記ノートオフに対応する音高で再生中の前記弦楽器音波形を消音させると共に、前記ノートオンの検出数を1減少させ、
前記第2のノートオンの検出タイミングで、前記第2のノートオンの検出タイミングの前までの前記ノートオンの検出数が0又は1の場合に、速弾きがされたと判定して、前記波形再生部に再生開始させる前記弦楽器音波形の音響特性を前記時間間隔に応じて変更する、
請求項1に記載の電子楽器。
【請求項5】
前記プロセッサは、
前記第2のノートオンの検出タイミングで前記第2のノートオンについて弦楽器上で替えポジションを行ったと仮定したときに、前記替えポジションの後の前記第2のノートオンの押弦フレット位置と前記第1のノートオンの押弦フレット位置とのフレット差が所定フレット以内であれば、前記第2のノートオンの検出タイミングで前記波形再生部に再生開始させる前記弦楽器音波形を前記替えポジションを行ったと仮定した場合に発音されるべき弦楽器音波形に指定し、前記フレット差が前記所定フレットよりも大きければ、前記第2のノートオンの検出タイミングで前記波形再生部に再生開始させる前記弦楽器音波形を前記替えポジションを行わないと仮定した場合に発音されるべき弦楽器音波形に指定する、
請求項4に記載の電子楽器。
【請求項6】
プロセッサと、楽音波形を再生する波形再生部と、前記楽音波形の再生開始又は再生終了を夫々指示するノートオン又はノートオフを入力する操作子と、を備えた電子楽器を制御するための方法であって、
前記プロセッサは、
前記操作子により入力された第2のノートオンを検出すると、前記第2のノートオンと同一種別の楽音波形のノートオンであって、前記第2のノートオンよりも1つ前に前記操作子により入力された第1のノートオンの検出タイミングから前記第2のノートオンの検出タイミングまでの時間間隔を算出する処理と、
前記第2のノートオンの検出タイミングで前記波形再生部に再生開始させる前記楽音波形の音響特性を前記時間間隔に応じて変更する処理と、
を実行する方法。
【請求項7】
プロセッサと、楽音波形を再生する波形再生部と、前記楽音波形の再生開始又は再生終了を夫々指示するノートオン又はノートオフを入力する操作子と、を備えた電子楽器を制御するためのプログラムであって、
前記プロセッサに、
前記操作子により入力された第2のノートオンを検出すると、前記第2のノートオンと同一種別の楽音波形のノートオンであって、前記第2のノートオンよりも1つ前に前記操作子により入力された第1のノートオンの検出タイミングから前記第2のノートオンの検出タイミングまでの時間間隔を算出する処理と、
前記第2のノートオンの検出タイミングで前記波形再生部に再生開始させる前記楽音波形の音響特性を前記時間間隔に応じて変更する処理と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子楽器にて生成される楽音波形の表現力を向上させる技術に関する。
【背景技術】
【0002】
管楽器、弦楽器、打楽器のように発音に係る要素が奏者に依る割合が大きいアコースティック楽器は、毎回完全に同じ音を出すことは困難で僅かなばらつきがあり、それがその楽器の特徴や奏者の個性の一つとなっている。
【0003】
従来、表情付けルールや手順をモジュール化して演奏パラメータを自動編集し、簡単な操作で、演奏データに多彩/多様な表情付けを行えるようにした技術が知られている(例えば特許文献1に記載の技術)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、アコースティック楽器のように、演奏者による演奏の速さに応じて、発音される楽音の表現を多彩に変えたりできないという課題があった。
【0006】
本発明は、楽音波形にランダムな要素を付加して再生される楽音波形による表現を多彩に変更可能とすることで、アコースティック楽器らしさの一部を表現可能とすることを目的とする。
【課題を解決するための手段】
【0007】
態様の一例の電子楽器は、プロセッサと、楽音波形を再生する波形再生部と、楽音波形の再生開始又は再生終了を夫々指示するノートオン又はノートオフを入力する操作子と、を備え、プロセッサは、操作子により入力された第2のノートオンを検出すると、第2のノートオンと同一種別の楽音波形のノートオンであって、第2のノートオンよりも1つ前に操作子により入力された第1のノートオンの検出タイミングから第2のノートオンの検出タイミングまでの時間間隔を算出し、第2のノートオンの検出タイミングで波形再生部に再生開始させる楽音波形の音響特性を時間間隔に応じて変更する。
【発明の効果】
【0008】
本発明によれば、楽音波形にランダムな要素を付加して再生される楽音波形による表現を多彩に変更可能とすることで、これによりアコースティック楽器らしさの一部を表現することが可能となる。
【図面の簡単な説明】
【0009】
【
図1】電子鍵盤楽器の構成例を示すブロック図である。
【
図2】ノートオン検出時の制御処理の第1の実施形態を示すフローチャートである。
【
図3】ノートオン検出時の制御処理の第1の実施形態の動作説明図である。
【
図4】ノートオン検出時の制御処理の第2の実施形態、及び対応するノートオフ検出時の制御処理を示すフローチャートである。
【
図5】ノートオン検出時の制御処理の第3の実施形態、及び第3の実施形態における波形変更処理の詳細例を示すフローチャートである。
【
図6】ノートオン検出時の制御処理の第3の実施形態の動作説明図である。
【発明を実施するための形態】
【0010】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
図1は、本発明による電子楽器の実施形態である電子鍵盤楽器100のハードウェアの構成例を示す図である。
【0011】
電子楽器は、例えば電子鍵盤楽器100であり、演奏操作子としての複数の鍵からなる鍵盤105と、電子鍵盤楽器100の電源オン/オフや、音量調整、楽音出力の音色の指定やベースライン自動伴奏のテンポ等の各種設定を指示したりするスイッチ、及び演奏効果を付加するスイッチやベンドホイールやペダル等を含むスイッチ107と、各種設定情報を表示するLCD(Liquid Crystal Display:液晶ディスプレイ)109等を備える。
【0012】
また、電子鍵盤楽器100において、CPU(プロセッサ)101、ROM(リードオンリーメモリ)102、RAM(ランダムアクセスメモリ)103、音源LSI(大規模集積回路)104、鍵盤105が接続されるキースキャナ106、スイッチ107が接続されるI/Oインタフェース108、及びLCD109が接続されるLCDコントローラ110が、それぞれシステムバス114に接続されている。更に、音源LSI104の出力側には、D/Aコンバータ111、アンプ112、及びスピーカ113が順次接続される。スピーカ113は、例えば、電子鍵盤楽器100の筐体の裏面部、側面部、又は背面部等に具備される。
【0013】
プロセッサであるCPU101は、RAM103をワークメモリとして使用しながらROM102に記憶された制御プログラムを実行することにより、
図1の電子鍵盤楽器100の制御動作を実行する。
【0014】
このときCPU101は、ユーザが鍵盤105で演奏した演奏データをキースキャナ106及びシステムバス114を介して取りこみ、その演奏に応じたノートオンデータやノートオフデータを生成して、楽音波形を再生する波形再生部である音源LSI104に出力する。これにより、音源LSI104は、入力したノートオンデータやノートオフデータに応じたデジタル信号である楽音波形データ115を生成・出力し又は出力を終了する。音源LSI104から出力される楽音波形データ115は、D/Aコンバータ111でアナログ楽音波形信号116に変換された後、アンプ112で増幅され、スピーカ113から、ユーザが演奏した演奏楽音として放音される。
【0015】
以上の構成を有する電子鍵盤楽器100において、プロセッサであるCPU101がユーザの演奏に基づいて生成される楽音波形にランダムな要素を付加して発音される楽音の表現を多彩に変更可能とするための制御処理の幾つかの実施形態について、以下に詳細に説明する。
【0016】
図1のCPU101は、ROM102に記憶された制御プログラムをRAM103にロードして実行することにより、次のような制御処理を実行する。
CPU101はまず、操作子である鍵盤105により押鍵入力された第2のノートオンである今回のノートオンがキースキャナ106によって検出されると、その第2のノートオンと同一種別の楽音波形のノートオンであって、今回のノートオンよりも1つ前に鍵盤105により押鍵入力されキースキャナ106によって検出されている第1のノートオンである前回のノートオンの検出タイミングから今回のノートオンの検出タイミングまでの時間間隔を算出する。
そして、CPU101は、今回のノートオンの検出タイミングで音源LSI104に再生開始させる楽音波形データ115の音響特性を上述の算出した時間間隔に応じて変更する。
制御される音響特性は例えば、生成される楽音波形のベロシティ、楽音波形の音色(周波数特性)、楽音波形のピッチ(音高)、楽音波形の時間的減衰特性などである。
【0017】
図2は、上述したノートオン検出時の制御処理の具体例である第1の実施形態を示すフローチャートである。このフローチャートは、CPU101が実行する前述した制御処理の一部であるノートオン検出処理の例を示すものである。
CPU101は、特には図示しないメイン処理において、キースキャナ106を動作させることにより鍵盤105における何れかの鍵のノートオン(押鍵による発音開始)又はノートオフ(押鍵による発音終了)をチェックしており、ノートオンが検出されると、
図2のフローチャートの処理を実行する。
【0018】
ノートオン検出時の制御処理の第1の実施形態では、CPU101は、鍵盤105により押鍵入力された1つの音高を指示するノートオンの検出タイミングで、音源LSI104に対して、ノートオンに対応付けられている1つの打楽器音波形を楽音波形データ115として再生開始させる。
即ち、第1の実施形態では、鍵盤105上での押鍵操作により打楽器の演奏がシミュレートされる。
【0019】
CPU101は、鍵盤105上で押鍵入力された前回のノートオンと今回のノートオンが同一の打楽器音波形の再生開始を連続して指示していると判定した場合に、今回のノートオンの検出タイミングで音源LSI104に再生開始させる打楽器音波形の音響特性を、前回のノートオンから今回のノートオンまでの時間間隔に基づいて変更する。より具体的には、CPU101は、前回のノートオンと今回のノートオンの鍵入力が、同一の音高を指示していて、かつ同一の範囲のベロシティを指示している場合に、同一の打楽器音波形の再生開始が連続して指示されていると判定する。
打楽器音波形の音響特性としては例えば、ノートオンによる打撃(押鍵)時のベロシティや、打楽器音波形のシミュレート波形特性(周波数特性)、又は打楽器音波形の時間的減衰特性等がある。
【0020】
CPU101は、上記制御処理を実行するために、ノートオン検出時に、
図2のフローチャートで例示される制御処理プログラムを実行する。
【0021】
CPU101はまず、前述したようにして判定した同一の打楽器音波形の前回のノートオンからの経過時間である減算タイマ値tを取得する(
図2のステップS201)。この減算タイマ値tは、例えばRAM103に保持される変数であり、
図2の今回のノートオン検出時の制御処理の最後の後述するステップS206において、次に検出される同一の打楽器音波形のノートオンのために所定値に再セットされ、その後、例えば特には図示しない割込み処理により、又はハードウェアタイマにより、時間経過と共に0まで減衰する。この減算タイマ値tは、同一の打楽器音波形(鍵盤105上の同一の音高の鍵に対する同一のベロシティ範囲の押鍵)毎にRAM103上で設定、制御されてよい。
【0022】
次に、CPU101は、ステップS201で取得した減算タイマ値tが0になっているか否かを判定する(
図2のステップS202)。
【0023】
ステップS202の判定がYESとなる場合は、同一の打楽器音波形に対応する鍵盤105上の同一の音高の鍵に対する同一のベロシティ範囲の押鍵の時間間隔が長く、速弾きが行われていないと判断できる場合である。この場合には、連続して再生される打楽器音波形の音響特性を相互に異ならせる必要はないため、CPU101は、次のステップS203とS204の処理はスキップする。
【0024】
ステップS202の判定がNOとなる場合は、同一の打楽器音波形に対応する鍵盤105上の同一の音高の鍵に対する同一のベロシティ範囲の押鍵の時間間隔が短く、速弾きが行われていると判断できる場合である。この場合には、CPU101はまず、キースキャナ106によって今回ノートオンと共に検出されている鍵盤105での押鍵の強さを示すベロシティを取得する(
図2のステップS203)。
【0025】
次に、CPU101は、次のようなベロシティ変換処理を実行する(
図2のステップS204)。
まず、CPU101は、例えば電源オン時にROM102からRAM103に読み出されているベロシティ変換データを参照する。
図3は、RAM103に読み出されているベロシティ変換データ301の例を示す図である。ベロシティ変換データ301は例えば、複数周波数(例えば低い周波数と高い周波数)の正弦波を合成して生成され時間経過と共に、所定の最大値MAXと所定の最小値MINから漸次振動しながら減衰するデータである。打楽器の楽器全体の振動をシミュレートした大きな周期・振幅の正弦波と、打楽器の打面をシミレュートした前者より小さな周期・振幅の正弦波とが加算され、その合成波の振幅が時間経過により減衰するようなベロシティ変換データ301により、打楽器の挙動をシミュレートすることができる。その他、楽器の発音源の挙動(例えばベロシティの振動特性)に対応した波形であれば、複数の周波数の正弦波を合成した波形以外の波形に対応するベロシティ変換データが採用されてもよい。CPU101は、横軸の時間経過の値を与えることにより、その時点におけるベロシティ変換データ301の値を読み出すことができる。
次に、CPU101は、今回のノートオンの検出タイミングで、RAM103上の
図3に例示されるベロシティ変換データ301において、ステップS201で取得した減算タイマ値tに対応する先頭からの時間経過の位置のベロシティ変換データ301を読み出す。減算タイマ値tが0になっていない場合に、その減算タイマ値tが大きな値であるほど、同一の打楽器音波形についての前回のノートオンから今回のノートオンまでの時間間隔が短く、速弾きの速度が速いと判断できる。この場合には、
図3において、その大きな値の減算タイマ値tに対応する短い時間経過の位置から読み出される、大きな値範囲で振動するベロシティ変換データ301の値が読み出される。一方、減算タイマ値tが0に近い小さな値であるほど、同一の打楽器音波形についての前回のノートオンから今回のノートオンまでの時間間隔が長く、速弾きの速度が遅いと判断できる。この場合には、
図3において、その小さな値の減算タイマ値tに対応する長い時間経過の位置から読み出される、より減衰した小さな値範囲で振動するベロシティ変換データ301の値が読み出される。
【0026】
ステップS203及びS204の処理の後、CPU101は、ステップS203で取得した今回のノートオンと共に入力されたベロシティ値に、ステップS204で算出したベロシティ変換データ301の値を演算して得られる修正されたベロシティ値を指定して、音源LSI104に打楽器音波形を再生開始させる発音処理を実行する(
図2のステップS205)。
この演算は例えば、ノートオンにより入力されたベロシティ値とベロシティ変換データ301の値とを加算する演算である。演算が加算である場合のベロシティ変換データ301は、例えば最大値MAX=15と最小値MIN=-15から漸次振動しながら減衰するデータであってよい。
或いは、この演算は例えば、ノートオンにより入力されたベロシティ値とベロシティ変換データ301の値とを乗算する演算であってもよい。演算が乗算である場合のベロシティ変換データ301は、例えば最大値MAX=1.1と最小値MIN=0.9から漸次振動しながら減衰するデータであってよい。
【0027】
前述したように、その減算タイマ値tが大きな値であるほど、同一の打楽器についての速弾きの速度が速いと判断されることによりベロシティ変換データ301の値が大きい。従って、ステップS205で修正されるベロシティ値の修正幅が大きくなって、音源LSI104で今回再生開始される同一の打楽器音波形の前回からのベロシティ変化幅が大きくなる。
一方、減算タイマ値tが0に近い小さな値であるほど、同一の打楽器についての速弾きの速度が遅いと判断されることによりベロシティ変換データ301の値が小さい。従って、ステップS205で修正されるベロシティ値の修正幅が小さく、音源LSI104で今回再生開始される同一の打楽器音波形の前回からのベロシティ変化幅も小さい。
このように、第1の実施形態では、同一の打楽器の速弾きに相当する鍵盤105の同じ鍵及び同じベロシティ範囲の押鍵速度が速いほど、同一の打楽器音波形のベロシティを大きくばらつかせることが可能となる。
【0028】
一方、前述した減算タイマ値tが0になっている場合には、CPU101は、ステップS203及びS204をスキップすることにより、ステップS203で取得した今回のノートオンと共に入力されたベロシティの値をそのまま指定して、音源LSI104に打楽器音波形を再生開始させる発音処理を実行する(
図2のステップS205)。
【0029】
最後にCPU101は、RAM103上の変数である減算タイマ値tを所定値に再セットする(
図2のステップS206)。
その後、CPU101は、
図2のフローチャートで例示される第1の実施形態によるノートオン検出時の制御処理を終了し、特には図示しないメイン処理に戻る。
【0030】
上述した第1の実施形態では、同一の打楽器音波形に対応する鍵盤105上の同一の鍵の統一のベロシティ範囲の押鍵についての第1のノートオンである前回のノートオンと第2のノートオンである今回のノートオンまでの時間間隔を測定する減算タイマ値tに応じて、今回のノートオンによってCPU101から音源LSI104に対して再生指示される同一の打楽器音波形のベロシティがばらつくように制御された。これに対して、ベロシティではなく、打楽器音波形の音色などの音響特性が変更されてもよい。
【0031】
図4(a)は、CPU101が実行する特には図示しないメイン処理によりキースキャナ106において鍵盤105上の何れかの鍵のノートオンが検出された場合の制御処理の第2の実施形態を示すフローチャートである。
また、
図4(b)は、CPU101が実行する特には図示しないメイン処理によりキースキャナ106において鍵盤105上の何れかの鍵のノートオフが検出された場合の制御処理を示すフローチャートである。
これらのフローチャートは、
図2の第1の実施形態の場合と同様に、CPU101が実行する前述した制御処理の一部であるノートオン検出処理及びノートオフ検出処理の例を示すものである。
【0032】
ノートオン検出時の制御処理の第2の実施形態では、CPU101は、鍵盤105により押鍵入力された1つの音高を指示するノートオンの検出タイミングで、音源LSI104に楽音波形データ115としてノートオンに対応する音高の弦楽器音波形を再生開始させると共に、RAM103上の変数であるノートオンの検出数を1増加させる。
即ち、第2の実施形態では、鍵盤105上での押鍵操作により、弦楽器の演奏がシミュレートされる。
一方、CPU101は、鍵盤105により入力されたノートオフの検出タイミングで、音源LSI104にノートオフに対応する音高で再生中の弦楽器音波形を消音させると共に、RAM103上の変数であるノートオンの検出数を1減少させる。
【0033】
CPU101は、第2のノートオンである今回のノートオンの検出タイミングで、その直前までノートオンの検出数が0又は1の場合に、速弾きがされたと判定する。そして、この場合にCPU101は、鍵盤105上での押鍵による第2のノートオンである今回のノートオンの検出タイミングで音源LSI104に再生開始させる弦楽器音波形の音響特性を、第1のノートオンである前回のノートオンと第2のノートオンである今回のノートオンの時間間隔に応じて変更する。
弦楽器音波形の音響特性としては例えば、ノートオンによる打弦(押鍵)時のベロシティや、弦楽器音波形のシミュレート波形特性(周波数特性)、又は弦楽器音波形の時間的減衰特性等がある。
【0034】
CPU101は、上記制御処理を実行するために、ノートオン検出時に、
図4(a)のフローチャートで例示される制御処理プログラムを実行する。
【0035】
CPU101はまず、前回までのノートオン数nを取得する(
図4のステップS401)。このノートオン数nは、例えばRAM103に保持される変数であり、今回のノートオン検出時の制御処理の後述するステップS407において、次に検出されるノートオンのために1増加させられる。一方、このノートオン数nは、
図4(b)に例示されるノートオフ検出時の制御処理の最後の後述するステップS411において、次に検出されるノートオンのために1減少させられる。これにより、ノートオン数nは、現在のノートオンを含まない前回までに実際に音源LSI104から出力されている楽音波形データ115の数を示している。
【0036】
次に、CPU101は、ステップS401で取得された前回までのノートオン数nが、2よりも小さい、即ち0か1であるか否かを判定する(
図4のステップS402)。
【0037】
ノートオン数nが2以上である場合は、ノートオフ(
図4(b)の実行)がされないまま、今回を含めて同時に3音以上のノートオンが発生した場合である。これは鍵盤105上の3つ以上の鍵が同時に押鍵された場合であり、演奏者が弦楽器で和音をコード演奏することを意識した場合である。この場合には、後述するステップS405の音響特性の変更は行われずに、ステップS402の判定がNOとなってステップS406に移行して通常の発音処理が実行される。
【0038】
一方、前回までのノートオン数nが0又は1である場合には、演奏者がノートオンとノートオフを繰り返す速弾き等の演奏操作を行った場合と判断できる。この場合には、ステップS402の判定がYESとなる。ノートオン数nが1の場合も含めて判断するのは、鍵盤105上で同一の鍵に対して連続した押鍵をすると単音演奏したつもりでも、前の押鍵に対する離鍵の完了が検知される前に次の押鍵(ノートオン)が重なって検知されることがあるからである。
【0039】
ステップS402の判定がYESの場合には、CPU101は、
図2の第1の実施形態のステップS201の場合と同様に、前回のノートオンから減衰する減算タイマ値tを取得する(
図4のステップS403)。
【0040】
次に、CPU101は、
図2の第1の実施形態のステップS202の場合と同様に、ステップS403で取得した減算タイマ値tが0になっているか否かを判定する(
図4のステップS404)。
【0041】
ステップS404の判定がYESとなる場合は、CPU101は、
図2の第1の実施形態のステップS202の場合と同様に、同一の弦楽器について連続した押鍵ではあるが速弾きは行われていないと判断して、ステップS405はスキップしてステップS406の処理に移行する。
【0042】
ステップS404の判定がNOとなる場合は、同一の弦楽器について確実に速弾きが行われていると判断できる場合である。この場合には、CPU101は、第1の実施形態における
図2のステップS203及びS204の場合と同様にして、鍵盤105上での前回のノートオンと同一の鍵及び同一のベロシティ範囲の押鍵による今回のノートオンの検出タイミングで、減算タイマ値t及びベロシティ変換データ301に基づいて、音源LSI104に再生開始させる弦楽器音波形の音響特性を変更する(
図4のステップS405)。
【0043】
ステップS405の処理の後、CPU101は、今回のノートオンで入力されたノートナンバー及びベロシティに対して、ステップS405の音響特性の変更を加えて得られる発音制御データを指定して、音源LSI104に弦楽器音波形を再生開始させる発音処理を実行する(
図4のステップS406)。
【0044】
一方、前述したように、ステップS402の判定がNOの場合、又はステップS404の判定がYESの場合には、CPU101は、今回のノートオンで入力されたノートナンバー及びベロシティに対して、ステップS405の音響特性の変更は加えずに、音源LSI104に弦楽器音波形を再生開始させる通常の発音処理を実行する(
図4のステップS402の判定がNO又はステップS404の判定がYES→ステップS406)。
【0045】
その後、CPU101は、RAM103上の変数である前回までのノートオン数nを1増加させ(
図4のステップS407)、同じくRAM103上の変数である減算タイマ値tを所定値に再セットする(
図4のステップS408)。
最後に、CPU101は、
図4(a)のフローチャートで例示される第2の実施形態によるノートオン検出時の制御処理を終了し、特には図示しないメイン処理に戻る。
【0046】
CPU101は、ノートオフ検出時には、
図4(b)のフローチャートで例示される制御処理プログラムを実行する。
【0047】
図4(b)において、CPU101はまず、音源LSI104に対して、今回のノートオフで指定されている音高で再生中の弦楽器音波形の消音指示を発行する(
図4のステップS410)。
【0048】
そして、CPU101は、RAM103上の変数であるノートオンの検出数nを1減少させる(
図4のステップS411)。
【0049】
最後に、CPU101は、
図4(b)のフローチャートで例示されるノートオフ検出時の制御処理を終了し、特には図示しないメイン処理に戻る。
【0050】
図5(a)は、CPU101が実行する特には図示しないメイン処理によりキースキャナ106において鍵盤105上の何れかの鍵のノートオンが検出された場合の制御処理の第3の実施形態を示すフローチャートである。第3の実施形態では、
図4の第2の実施形態の場合と同様に、電子鍵盤楽器100により弦楽器音がシミュレートされる。第3の実施形態の制御処理は、
図1の電子鍵盤楽器100が、弦楽器としてエレクトリックベースをシミュレートする場合の例である。
【0051】
ギター楽器やベース楽器においては、異なる弦の異なるフレット位置を抑えることにより同じ音高の弦楽器音を発音させることが可能である。このように弦及び押弦フレット位置を変更することを替えポジションと呼ぶ。この場合、同じ音高であっても、替えポジションによって再生される弦楽器音も微妙に変化する。
一方、弦楽器の速弾き演奏においては、連続的に速弾き等するノートオン間で、弦が異なってもなるべく近いフレット位置で演奏を行うほうが演奏し易い。
そこで、第3の実施形態では、CPU101は、第2の実施形態の場合と同様の判定アルゴリズムにより、第1のノートオンである前回のノートオンに対して同じ弦楽器音波形についての第2のノートオンである今回のノートオンを連続的に速弾き演奏等すると判定した場合に、次のような制御処理を実行する。
即ち、CPU101は、今回のノートオンの検出タイミングで今回のノートオンについて仮想的な弦楽器上で替えポジションを行ったと仮定したときに、替えポジションの後の今回のノートオンの押弦フレット位置と前回のノートオンの押弦フレット位置とのフレット差が所定フレット例えば2フレット以内であれば、今回のノートオンの検出タイミングで波形再生部である音源LSI104に再生開始させる弦楽器音波形を替えポジションを行ったと仮定した場合に発音されるべき弦楽器音波形に指定する。
一方、CPU101は、上述のフレット差が例えば上記2フレットよりも大きければ、今回のノートオンの検出タイミングで音源LSI104に再生開始させる弦楽器音波形を替えポジションを行わなかったと仮定した場合に発音されるべき弦楽器音波形に指定する。
【0052】
CPU101は、上記制御処理を実行するために、ノートオン検出時に、
図5(a)のフローチャートで例示される制御処理プログラムを実行する。
図5(a)において、第2の実施形態に係る
図4(a)の場合と同じ参照番号が付されているステップでは、
図4(a)の場合と同じ動作が実行される。
図5(a)の動作が
図4(a)の動作と異なるのは、
図4(a)のステップS405の音響特性変更の処理が、
図5(a)のステップS501の波形変更処理に置き換えられている点、及び
図4(a)のステップS406とS407の間に
図5(a)のステップS502が挿入されている点である。
【0053】
図5(a)において、CPU101は、
図4(a)の第2の実施形態で前述したステップS404の判定がNOとなって、前回ノートオンから同一の弦楽器音についての今回のノートオンにかけて速弾き等の演奏が行われていると判定した場合に、
図5(b)のフローチャートで示される波形変更処理を実行する(
図5のステップS501)。
【0054】
図5(b)において、CPU101はまず、共にRAM103上の変数である今回のノートオンのノートナンバーN(以下「今回のノートナンバーN」と記載)と、同一の弦楽器音(鍵盤105上の同一の鍵の同一範囲のベロシティ)の前回のノートオンのノートナンバーN’(以下「前回のノートナンバーN’」と記載)を取得する(
図5(b)のステップS510)。
CPU101は、キースキャナ106から鍵盤105上の何れかの鍵のノートオンを検出したときに、その鍵に対応付けられているノートナンバーをRAM103上の変数である今回のノートナンバーNにセットする。
また、CPU101は、
図5(a)のノートオン検出処理を実行する後半のステップS502で、RAM103上の変数である今回のノートナンバーNの値を、次回のノートオン検出処理のためにRAM103上の変数である前回のノートナンバーN’にコピーしてセットする。
【0055】
図5(b)において、CPU101は次に、同一の弦楽器音についてRAM103に記憶されている上記前回のノートナンバーN’の値から上記今回のノートナンバーNの値を減算した結果が0より大きいか否かを判定する(
図5(b)のステップS511)。
【0056】
ステップS511の判定がNOならば、CPU101は、RAM103上の変数値である今回のノートナンバーNの値を5ずつ減算しながら(
図5(b)のステップS512)、今回のノートナンバーNの値が前回のノートナンバーN’の値よりも小さくなるまで、ステップS511→S512→S511の処理を繰り返し実行する。
【0057】
ステップS511の判定がYESになると、CPU101は、上記前回のノートナンバーN’の値から上記今回のノートナンバーNの値を減算した結果が2以下であるか否かを判定する(
図5(b)のステップS513)。
【0058】
CPU101は、ステップS513の判定がYESならば、選択波形変更処理を実行する(
図5(b)のステップS514)。ステップS514の処理の後、CPU101は、
図5(b)のフローチャートで示される
図5(a)のステップS501の波形変更処理を終了する。
【0059】
CPU101は、ステップS513の判定がNOならば、ステップS514の選択波形変更処理はスキップして、
図5(b)のフローチャートで示される
図5(a)のステップS501の波形変更処理を終了する。
【0060】
前回のノートオンと今回のノートオンが仮想的なエレクトリックベースの同じ弦上での押弦によって発生したと仮定すれば、今回のノートオンによる押弦を現在の弦から1弦高音側に替えポジションするとすれば、押弦フレット位置は5フレット(5半音)分小さくなる。従って、今回のノートオンの上記替えポジションの後の新たな押弦位置は、元の押弦に対応する押弦フレット位置を-5したフレット位置で、元の押弦に対応する弦よりも1弦分番号が若い弦になる。従って、新たな押弦によるフレット位置が前回のノートオンによる押弦のフレット位置に十分に近ければ(例えば2フレット以下であれば)、今回のノートオンによる押弦は上記替えポジションによって行ったほうが良いということになる。
【0061】
図6は、エレクトリックベースにおける開放から10フレットの各フレット上及び1弦~4弦の各弦上の「音高(ノートナンバー)」を示す図である。
【0062】
今、前回のノートナンバーとして例えば第3弦の第3フレットの音高(ノートナンバー)=C2(36)が押弦(ノートオン)されて発音されているときに、今回のノートオンとして同じ第3弦の第7フレットの音高(ノートナンバー)=E2(40)のノートオンが発生したとする。電子鍵盤楽器100で弦楽器をシミュレートする場合には、実際には、弦とフレットでノートオン指定がされる訳ではなく、
図1の鍵盤105上の鍵によって指定がされる。
そこで、第3の実施形態では、
図5(b)のフローチャートの処理によって、替えポジションを行うと仮定して、今回のノートオンに対応する第3弦、音高=E2の第7フレットを-5して新たに第2フレットを得、第3弦に-1して第2弦を得る。この結果、第2弦の第2フレットの音高=E2が替えポジションということになる。
この場合、新たな押弦フレット位置=第2フレット(第2弦)と前のノートオンの押弦フレット位置=第3フレット(第3弦)とのフレット差は3-2=1であるため、
図5(b)のステップS513の判定がYESとなる。従って、上述の場合には、替えポジションをしたほうがよいという判定になり、CPU101は
図5(b)のステップS514を実行する。
【0063】
一方、前回のノートナンバーとして例えば第3弦の第3フレットの音高(ノートナンバー)=C2(36)が押弦(ノートオン)されて発音されているときに、今回のノートオンとして同じ第3弦の第5フレットの音高(ノートナンバー)=D2(38)のノートオンが発生したとする。
この場合、
図5(b)のフローチャートの処理によって、替えポジションを行うと仮定して、今回のノートオンに対応する第3弦、音高=D2の第5フレットを-5して新たに開放フレットを得、第3弦に-1して第2弦を得る。この結果、第2弦の開放フレットの音高=D2が替えポジションということになる。
この場合、新たな押弦フレット位置=開放フレット(第2弦)と前のノートオンの押弦フレット位置=第3フレット(第3弦)とのフレット差は3-0=3であるため、
図5(b)のステップS513の判定がNOとなる。従って、上述の場合には、替えポジションをしないほうがよいという判定になり、CPU101は
図5(b)のステップS514をスキップする。
【0064】
更に、特には図示しないが、元の今回のノートオンによる押弦位置が元の前回のノートオンによる押弦位置よりも10フレット以上離れていれば、今回のノートオンによる押弦を現在の弦から2弦高音側に替えポジションする必要がある。この場合、押弦フレット位置は10フレット(10半音)分小さくなる。従って、今回のノートオンの上記替えポジションの後の新たな押弦位置は、元の押弦に対応する押弦フレット位置を-5する動作を2回行って-10したフレット位置で、元の押弦に対応する弦よりも2弦分番号が若い弦になる。そして、新たな押弦によるフレット位置が前回のノートオンによる押弦のフレット位置に十分に近ければ(例えば2フレット以下であれば)、今回のノートオンによる押弦は上記替えポジションによって行ったほうが良いということになる。
【0065】
以上のようにして、第3の実施形態では、電子鍵盤楽器100によって弦楽器をシミュレートする場合に、前回のノートオンのノートナンバーと今回のノートオンのノートナンバーとの関係から、替えポジションを行った方がよいか否かを自動的に判定することができる。
【0066】
そして、
図5(b)のフローチャートにおいて、ステップS513の判定がYESとなって替えポジションが行ったほうがよいと判定された場合には、CPU101は、ステップS514を実行する。これにより、CPU101は、今回のノートオンの検出タイミングで音源LSI104に再生開始させる弦楽器音波形として、替えポジションを行ったと仮定した場合に発音されるべき弦楽器音波形を選択する。
【0067】
一方、
図5(b)のフローチャートにおいて、ステップS513の判定がNOとなって替えポジションを行わないほうがよいと判定された場合には、CPU101は、ステップS514はスキップする。これにより、CPU101は、今回のノートオンの検出タイミングで音源LSI104に再生開始させる弦楽器音波形として、デフォルトとして設定されている、替えポジションを行わなかったと仮定した場合に発音されるべき弦楽器音波形を選択する。
【0068】
CPU101は、以上のようにして
図5(b)のフローチャートで示される
図5(a)のステップS501の波形変更処理を実行した後、上述のようにして選択した弦楽器音波形と、今回のノートオンにより指定されているノートナンバー及びベロシティによる発音を、音源LSI104に指示する。
【0069】
上述の第3の実施形態は、4弦のエレクトリックベースを例として説明したが、6弦のエレクトリックギターであってもよい。この場合には、今回のノートオンによる押弦を第3弦から第4弦に替えポジションした場合のみ、押弦フレット位置は5フレット(5半音)ではなく4フレット(4半音)分小さくなるため、この場合のみ
図5(b)のステップS512の処理において今回のノートナンバーNから減算する値を5から4に変更すればよい。
【0070】
以上説明した第1、第2、第3の実施形態のほか、他の実施形態として、CPU101は、ノートオンを検出したら、現在の拍子状態を調べ、1拍目とみなすことが出来れば、現在の拍子を強拍とみなし、アクセントが付く様にノートオンされる楽音波形データのベロシティを変更するような制御も可能である。
【0071】
更に、例えば弦楽器のシミュレーションにおいて、長時間の演奏でチューニングがばらついてくるようにしたり、或る音色が選ばれている時間をカウントし時間経過とともにピッチを下げてゆくような制御も可能である。或いは、時間でなくノートオン時間とベロシティの積としても良い。金管楽器音色では逆にピッチが上がるシミュレーションをしても良い。
【0072】
以上説明した実施形態によれば、ノートオン間の時間によってノートオンされる楽音波形データ115にばらつきを与えることが可能となる。これにより、同じノートナンバー・ベロシティによるノートオンでも、音響特性にばらつきを持たせるかせることができ、ランダムな要素が増えアコースティック楽器らしさの一部を表現することが可能となる。
上述の実施形態によれば、打楽器演奏におけるロールやフラムなど一つの波形データを連続再生させる場合に機械的なニュアンスを回避することが可能となる。
例えば、変換に
図3に例示したようなベロシティ変換データ301を用いることで、ドラムのシンバルのように楽器全体が大きく揺れながら楽音の振幅で細かく振動するようなデータを持たせることで、楽器の挙動のシミュレートにもつながる。
また、上述した実施形態の技術は、ギターやトランペットなどのアコースティック楽器において同一音高を連続再生させる場合に有効である。
更に弦楽器では、ピック・弓のアップダウンや使用する指により同じ弦ポジションでも音色が微妙に異なるような効果を付けることが可能となる。
同様に、管楽器では舌と喉を交互に使うダブルタンギングと言う奏法があるが、これも舌と喉で同じ音高でも音色が微妙に異なるような効果を付けることが可能となる。
これらの微妙に異なる波形を高速連続再生時に交互に発音することで、奏法のシミュレートが可能になる。
また、第3の実施形態で説明したように、同一音高で複数の楽音データを用意し、弦楽器演奏において、ポジション移動が少ない奏法を模す形で前回発音した音高から今回発音する楽音波形を選択することが可能となる。
【符号の説明】
【0073】
100 電子鍵盤楽器
101 CPU
102 ROM
103 RAM
104 音源LSI
105 鍵盤
106 キースキャナ
107 スイッチ
108 I/Oインタフェース
109 LCD
110 LCDコントローラ
111 D/Aコンバータ
112 アンプ
113 スピーカ
114 システムバス
115 楽音波形データ
116 アナログ楽音波形信号
301 ベロシティ変換データ