(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025006344
(43)【公開日】2025-01-17
(54)【発明の名称】制御装置、楽音発音方法および楽音発音プログラム
(51)【国際特許分類】
G10H 1/00 20060101AFI20250109BHJP
G10H 1/053 20060101ALI20250109BHJP
G10H 1/10 20060101ALI20250109BHJP
【FI】
G10H1/00 A
G10H1/053 B
G10H1/10 Z
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023107076
(22)【出願日】2023-06-29
(71)【出願人】
【識別番号】000116068
【氏名又は名称】ローランド株式会社
(74)【代理人】
【識別番号】110000534
【氏名又は名称】弁理士法人真明センチュリー
(72)【発明者】
【氏名】久保 翔平
(72)【発明者】
【氏名】冨田 真司
【テーマコード(参考)】
5D478
【Fターム(参考)】
5D478CC13
5D478DA16
5D478DB12
(57)【要約】
【課題】きめ細やかなピッチの変化を実現できる制御装置、楽音発音方法および楽音発音プログラムを提供すること。
【解決手段】シンセサイザ1では、発音モードが「ストリング・ピッチベンド」である場合は、取得されたMIDIメッセージMMにピッチベンドが設定され、そのMIDIメッセージMMの弦番号Sが発音中であり、且つ、キーオフフラグがオンの場合に、当該弦番号Sの音のみ、そのピッチをMIDIメッセージMMに設定されているピッチ変化量PBだけ変化させる。これにより、ピッチ変化量PBに基づきピッチを変化させる弦と、変化させない弦とを混在させたきめ細やかなピッチの変化が可能となる。
【選択図】
図9
【特許請求の範囲】
【請求項1】
演奏情報を取得する取得手段と、
前記取得手段で取得された演奏情報に基づく楽音を発音する発音制御手段と、
ピッチを変化させる変化量であるピッチ変化量を取得する変化量取得手段と、
前記ピッチを変化させる対象の弦楽器の弦の弦番号を取得する変化弦番号取得手段と、
前記変化弦番号取得手段で取得された弦番号に対応する前記発音制御手段で発音された楽音のピッチを、前記変化量取得手段で取得されたピッチ変化量に基づいて変化させるピッチ変化手段とを備えていることを特徴とする制御装置。
【請求項2】
前記ピッチ変化手段は、発音していない楽音のピッチを変化させないことを特徴とする請求項1記載の制御装置。
【請求項3】
発音中の楽音に対してノートオフが指定された場合に、当該楽音を減衰させる態様の音である減衰音を出力する減衰音出力手段を備え、
前記ピッチ変化手段は、ノートオフが指定された前記楽音および前記減衰音出力手段で出力された減衰音のピッチを変化させないことを特徴とする請求項1記載の制御装置。
【請求項4】
前記ピッチに応じて発音する音色を設定する音色設定手段を備え、
前記ピッチ変化手段は、前記変化量取得手段で取得されたピッチ変化量に応じて楽音のピッチを変化させると共に、当該楽音の音色を当該楽音のピッチに応じて前記音色設定手段で設定された音色に変化させることを特徴とする請求項1記載の制御装置。
【請求項5】
前記ピッチ変化手段は、前記変化量取得手段で取得されたピッチ変化量に応じて楽音のピッチを変化させると共に、当該楽音の音色を当該楽音のピッチに応じて前記音色設定手段で設定された音色に変化させる際に、ピッチ及び音色を変化させる前の当該楽音の発音を停止した上で、ピッチ及び音色を変化させた後の当該楽音の発音を開始することを特徴とする請求項4記載の制御装置。
【請求項6】
前記取得手段は、前記弦楽器に基づく演奏情報を取得するものであり、
前記音色設定手段は、前記弦楽器のフレットの範囲に応じて発音する音色を設定するものであることを特徴とする請求項4又は5に記載の制御装置。
【請求項7】
前記取得手段は、前記弦楽器の弦ごとに独立した演奏情報を取得するものであることを特徴とする請求項1から4のいずれかに記載の制御装置。
【請求項8】
演奏情報を取得する取得ステップと、
前記取得ステップで取得された演奏情報に基づく楽音を発音する発音制御ステップと、
ピッチを変化させる変化量であるピッチ変化量を取得する変化量取得ステップと、
前記ピッチを変化させる対象の弦楽器の弦の弦番号を取得する変化弦番号取得ステップと、
前記変化弦番号取得ステップで取得された弦に対応する前記発音制御ステップで発音された楽音のピッチを、前記変化量取得ステップで取得されたピッチ変化量に基づいて変化させるピッチ変化ステップとを備えていることを特徴とする楽音発音方法。
【請求項9】
コンピュータに楽音の発音処理を実行させる楽音発音プログラムであって、
演奏情報を取得する取得ステップと、
前記取得ステップで取得された演奏情報に基づく楽音を発音する発音制御ステップと、
ピッチを変化させる変化量であるピッチ変化量を取得する変化量取得ステップと、
前記ピッチを変化させる対象の弦楽器の弦の弦番号を取得する変化弦番号取得ステップと、
前記変化弦番号取得ステップで取得された弦に対応する前記発音制御ステップで発音された楽音のピッチを、前記変化量取得ステップで取得されたピッチ変化量に基づいて変化させるピッチ変化ステップとを前記コンピュータに実行させることを特徴とする楽音発音プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、楽音発音方法および楽音発音プログラムに関するものである。
【背景技術】
【0002】
非特許文献1には、接続されるギターの各弦の振動およびピッチに応じた楽音を発音するギター用のシンセサイザ(制御装置)が開示されている。このようなシンセサイザの一例である、
図21のシンセサイザ500は、解析手段501a~501fと発音手段502a~502fを有している。解析手段501a~501fはそれぞれ、接続されるギターGの弦のそれぞれの振動状態を取得する検出手段100a~100fから取得された弦の振動状態から、対応するMIDIメッセージを生成するものである。発音手段502a~502fは、解析手段501a~501fのそれぞれで生成されたMIDIメッセージに対応する楽音を出力するものであり、発音手段502a~502fから出力された楽音が合成(加算)されてスピーカ19から出力される。
【先行技術文献】
【特許文献】
【0003】
【非特許文献1】BOSS GP-10 取扱説明書、[online]、[令和5年6月28日検索]、インターネット<URL:https://static.roland.com/jp/media/pdf/GP-10_j02_W.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、発音している音のピッチを、指定したピッチの変化量だけ連続的に変化させる「ピッチベンド」と呼ばれる機能がある。シンセサイザ500においては、ピッチベンドが実行された場合に全ての発音手段502a~502fに対してピッチの変化が指示される。よって、ピッチベンドを実行することで、発音中の音の全てのピッチが変化してしまうので、例えば、ピッチベンドによりピッチを変化させる弦と、ピッチを変化させない弦とが混在した楽音を発音できない等、きめ細やかなピッチの変化ができないという問題点がある。
【0005】
本発明は、上述した問題点を解決するためになされたものであり、きめ細やかなピッチの変化を実現できる制御装置、楽音発音方法および楽音発音プログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
この目的を達成するために本発明の制御装置は、演奏情報を取得する取得手段と、前記取得手段で取得された演奏情報に基づく楽音を発音する発音制御手段と、ピッチを変化させる変化量であるピッチ変化量を取得する変化量取得手段と、前記ピッチを変化させる対象の弦楽器の弦の弦番号を取得する変化弦番号取得手段と、前記変化弦番号取得手段で取得された弦番号に対応する前記発音制御手段で発音された楽音のピッチを、前記変化量取得手段で取得されたピッチ変化量に基づいて変化させるピッチ変化手段とを備えている。
【0007】
本発明の楽音発音方法は、演奏情報を取得する取得ステップと、前記取得ステップで取得された演奏情報に基づく楽音を発音する発音制御ステップと、ピッチを変化させる変化量であるピッチ変化量を取得する変化量取得ステップと、前記ピッチを変化させる対象の弦楽器の弦の弦番号を取得する変化弦番号取得ステップと、前記変化弦番号取得ステップで取得された弦に対応する前記発音制御ステップで発音された楽音のピッチを、前記変化量取得ステップで取得されたピッチ変化量に基づいて変化させるピッチ変化ステップとを備えている。
【0008】
また本発明の楽音発音プログラムは、コンピュータに楽音の発音処理を実行させるプログラムであり、演奏情報を取得する取得ステップと、前記取得ステップで取得された演奏情報に基づく楽音を発音する発音制御ステップと、ピッチを変化させる変化量であるピッチ変化量を取得する変化量取得ステップと、前記ピッチを変化させる対象の弦楽器の弦の弦番号を取得する変化弦番号取得ステップと、前記変化弦番号取得ステップで取得された弦に対応する前記発音制御ステップで発音された楽音のピッチを、前記変化量取得ステップで取得されたピッチ変化量に基づいて変化させるピッチ変化ステップとを前記コンピュータに実行させるものである。
【図面の簡単な説明】
【0009】
【
図1】(a)は、シンセサイザの電気的構成を表すブロック図であり、(b)は、弦マップを模式的に表す図であり、(c)は、ピッチマップを模式的に表す図である。
【
図2】(a)は、シンセサイザの機能ブロック図であり、(b),(c)はそれぞれMIDIメッセージの構造を模式的に表す図である。
【
図5】(a)は、MIDI処理のフローチャートであり、(b)は、取得処理のフローチャートである。
【
図6】(a)は、発音モードのストリング・モノを説明する図であり、(b)は、ストリング・モノにおける発音処理のフローチャートである。
【
図7】(a)は、発音モードのモノを説明する図であり、(b)は、発音モードのモノ・リトリガーを説明する図であり、(c)は、発音モードのストリング・モノ・リトリガーを説明する図である。
【
図8】(a)は、モノ、モノ・リトリガー及びストリング・モノ・リトリガーにおける発音処理のフローチャートであり、(b)は、ノートオン処理のフローチャートであり、(c)は、ノートオフ処理のフローチャートである。
【
図9】ストリング・ピッチベンドにおける発音処理のフローチャートである。
【
図10】(a)は、ストリング・レガートにおける発音処理のフローチャートであり、(b)は、レガート前処理のフローチャートである。
【
図11】ストリング・モノ&ホールド・ノーマルを説明する図である。
【
図12】ストリング・モノ&ホールド・キープを説明する図である。
【
図13】ストリング・モノ&ホールド・ストリングを説明する図である。
【
図14】ストリング・モノ&ソステヌートを説明する図である。
【
図15】第2実施形態のシンセサイザの機能ブロック図である。
【
図16】(a)~(c)は、それぞれ第2実施形態のシンセサイザを用いた発音モードのストリング・ピッチベンドを説明する図である。
【
図17】第3実施形態のシンセサイザの電気的構成を表すブロック図である。
【
図18】第3実施形態のシンセサイザの機能ブロック図である。
【
図19】(a)~(c)は、それぞれ第3実施形態のMIDIメッセージの構造を模式的に表す図である。
【
図20】第3実施形態の取得処理のフローチャートである。
【
図21】従来におけるシンセサイザの機能ブロック図である。
【発明を実施するための形態】
【0010】
以下、好ましい実施例について、添付図面を参照して説明する。まず、
図1(a)を参照して本実施形態のシンセサイザ1の電気的構成を説明する。
図1(a)は、シンセサイザ1の電気的構成を表すブロック図である。シンセサイザ1は、接続されるギターG(弦楽器)から入力される演奏に応じた楽音を出力する電子楽器(制御装置)である。CPU10と、フラッシュROM11と、RAM12と、入出力装置13と、音源14と、Digital Signal Processor15(以下「DSP15」と称す)とを有し、それぞれバスライン16を介して接続される。
【0011】
CPU10は、バスライン16により接続された各部を制御する演算装置である。フラッシュROM11は、CPU10により実行されるプログラムや固定値データ等を格納した書き換え可能な不揮発性の記憶装置であり、制御プログラム11aを含む。CPU10によって制御プログラム11aが実行されると、
図3のGT解析処理等が実行される。 RAM12は、CPU10がプログラムの実行時に各種のワークデータやフラグ等を書き換え可能に記憶するためのメモリであり、弦マップ12aとピッチマップ12bとが設けられる。
図1(b),(c)を参照して、弦マップ12a及びピッチマップ12bを説明する。
【0012】
図1(b)は、弦マップ12aを模式的に表す図であり、
図1(c)は、ピッチマップ12bを模式的に表す図である。弦マップ12aは、ギターGの弦の弦番号Sごとに、対応する弦がノートオンされているかを管理するデータテーブルである。弦マップ12aにおいては、ギターGの弦がユーザHによって操作され、ノートオンされたと判断される場合に、ノートオンされた弦の弦番号Sに対応するカウントに1が加算される。一方で、ギターGの弦がユーザHによって操作され、ノートオフされたと判断される場合に、ノートオフされた弦の弦番号Sに対応するカウントから1が減算される。
【0013】
またピッチマップ12bは、ピッチPごとに、対応するピッチがノートオンされているかを管理するデータテーブルである。ギターGの弦がユーザHによって操作され、ノートオンされたと判断される場合に、ノートオンされた楽音のピッチPに対応するカウントに1が加算される。一方で、ギターGの弦がユーザHによって操作され、ノートオフされたと判断される場合に、ノートオフされた楽音のピッチに対応するカウントから1が減算される。シンセサイザ1では、このような弦マップ12a及びピッチマップ12bを用いて、どの弦番号Sの、どのピッチPの楽音がノートオンされているかが判断される。
【0014】
図1(a)に戻る。入出力装置13は、外部機器から情報を入力し、また外部機器へ情報を出力する装置である。入出力装置13には、外部機器としてピックアップ装置30と足踏み式のペダル40とが接続される。ピックアップ装置30は、ギターGが接続され、そのギターGの弦ごとの振動の状態を取得する装置である。本実施形態のペダル40には、ホールドペダル及びソステヌートペダル(共に図示せず)が設けられるが、これ以外のペダルを含んでも良い。入出力装置13に接続されたピックアップ装置30及びペダル40からの情報に基づいてシンセサイザ1は楽音を生成して出力する。
【0015】
音源14は、CPU10から入力される演奏情報に基づく波形データを出力する装置である。DSP15は、音源14から入力された波形データを演算処理するための演算装置である。DSP15には、デジタルアナログコンバータ(DAC)17が接続され、そのDAC17にはアンプ18が接続され、そのアンプ18にはスピーカ19が接続される。
【0016】
次に、
図2を参照してシンセサイザ1の機能を説明する。
図2(a)は、シンセサイザ1の機能ブロック図である。シンセサイザ1は、GT解析手段101a~101fと、パケット生成手段102と、PD解析手段103と、発音手段104とを有する。
【0017】
GT解析手段101a~101fはそれぞれ、取得されたギターGの弦の振動の状態からピッチP及びレベルL等を解析するものであり、上記したCPU10で実現される。GT解析手段101a~101fで取得されるギターGの弦の振動の状態は、ギターGの弦ごとに設けられる検出手段100a~100fで取得される。検出手段100a~100fは、上記したピックアップ装置30で実現される。本実施形態において、ギターGの弦は6本設けられるので、それぞれの弦に対応する検出手段100a~100fが設けられる。なお、ギターGの弦の数は6本に限られず、6本以上でも6本以下でも良い。この場合、検出手段およびGT解析手段は、ギターGの弦の数に応じた数だけ設ければ良い。
【0018】
GT解析手段101a~101fにはそれぞれ、対応する弦の振動の状態からピッチPを検出するピッチ検出手段110と、対応する弦の振動の状態からレベルLを検出するレベル検出手段111と、対応する弦の弦番号Sを取得する弦番号取得手段112とが設けられる。
【0019】
ピッチ検出手段110におけるピッチPの検出手法や、レベル検出手段111におけるレベルLの検出手法は、それぞれ既知の手法が用いられる。また、弦番号取得手段112における弦番号Sの取得手法としては、対応する検出手段100a~100fに予め割り振られたギターGの弦の弦番号Sを取得する手法が一例として挙げられるが、その他の手法を用いて弦番号Sを取得しても良い。GT解析手段101a~101fのそれぞれによって、ギターGの弦ごとに独立したピッチP、レベルL及び弦番号Sを取得できる。これらGT解析手段101a~101fのそれぞれで検出および取得されたピッチP、レベルL及び弦番号Sがパケット生成手段102に入力される。
【0020】
そのパケット生成手段102は、検出手段100a~100fから入力されるピッチP、レベルL及び弦番号Sに基づく各種の演奏に関する情報が設定された演奏情報である、MIDI(Musical Instrument Digital Interface)メッセージMMを作成するものである。本実施形態のMIDIメッセージMMは、「MIDI 2.0」規格に準拠したものとされる。MIDIメッセージMM及びそのMIDIメッセージMMのフォーマットであるMIDIメッセージMFの構造について、
図2(b),(c)を参照して説明する。
【0021】
図2(b),(c)は、それぞれMIDIメッセージMF,MMの構造を模式的に表す図である。MIDIメッセージMMのフォーマットとして用いられるMIDIメッセージMFは、上記の「MIDI 2.0」規格に準拠したものである。ノートオフ又はノートオンの場合は、
図2(b),(c)に示すように、タイプMt、グループMg、メッセージタイプMa、チャネルMc、ノート番号Mn、属性タイプMat、ベロシティMv及び属性データMadの各領域が設けられる。また、弦ごとにピッチベンドさせるストリング・ピッチベンドの場合は、
図2(b),(c)における属性タイプMatの領域が省略され、更に、
図2(b),(c)におけるベロシティMv及び属性データMadの代わりに、ピッチ変化量Mpが設けられる(図示せず)。
【0022】
メッセージタイプMaには、ノートオンやノートオフ等のMIDIにおける演奏指示をそれぞれ対応する値としたものが格納される。
図2(b),(c)のMIDIメッセージMF,MMは、ノートオン時のものを例示しているので、メッセージタイプMaには、ノートオンを表す値である「1001」が格納されている。メッセージタイプMaには、その他にも、ノートオフの場合は「1000」が、ストリング・ピッチベンドの場合は「0110」がそれぞれ格納される。このようなMIDIメッセージMFにパケット生成手段102で作成された演奏に関する情報を格納したものがMIDIメッセージMMである。
【0023】
図2(c)に示す通り、パケット生成手段102で作成されるMIDIメッセージMMは、グループMgにギターGの演奏に基づくことを示す「ギター」を表す情報が格納される。属性タイプMatに属性データMadにピッチ情報が格納されていることを表す「属性:ピッチ」が格納される。またノート番号MnにGT解析手段101a~101fから取得された弦番号Sが格納され、ベロシティMvにGT解析手段101a~101fから取得されたレベルLに基づくベロシティVが格納され、属性データMadにGT解析手段101a~101fから取得されたピッチPが格納される。
【0024】
なお、図示しないが、ノートオフの場合は、メッセージタイプMaに「1000」が、ノートオンの場合と同様にグループMgに「ギター」を表す情報が、属性タイプMatに「属性:ピッチ」が、ノート番号Mnに弦番号Sが、ベロシティMvにベロシティVがそれぞれ格納される。また、弦ごとにピッチベンドを行う「ストリング・ピッチベンド」の場合は、メッセージタイプMaに「0110」が、グループMgに「ギター」を表す情報が、ノート番号Mnに弦番号Sが、ピッチ変化量Mpにピッチベンドさせる際のピッチの変化量であるピッチ変化量PBがそれぞれ格納される。
【0025】
このように作成されたMIDIメッセージMMが発音手段104に入力され、楽音の発音に用いられる。なお、MIDIメッセージMMは、「MIDI 2.0」規格に準拠したものに限られず、「MIDI 1.0」等の他の規格に準拠したものでも良い。
【0026】
図2(a)に戻る。PD解析手段103は、ペダル40から入力された情報に基づくコントロールチェンジメッセージを作成するものである。発音手段104は、入力されたMIDIメッセージMMに基づいて楽音を発音するものであり、CPU10と、上記した弦マップ12a及びピッチマップ12bと、音源14、DSP15、DAC17及びアンプ18とで実現される。本実施形態では、発音手段104は1つのみ設けられるので、接続されるギターGの弦の数(6本)よりも少ない数の発音手段104が設けられる。
【0027】
具体的に、発音手段104では、パケット生成手段102から入力されたMIDIメッセージMMの演奏指示がノートオンである場合は、弦マップ12a及びピッチマップ12bにおける、当該MIDIメッセージMMの弦番号S及びピッチPに該当するカウントにそれぞれ「1」を加算する。一方で当該演奏指示がノートオフである場合は、弦マップ12a及びピッチマップ12bにおける、MIDIメッセージMMの弦番号S及びピッチPに該当するカウントからそれぞれ「1」を減算する。
【0028】
パケット生成手段102等から入力されたMIDIメッセージMMのピッチP及びベロシティVと、ノートオンやノートオフ等に応じた楽音が出力され、スピーカ19から放音される。この際、弦マップ12a及びピッチマップ12bのカウントの状態に基づいて、楽音の出力が制御される。
【0029】
以上の通り、検出手段100a~100fごと、即ちギターGの弦ごとに設けられたGT解析手段101a~101fで検出・取得されたピッチP、レベルL及び弦番号Sに基づいて、パケット生成手段102でMIDIメッセージMMが生成され、発音手段104に入力される。発音手段104では、パケット生成手段102から入力されたMIDIメッセージMMのピッチP及びベロシティVと、ノートオンやノートオフ等の演奏指示に応じた楽音が出力される。これにより、ギターGの複数の弦から入力されたMIDIメッセージMMに基づく楽音を1つの発音手段104によって出力できる。
【0030】
ここで
図21の従来のシンセサイザ500では、検出手段100a~100fごとに、検出手段100a~100fで検出されたピッチP及びレベルLに基づいてMIDIメッセージMMを作成する解析手段501a~501fが設けられ、更に解析手段501a~501f毎に、作成されたMIDIメッセージMMの発音を行う発音手段502a~502fが設けられる。
【0031】
即ち従来のシンセサイザ500ではギターGの弦ごとに発音手段502a~502fが設けられる。これによって、ギターGの弦ごとに正確な楽音の発音および消音を実現できる。しかしその一方で、発音手段を構成するにはシンセサイザ500の処理に関するリソースが必要となるので、6つの発音手段502a~502fを設けることでシンセサイザ500に多大な処理負荷がかかってしまう。
【0032】
そこで本実施形態のシンセサイザ1では、発音手段104の弦マップ12a及びピッチマップ12bによって、弦番号S及びピッチPごとに楽音の発音する又は発音しないの状態を管理することで、発音手段104をギターGの弦ごとに設けずとも、即ち発音手段104の数がギターGの弦の数よりも少なくても、ギターGの弦ごとに正確な楽音の発音および消音を実現できる。これにより、シンセサイザ1において発音手段104に要する処理負荷を低減させることができる。
【0033】
次に
図3~
図14を参照して、GT解析手段101a~101f、パケット生成手段102及び発音手段104で実行される処理を説明する。まずは、
図3を参照してGT解析手段101a~101fで実行される処理を説明する。
図3は、GT解析処理のフローチャートである。GT解析処理は、シンセサイザ1の電源投入後にGT解析手段101a~101fのそれぞれで独立して実行される処理である。
【0034】
GT解析処理はまず、対応する検出手段100a~100fから入力された振動の状態に応じたレベルLと、対応する検出手段100a~100fに割り振られた弦番号Sとを取得する(S1)。
【0035】
S1の処理の後、取得したレベルLに基づき消音を検出したかを確認する(S2)。S2の処理においては、例えば、S1の処理で取得されたレベルLが所定の閾値を下回った場合に消音と検出することが挙げられるが、これ以外の手法で消音を検出しても良い。
【0036】
S2の処理において、消音を検出しなかった場合は(S2:No)、対応する検出手段100a~100fから入力された振動の状態からピッチPが検出できるかを確認する(S3)。S3の処理において、ピッチPの検出ができる場合は(S3:Yes)、検出されたピッチPを取得する(S4)。
【0037】
S4の処理の後、対応する検出手段100a~100fに割り振られている弦番号Sの弦が発音中かを確認する(S5)。S5の処理においては、例えば、前回までのGT解析処理において対応する弦番号Sの種別D_ON(後述)を出力し、その後、種別D_OFF(後述)を出力していない場合に発音中であると判断することが挙げられるが、これ以外の手法で発音中かを検出しても良い。
【0038】
S5の処理おいて、対応する弦番号Sの弦が発音中ではない場合は(S5:No)、更にアタックを検出したかを確認する(S6)。S6の処理においては、例えば、S1の処理で取得されたレベルLの変化(より具体的に増幅率)に基づいてアタックを検出することが挙げられるが、これ以外の手法でアタックを検出しても良い。
【0039】
S6の処理において、アタックを検出した場合は(S6:Yes)、S1の処理で取得された弦番号S及びレベルLと、S4の処理で取得されたピッチPと、ノートオンを表す種別D_ONとをパケット生成手段102に出力する(S7)。
【0040】
S5の処理おいて、対応する弦番号Sの弦が発音中である場合は(S5:Yes)、更にアタックを検出したかを確認する(S8)。S8の処理においても上記したS6と同等の手法でアタックの検出が確認される。S8の処理において、アタックを検出した場合は(S8:Yes)、S1の処理で取得された弦番号S及びレベルLと、S4の処理で取得されたピッチPと、現状ノートオンされている弦に対し更にノートオンがされたことを表す種別D_ON2ONとをパケット生成手段102に出力する(S9)。
【0041】
S8の処理において、アタックを検出しなかった場合は(S8:No)、S1の処理で取得された弦番号S及びレベルLと、S4の処理で取得されたピッチPと、対応する弦をスライド、チョーキング又はビブラート等(以下「スライド等」という)をすることによりピッチPが変化したことを表す種別D_RATE_Cとをパケット生成手段102に出力する(S10)。またS2の処理において、消音を検出した場合は(S2:Yes)、ノートオフを表す種別D_OFFをパケット生成手段102に出力する(S11)。
【0042】
S3の処理において、ピッチPが検出できないことを確認した場合(S3:No)、S6の処理において、アタックの検出を確認しなかった場合(S6:No)、又は、S7,S9,S10若しくはS11の処理の後、S1以下の処理を繰り返す。
【0043】
次に
図4を参照して、パケット生成手段102で実行される処理を説明する。
図4は、パケット作成処理のフローチャートである。パケット作成処理は、GT解析手段101a~101fのいずれかから、上記のGT解析処理のS7,S9,S10,S11の処理によって弦番号S、ピッチP等が入力された場合に実行される処理である。
【0044】
パケット作成処理はまず、GT解析手段101a~101fから入力された種別を確認する(S20)。S20の処理において、種別がD_ONの場合は(S20:D_ON)、入力されたピッチPが発音フレットの範囲内かを確認する(S21)。
【0045】
本実施形態において発音フレットとは、予めユーザHにより弦番号Sごとに設定される、発音を行うギターGのフレットのことをいう。入力されたピッチPが発音フレットの範囲内である場合は、そのピッチPによる発音が行われ、発音フレットの範囲外である場合は、そのピッチPによる発音が行われない。S21の処理では、具体的に、取得された弦番号Sに対応する発音フレットを取得し、その発音フレットが取得されたピッチPに対応するフレットを含んでいるかが確認される。なお、ピッチPに対応するフレットは、ユーザHの設定によるチューニング情報により判断される。
【0046】
S21の処理において、入力されたピッチPが発音フレットの範囲内である場合は(S21:Yes)、取得したレベルLを既知の手法によりベロシティVに変換する(S22)。S22の処理の後、GT解析手段101a~101fから入力された弦番号S及びピッチPと、S22の処理で変換されたベロシティVと、ノートオンとを含むMIDIメッセージMMを作成し、発音手段104に出力する(S23)。
【0047】
S20の処理において、種別がD_ON2ONの場合は(S20:D_ON2ON)、入力されたピッチPが発音フレットの範囲内かを確認する(S24)。S24の処理において、入力されたピッチPが発音フレットの範囲内である場合は(S24:Yes)、更に入力された弦番号Sの弦が発音中かを確認する(S25)。S25の処理において、入力された弦番号Sの弦が発音中である場合は(S25:Yes)、入力された弦番号Sとノートオフとを含むMIDIメッセージMMを作成し、発音手段104に出力する(S26)。S26の処理の後、上記のS22以下の処理を実行する。
【0048】
これによって、ノートオンされている弦に対し更にノートオンがされた場合、先のノートオンにより発音されている楽音が、S26の処理によるノートオフのMIDIメッセージMMにより消音され、その後に実行されるS22以下の処理により出力されるノートオンのMIDIメッセージMMによって、後のノートオンによる楽音が発音される。
【0049】
S25の処理において、弦番号Sの弦が発音中ではない場合は(S25:No)、S22以下の処理を実行する。これによって、何かしらの要因により先のノートオンによる楽音が消音されている場合でも、S22以下の処理によって後のノートオンによる楽音が発音される。
【0050】
S20の処理において、種別がD_ON又はD_ON2ON以外の場合は(S20:それ以外)、S27の処理で更に別の種別が確認される。S27の処理において、種別がD_RATE_Cの場合は(S27:D_RATE_C)、入力されたピッチPが発音フレットの範囲内かを確認する(S28)。
【0051】
S28の処理において、入力されたピッチPが発音フレットの範囲内である場合は(S28:Yes)、入力された弦番号Sの弦が発音中かを確認する(S29)。S29の処理において、入力された弦番号Sの弦が発音中である場合は(S29:Yes)、シンセサイザ1の発音モードが、弦ごとにピッチベンドを行うストリング・ピッチベンドかを確認する(S30)。S30の処理において、発音モードがストリング・ピッチベンドの場合は(S30:Yes)、入力された弦番号Sの弦で発音している楽音のピッチと入力されたピッチPとの差分値であるピッチ変化量PBを算出する(S31)。
【0052】
S31の処理の後、入力された弦番号Sと、算出されたピッチ変化量PBと、ピッチベンド(PitchBend)とを含むMIDIメッセージMMを作成し、発音手段104に出力する(S32)。これによって、入力された弦番号Sの弦で発音している楽音のピッチから入力されたピッチPへ音高が変化する態様の楽音が出力される。
【0053】
S29の処理において、入力された弦番号Sの弦が発音中ではない場合は(S29:No)、S22以下の処理を実行する。これにより、入力された弦番号Sの弦をスライド等することにより、ピッチPが発音フレットの範囲外の状態から発音フレットの範囲内になった場合に、対応する楽音の発音が発音される。
【0054】
S27の処理において、種別がD_OFFの場合(S27:D_OFF)、又は、S21,S24,S28の処理で入力されたピッチPが発音フレットの範囲内ではない場合は(S21,S24,S28:No)、入力された弦番号Sの弦が発音中かを確認する(S33)。S33の処理において、入力された弦番号Sの弦が発音中である場合は(S33:Yes)、入力された弦番号Sとノートオフとを含むMIDIメッセージMMを作成して、発音手段104に出力する(S34)。
【0055】
S23の処理の後、発音モードがストリング・ピッチベンドかを確認する(S35)。S35の処理において、発音モードがストリング・ピッチベンドの場合は(S35:Yes)、上記したS31以下の処理を実行する。
【0056】
S30の処理において、発音モードがストリング・ピッチベンドではない場合は(S30:No)、発音フレットが変化したかを確認する(S36)。S36の処理において、発音フレットが変化した場合は(S36:Yes)、上記したS26以下の処理を実行する。
【0057】
S32,S34の処理の後、S33の処理において、入力された弦番号Sの弦が発音中ではない場合(S33:No)、S35の処理において発音モードがストリング・ピッチベンドではない場合(S35:No)、又は、S36の処理において、発音フレットが変化していない場合は(S36:No)、パケット作成処理を終了する。
【0058】
次に
図5を参照して、発音手段104で実行される処理を説明する。
図5(a)は、MIDI処理のフローチャートである。MIDI処理は、発音手段104において、パケット生成手段102やPD解析手段103からMIDIメッセージMMが入力された場合に実行される処理である。MIDI処理はまず、取得処理(S40)を実行する。ここで
図5(b)を参照して取得処理を説明する。
【0059】
図5(b)は、取得処理のフローチャートである。取得処理はまず、入力されたMIDIメッセージMMを確認する(S50)。S50の処理では具体的に、入力されたMIDIメッセージMMのメッセージタイプMaに格納されている値が確認される。
【0060】
S50の処理において、MIDIメッセージMMがノートオン又はノートオフ(メッセージタイプMaの値が「1001」又は「1000」)の場合は(S50:「NoteOn/NoteOff」)、入力されたMIDIメッセージMMのノート番号Mn、ベロシティMv及び属性データMadの各領域(
図2(b)参照)から値を取得する(S51)。S51の処理の後、ベロシティVにベロシティMvから取得した値を設定する(S52)。S52の処理の後、ピッチPに属性データMadから取得した値を設定する(S53)。
【0061】
S50の処理において、MIDIメッセージMMがピッチベンド(メッセージタイプMaの値が「0110」)の場合は(S50:「PitchBend」)、入力されたMIDIメッセージMMのノート番号Mn及びピッチ変化量Mpの各領域から値を取得する(S54)。S54の処理の後、ピッチ変化量PBにピッチ変化量Mpから取得した値を設定する(S55)。
【0062】
S53,S55の処理の後、弦番号Sにノート番号Mnから取得した値を設定する(S56)。S50の処理において、MIDIメッセージMMがノートオン、ノートオフ又はピッチベンドのいずれでもない場合は(S50:「それ以外」)、又は、S56の処理の後、取得処理を終了する。
【0063】
図5(a)に戻る。S40の取得処理の後、入力されたMIDIメッセージMMがノートオンかを確認する(S41)。具体的に、入力されたMIDIメッセージのメッセージタイプMaが「1001」かが確認される。S41の処理において、MIDIメッセージMMがノートオンである場合は(S41:Yes) 、弦マップ12aにおける、S40の取得処理で取得された弦番号Sに該当するカウントに「1」を加算し(S42)、ピッチマップ12bにおける、S40の取得処理で取得されたピッチPに該当するカウントに「1」を加算する(S43)。
【0064】
S41の処理において、MIDIメッセージMMがノートオンではない場合(S41:No) 、又は、S43の処理の後、MIDIメッセージMMがノートオフかを確認する(S44)。具体的には、入力されたMIDIメッセージのメッセージタイプMaが「1000」かが確認される。
【0065】
S44の処理において、MIDIメッセージMMがノートオフである場合は(S44:Yes) 、弦マップ12aにおける、S40の取得処理で取得された弦番号Sに該当するカウントから「1」を減算し(S45)、ピッチマップ12bにおける、S40の取得処理で取得されたピッチPに該当するカウントから「1」を減算する(S46)。
【0066】
S44の処理において、MIDIメッセージMMがノートオフではない場合(S44:No) 、又は、S46の処理の後、発音処理(S47)を実行する。発音処理は、
図6で後述する「ストリング・モノ」等のシンセサイザ1の発音モードに応じた発音に関する処理が実行される。各発音モードによる発音処理は、
図6以降で後述する。S47の発音処理の後、MIDI処理を終了する。
【0067】
次に
図6~10を参照して、各発音モードにおけるS47の発音処理を説明する。本実施形態のシンセサイザ1では、ユーザHが設定した発音モードに応じた楽音が出力される。発音モードとしては、「ストリング・モノ」、「モノ」、「モノ・リトリガー」、「ストリング・モノ・リトリガー」、「ストリング・ピッチベンド」、「ストリング・レガート」、「ストリング・モノ&ホールド・ノーマル」、「ストリング・モノ&ホールド・キープ」、「ストリング・モノ&ホールド・ストリング」及び「ストリング・モノ&ソステヌート」が設けられる。まず
図6を参照して、発音モード「ストリング・モノ」を説明する。
【0068】
図6(a)は、発音モードのストリング・モノを説明する図である。ストリング・モノは、ある弦による楽音がノートオンされている最中に、その弦の別のフレットによる楽音のノートオンが指示された場合に、先のノートオンによって発音している楽音を消音し、後のノートオンによる楽音を発音する発音モードである。
【0069】
例えば、
図6(a)に示すように、1弦の1フレットの楽音がノートオンされている最中に、1弦の2フレットの楽音のノートオンが指示された場合に、先にノートオンされている1フレットの楽音を消音し、後のノートオンによる2フレットの楽音の発音が開始される。
図6(b)を参照して、このようなストリング・モノを実現する、S47の発音処理を説明する。
【0070】
図6(b)は、ストリング・モノにおける発音処理のフローチャートである。ストリング・モノにおける発音処理はまず、入力されたMIDIメッセージMMがノートオフかを確認する(S60)。S60の処理において、入力されたMIDIメッセージMMがノートオフではない場合は(S60:No)、入力されたMIDIメッセージMMがノートオンかを確認する(S61)。
【0071】
S61の処理において、入力されたMIDIメッセージMMがノートオンである場合は(S61:Yes)、S40の取得処理で取得された弦番号Sの弦が発音中かを確認する(S62)。S62の処理において、弦番号Sの弦が発音中である場合は(S62:Yes)、発音している弦番号Sの楽音をリリース(消音)する(S63)。
【0072】
S62の処理において、弦番号Sの弦が発音中ではない場合(S62:No)、又は、S63の処理の後、S40の取得処理で取得された弦番号S、ピッチP及びベロシティVの楽音を発音する(S64)。これにより、後に指示されたノートオンによって、同一の弦番号Sにおける、先にノートオンされている楽音が消音され、後にノートオンされた楽音が発音される。
【0073】
S60の処理において、入力されたMIDIメッセージMMがノートオフである場合は(S60:Yes)、S40の取得処理で取得された弦番号S及びピッチPが発音中かを確認する(S65)。S65の処理において、弦番号S及びピッチPが発音中である場合は(S65:Yes)、弦番号Sの楽音をリリースする(S66)。S61の処理において、入力されたMIDIメッセージMMがノートオンではない場合(S61:No)、S65の処理において、取得された弦番号S及びピッチPが発音中ではない場合(S65:No)、又は、S66の処理の後、発音処理を終了する。
【0074】
次に
図7,8を参照して、発音モード「モノ」、「モノ・リトリガー」及び「ストリング・モノ・リトリガー」を説明する。まずは
図7を参照してこれらの発音モードの概要を説明する。
【0075】
図7(a)は、発音モードのモノを説明する図である。モノは、ある弦による楽音がノートオンされている最中に、別の弦による楽音のノートオンが指示された場合に、先のノートオンによって発音している楽音を消音し、後のノートオンによる楽音を発音する発音モードである。
【0076】
例えば、
図7(a)に示すように、1弦の1フレットの楽音がノートオンされている最中に、2弦の2フレットの楽音のノートオンが指示された場合に、先にノートオンされている1弦の1フレットの楽音を消音し、後のノートオンによる2弦2フレットの楽音の発音が開始される。
【0077】
図7(b)は、発音モードのモノ・リトリガーを説明する図である。モノ・リトリガーは、1の弦による楽音がノートオンされ続けている間に、2の弦による楽音のノートオンが指示され、その後に2の弦による楽音のノートオフが指示された場合に、2の弦による楽音のノートオンと共に、1の弦のノートオンによって発音している楽音を一旦消音し、2の弦による楽音のノートオフと共に、消音された1の弦の楽音を再び発音する発音モードである。
【0078】
例えば、
図7(b)に示すように、1弦の1フレットの楽音がノートオンされている最中に、2弦の1フレットの楽音のノートオンが指示され、その後に2弦の1フレットの楽音のノートオフが指示された場合に、2弦の1フレットの楽音のノートオンと共に、発音している1弦の1フレットの楽音を一旦消音し、2弦の1フレットの楽音のノートオンと共に、消音した1弦の1フレットの楽音の発音が再び開始される。
【0079】
図7(c)は、発音モードのストリング・モノ・リトリガーを説明する図である。ストリング・モノ・リトリガーは、
図6(a)で上記したストリング・モノと、
図7(b)で上記したモノ・リトリガーとを組み合わせた発音モードである。
【0080】
具体的に、1の弦による楽音がノートオンされ続けている間に、2の弦の1のフレットによる楽音のノートオンが指示され、更に2の弦の2のフレットによる楽音のノートオンが指示され、その後に、2の弦の1のフレット及び2の弦の2のフレットによる楽音のそれぞれにノートオフが指示された場合に、2の弦の1のフレットによる楽音のノートオンと共に、1の弦のノートオンによって発音している楽音を一旦消音し、2の弦の2のフレットによる楽音のノートオンと共に、2の弦の1のフレットによる楽音を消音し、2の弦の1のフレット及び2の弦の2のフレットによる楽音のそれぞれにノートオフと共に、一旦消音された1の弦の楽音を再び発音する発音モードである。
【0081】
例えば、
図7(c)に示すように、1弦の1フレットの楽音がノートオンされている最中に、2弦の1フレットの楽音のノートオンが指示され、その後に2弦の1フレットの楽音のノートオフが指示された場合に、2弦の1フレットの楽音のノートオンと共に、発音している1弦の1フレットの楽音を一旦消音し、2弦の1フレットの楽音のノートオンと共に、消音した1弦の1フレットの楽音の発音が再び開始される。
図8を参照して、これらモノ、モノ・リトリガー及びストリング・モノ・リトリガーを実現する、S47の発音処理を説明する。
【0082】
図8(a)は、モノ、モノ・リトリガー及びストリング・モノ・リトリガーにおける発音処理のフローチャートである。発音処理はまず、入力されたMIDIメッセージMMがノートオフかを確認する(S70)。S70の処理において、MIDIメッセージMMがノートオフではない場合は(S70:No)、当該MIDIメッセージMMがノートオンかを確認する(S71)。S71の処理において、MIDIメッセージMMがノートオンである場合は(S71:Yes)、
図8(b)で後述のノートオン処理(S72)を実行する。
【0083】
S70の処理において、入力されたMIDIメッセージMMがノートオフである場合は(S70:Yes)、
図8(c)で後述のノートオフ処理(S73)を実行する。S71の処理において、入力されたMIDIメッセージMMがノートオンはない場合(S71:No)、又は、S72,S73の処理の後、発音処理を終了する。
【0084】
次に、S72のノートオン処理およびS73のノートオフ処理を説明する。
図8(b)は、ノートオン処理のフローチャートである。ノートオン処理はまず、S40の取得処理で取得された弦番号Sの弦が発音中かを確認する(S80)。S80の処理において、弦番号Sの弦が発音中である場合は(S80:Yes)、発音している弦番号Sの楽音をリリース(消音)する(S81)。
【0085】
S80の処理において、弦番号Sの弦が発音中ではない場合(S80:No)、又は、S81の処理の後、発音中の音があるかを確認する(S82)。S82の処理において、発音中の音がある場合は(S82:Yes)、発音中の音をリリース(一旦消音)する(S83)。
【0086】
S82の処理において、発音中の音がない場合(S82:No)、又は、S83の処理の後、S40の取得処理で取得された弦番号S、ピッチP及びベロシティVの楽音を発音する(S84)。
【0087】
これにより、後に指示されたノートオンによって、先にノートオンされている楽音が消音され、後にノートオンされた楽音が発音される。かかる先にノートオンされている楽音の消音の際、先にノートオンされている楽音が、後に指示されたノートオンと同一の弦番号Sである場合は、完全に消音(リリース)され、一方で同一の弦番号Sではない場合は、再発音が可能となるように一旦消音(リリース)される。
【0088】
S83の処理の後、弦番号Sの最新ベロシティV’に、ベロシティVを代入し(S85
、弦番号Sの最新ピッチP’に、ピッチPを代入して(S86)、ノートオン処理を終了する。
【0089】
図8(c)は、ノートオフ処理のフローチャートである。ノートオフ処理はまず、発音中の音の中からノートオフされていない音があるかを確認する(S90)。S90の処理において、ノートオフされていない音がある場合は(S90:Yes)、弦番号S’にノートオフされていない弦の弦番号Sのうち、最も小さい弦番号Sを代入する(S91)。
【0090】
S91の処理の後、その弦番号S’がS40の取得処理で取得された弦番号Sと同一ではなく、かつ、弦番号Sの最新ピッチP’がS40の取得処理で取得されたピッチPと同一であるかを確認する(S92)。
【0091】
S92の処理において、弦番号S’が弦番号Sと同一ではなく、かつ、弦番号Sの最新ピッチP’がピッチPと同一である場合は(S92:Yes)、弦番号S’の楽音を、弦番号S’の最新ピッチP’及び最新ベロシティV’で再発音する(S93)。これにより、
図8(b)のノートオン処理のS73の処理で一旦消音された音が再発音される。かかる再発音の際、ノートオフされていない弦番号Sが複数ある場合は、S91の処理によって、そのうちの最も小さい弦番号Sの音が再発音される。S93の処理の後、弦番号S’の音の再発音フラグにオンに設定する(S94)。
【0092】
S90の処理において、ノートオフされていない音がない場合(S90:No)、S92の処理において、弦番号S’が弦番号Sと同一、若しくは、弦番号Sの最新ピッチP’がピッチPと異なる場合(S92:No)、又は、S94の処理の後、弦番号Sの弦が発音中かを確認する(S95)。
【0093】
S95の処理において、弦番号Sの弦が発音中の場合は(S95:Yes)、ピッチPの音が発音中かを確認する(S96)。S96において、ピッチPの音が発音中ではない場合は(S96:No)、弦番号Sの音の再発音フラグがオンかを確認する(S97)。
【0094】
S96の処理において、ピッチPの音が発音中の場合(S96:Yes)、又は、S97の処理において、弦番号Sの音の再発音フラグがオンの場合は(S97:Yes)、弦番号Sの楽音をリリース(消音)する(S98)。S95の処理において、弦番号Sの弦が発音中ではない場合(S95:No)、S97の処理において、弦番号Sの音の再発音フラグがオフの場合(S97:No)、又は、S98の処理の後、ノートオフ処理を終了する。
【0095】
次に
図9を参照して、発音モード「ストリング・ピッチベンド」を説明する。ストリング・ピッチベンドは、弦番号SのMIDIメッセージMMにピッチベンドが設定されている場合、弦番号Sの弦に基づき発音している音のみに対し、そのピッチを当該MIDIメッセージMMに設定されているピッチ変化量PBだけ変化させる発音モードである。
【0096】
図9は、ストリング・ピッチベンドにおける発音処理のフローチャートである。発音処理はまず、入力されたMIDIメッセージMMがノートオフかを確認する(S110)。S110の処理において、MIDIメッセージMMがノートオフではない場合は(S110:No)、当該MIDIメッセージMMがノートオンかを確認する(S111)。S111の処理において、MIDIメッセージMMがノートオンである場合は(S111:Yes)、
図8(b)のノートオン処理(S72)を実行し、上記のノートオン処理を行った音に対してノートオフされたことを示すキーオフフラグにオフを設定する(S112)。
【0097】
S110の処理において、MIDIメッセージMMがノートオフである場合は(S110:Yes)、
図8(c)のノートオフ処理(S73)を実行し、上記のノートオン処理を行った音に対してキーオフフラグにオンを設定する(S113)。S111の処理において、MIDIメッセージMMがノートオンではない場合は(S111:No)、当該MIDIメッセージMMがピッチベンドかを確認する(S115)。
【0098】
S115の処理において、MIDIメッセージMMがピッチベンドである場合は(S115:Yes)、弦番号Sの弦が発音中かを確認する(S116)。S116の処理において、弦番号Sの弦が発音中である場合(S116:Yes)、当該音のキーオフフラグがオフかを確認する(S117)。S117の処理において、当該音のキーオフフラグがオフの場合は(S117:Yes)、発音中の弦番号Sの音のピッチにMIDIメッセージMMに設定されているピッチ変化量PBを加算する(S118)。
【0099】
以上の通り、本実施形態のシンセサイザ1の発音モードが「ストリング・ピッチベンド」である場合は、取得されたMIDIメッセージMMにピッチベンドが設定されている場合に、当該弦番号Sの音のみ、そのピッチをMIDIメッセージMMに設定されているピッチ変化量PBだけ変化させる。
【0100】
ところで
図21の従来のシンセサイザ500では、ある弦の操作に基づいてピッチベンドが指定された場合に、その弦で発音している音に限らず、発音されている全ての音のピッチがピッチ変化量PBだけ変化させていた。これによって、ユーザHが操作した弦以外のピッチの変化を意図しない弦の音までピッチが変化してしまい、ピッチベンドによりピッチを変化させる弦と、ピッチを変化させない弦とが混在した楽音を発音できない等、きめ細やかなピッチの変化ができない。
【0101】
これに対して、本実施形態のシンセサイザ1のストリング・ピッチベンドでは、ピッチベンドの指示が入力された場合に、当該弦番号Sの音のみ、そのピッチをMIDIメッセージMMに設定されているピッチ変化量PBだけ変化させる。これにより、ピッチ変化量PBに基づきピッチを変化させる弦と変化させない弦とが混在した、きめ細やかなピッチの変化が可能となる。
【0102】
また、S116の処理において、弦番号Sの音が発音していない場合、ピッチ変化量PBに基づくピッチの変化が行われない。これにより、ピッチ変化量PBに基づくピッチの変化の後に、当該弦番号Sの音を発音させる場合に、ピッチ変化量PBに基づくピッチの変化の影響を受けることなくユーザHが指定したピッチPの発音を行うことができる。
【0103】
更にS117の処理において、キーオフフラグがオンの場合、即ちノートオフがされた場合にもピッチ変化量PBに基づくピッチの変化が行われない。これは、本実施形態のシンセサイザ1では、ノートオフが指定した後に該当する楽音を減衰する態様の減衰音が出力されるからである。ノートオフがされた場合に、ピッチ変化量PBに基づくピッチの変化が行われないことで、ノートオフに応じた減衰音のピッチが変化してしまうのを抑制できるので、減衰音に対する聴取者の違和感を抑制できる。
【0104】
S115の処理において、MIDIメッセージMMがピッチベンドではない場合(S115:No)、S116の処理において、弦番号Sの弦が発音中ではない場合(S116:No)、S117の処理において、当該音のキーオフフラグがオンの場合(S117:No)、又は、S112,S113,S118の処理の後、発音処理を終了する。
【0105】
次に
図10を参照して、発音モード「ストリング・レガート」を説明する。ストリング・レガートは、予めユーザHが指定した弦番号Sの弦に2つの音(以下それぞれ「第1音」、「第2音」という)の発音が連続して指示された場合に、その弦番号Sの弦のみに対し、指示された第1音から第2音までピッチを連続的に変化(即ちレガート動作)させる発音モードである。またストリング・レガートでは、第1音と第2音との弦番号Sが異なる場合は、レガート動作を行わない。
【0106】
図10(a)は、ストリング・レガートにおける発音処理のフローチャートである。発音処理はまず、入力されたMIDIメッセージMMがノートオフかを確認する(S130)。S130の処理において、MIDIメッセージMMがノートオフではない場合は(S130:No)、当該MIDIメッセージMMがノートオンかを確認する(S131)。S131の処理において、MIDIメッセージMMがノートオンである場合は(S131:Yes)、レガートが有効かを確認する(S132)。本実施形態のシンセサイザ1において、レガートが有効か無効かをユーザHが設定できるように構成される。
【0107】
S132の処理において、レガートが有効の場合は(S132:Yes)、レガート前処理(S133)を実行する。ここで
図10(b)を参照して、レガート前処理を説明する。
【0108】
図10(b)は、レガート前処理のフローチャートである。レガート前処理はまず、ストリング・レガートが有効かを確認する(S140)。本実施形態のシンセサイザ1において、ストリング・レガートも有効か無効かをユーザHが設定できるように構成される。S140の処理において、ストリング・レガートが有効の場合は(S140:Yes)、弦番号Sの弦が発音中かを確認する(S141)。S141の処理において、弦番号Sの弦が発音中ではない場合は(S141:No)、上記の第1音の発音が指示された場合であるので、第1音の発音が指示されたことを示す初回ノートオンフラグに、オンを設定する(S142)。
【0109】
一方で、S141の処理において、弦番号Sの弦が発音中の場合は(S141:Yes)、レガートさせる「対象の音」に、弦番号Sの弦の発音中の音を設定する(S143)。S143の処理の後、上記の初回ノートオンフラグにオフを設定する(S144)。
【0110】
S140の処理において、ストリング・レガートが無効の場合は(S140:No)、ストリング・レガートの対象の弦のみならず、いずれかの弦に2つの音の発音が連続して指示された場合に、指示された第1音から、指示された第2音まで、弦を跨ぐ/跨がないに関わらず、ピッチを連続的に変化させる。よって、いずれかの弦から音が発音されているか、即ち発音中の音があるかを確認する(S145)。
【0111】
S145の処理において、発音中の音がない場合は(S145:No)、上記の初回ノートオンフラグにオンを設定する(S146)。一方で、S145の処理において、発音中の音がある場合は(S145:Yes)、「対象の音」に発音中の音を設定し(S147)、上記したS144の処理を実行する。S142,S144,S146の処理の後、レガート前処理を終了する。
【0112】
図10(a)に戻る。S133のレガート前処理の後、初回ノートオンフラグがオンかを確認する(S134)。S134の処理において、初回ノートオンフラグがオンの場合(S134:Yes)、又は、S132の処理において、レガートが無効の場合は(S132:No)、レガートにおける上記の第1音を発音する場合、又は、レガートしない場合であるので、
図8(b)のノートオン処理(S72)を実行する。
【0113】
S134の処理において、初回ノートオンフラグがオフの場合(S134:No)は、発音中の「対象の音」のピッチをレガートによって変化させる場合なので、発音中の「対象の音」のピッチP’がS40の処理で取得されたピッチP、即ち上記の第2音のピッチPと同一かを確認する(S135)。
【0114】
S135の処理において、発音中の「対象の音」のピッチP’がピッチPと異なる場合は(S135:No)、発音中の「対象の音」のピッチP’がピッチPに近づくよう、所定のピッチ値ΔPを加算し(S136)、再度、S135の処理を実行する。これにより、2つの音の発音が連続して指示された場合に、指示された第1音から第2音までピッチが連続的に変化される。
【0115】
この際、ストリング・レガートが有効の場合は、第1音と第2音との弦番号Sが同じ場合に限りピッチが連続的に変化され、ストリング・レガートが無効の場合は、指示された第1音から、指示された第2音まで、弦を跨ぐ/跨がないに関わらず、ピッチが連続的に変化される。
【0116】
一方でS135の処理において、発音中の「対象の音」のピッチP’がピッチP以上の場合は(S135:Yes)、「対象の音」の弦番号をS40の取得処理で取得された弦番号Sに設定する(S137)。S130の処理において、入力されたMIDIメッセージMMがノートオフである場合は(S130:Yes)、
図8(c)のノートオフ処理(S73)を実行する。S131の処理において、MIDIメッセージMMがノートオンではない場合(S131:No)、又は、S72,S73,S145の処理の後、発音処理を終了する。
【0117】
なお、S135,S136の処理において、指示された第1音のピッチを第2音のピッチに変化させるために、第1音のピッチにピッチ値ΔPを加算したが、これに限られない。例えば、第1音のピッチが第2音のピッチより大きい場合は、第1音のピッチからピッチ値ΔPを減算することで、第1音のピッチを第2音のピッチに変化させても良い。
【0118】
また、ピッチ値ΔPは一定の値に限られず、可変の値としても良い。例えば、ピッチ値ΔPを第1音と第2音とのピッチの差に応じた値としても良い。この際、第1音と第2音とのピッチの差が大きい場合に大きなピッチ値ΔPを設定し、第1音と第2音とのピッチの差が小さい場合に小さなピッチ値ΔPを設定することで、第1音のピッチが第2音のピッチに変化するまでの時間を一定(例えば2秒間)とするようにしても良い。
【0119】
以上、
図10ではレガート動作について説明したが、レガートと同様に、ある音程から別の音程に連続的に変化する奏法であるポルタメント動作についても、同様に処理することが可能である。
【0120】
次に
図11を参照して、発音モード「ストリング・モノ&ホールド・ノーマル」を説明する。ストリング・モノ&ホールド・ノーマルは、
図6で上記した発音モード「ストリング・モノ」と同様の動作をしつつ、ユーザHがペダル40のホールドペダルを踏んだ(オン)場合は、ホールドペダルを踏む前の発音された音と、ホールドペダルを踏んだ後に発音された音との両方の音を発音し続ける発音モードである。
【0121】
図11は、ストリング・モノ&ホールド・ノーマルを説明する図である。
図11においては、ユーザHのギターGやペダル40への操作、パケット生成手段102及び発音手段104のそれぞれにおける、ストリング・モノ&ホールド・ノーマルの動作を示している。なお、後述する
図12~14においても同様に、ユーザHのギターGやペダル40への操作、パケット生成手段102及び発音手段104のそれぞれにおける各発音モードの動作を示している。
【0122】
ストリング・モノ&ホールド・ノーマルはまず、発音手段104において、ホールドペダルが踏まれているかを示すホールド値に0x00を設定する。ホールド値には、ホールドペダルが踏まれている場合には0xFFが設定され、踏まれていない場合には0x00が設定される。
【0123】
その後、ユーザHはギターGの1弦の1フレット(F4)を演奏する。そうすると、パケット生成手段102は演奏された1弦の1フレット(図中では「1弦/F4」)の音をノートオンするMIDIメッセージMMを作成し、そのMIDIメッセージMMが入力された発音手段104では、1弦の1フレットの音を発音する。
【0124】
更に発音手段104は、1弦の1フレットの音のノートオンの入力に基づき、弦マップ12aにおける弦番号1のカウントに「1」を加算し、ピッチマップ12bにおけるピッチF4のカウントに「1」を加算する。
【0125】
その後、ユーザHはギターGで1弦の3フレット(G4)を演奏する。パケット生成手段102は演奏された1弦の3フレット(図中では「1弦/G4」)の音をノートオンするMIDIメッセージMMを作成する。そのMIDIメッセージMMが入力された発音手段104では、上記のストリング・モノの動作により、発音している1弦の1フレットの音をリリースし、その後、1弦の3フレットの音を発音する。
【0126】
この際、既に発音している1弦の1フレットに加え、1弦の3フレットが演奏されることで、パケット生成手段102には、
図3のGT解析処理のS9の処理により種別D_ON2ONが入力され、これによって、
図4のパケット生成処理のS26の処理で1弦の1フレットの音をノートオフさせるMIDIメッセージMMが作成され、発音手段104に入力される。しかしながら、上記のストリング・モノの動作により1弦の1フレットの音は既にリリースされているので、発音手段104は何も動作しない。
【0127】
発音手段104は、これら1弦の3フレットの音のノートオンと1弦の1フレットの音のノートオフとの入力に基づき、ピッチマップ12bにおけるピッチF4のカウントから「1」を減算し、ピッチG4のカウントに「1」を加算する(弦マップ12aにおける弦番号1のカウントは、「1」を加算後に「1」が減算されるので「1」のまま)。
【0128】
その後、ユーザHはホールドペダルを踏む。これに伴って、発音手段104では、ホールド値に0xFFを設定する。なお、ホールドペダルは、後述するユーザHがホールドペダルを離すタイミングまで踏み続けられるものとする(後述の
図12,13も同様とする)。
【0129】
ユーザHがホールドペダルを踏んだ後、ユーザHはギターGで1弦の5フレット(A4)を演奏する。パケット生成手段102は演奏された1弦の5フレット(図中では「1弦/A4」)の音をノートオンするMIDIメッセージMMを作成する。そのMIDIメッセージMMが入力された発音手段104では、1弦の5フレットの音を発音する。
【0130】
この際、ホールド値(=0xFF)が閾値である0x40以上なので、ストリング・モノによる発音中の1弦の3フレットの音のリリースが行われない。また、既に発音している1弦の3フレットに加えて、1弦の5フレットが演奏されることで、パケット生成手段102は、種別D_ON2ONによって1弦の3フレットの音をノートオフさせるMIDIメッセージMMが作成され、発音手段104に入力されるが、ホールド値(=0xFF)が閾値である0x40以上なので、当該MIDIメッセージMMによるリリースは行わない。この際、1弦の3フレットの音をノートオフさせるMIDIメッセージMMが入力されたことに基づいてピッチマップ12bのピッチG4のカウントから「1」が減算される。
【0131】
これらの動作によって、ユーザHがホールドペダルを踏む前の発音された1弦の3フレットの音と、ホールドペダルを踏んだ後に発音された1弦の5フレットの音との発音が継続される。発音手段104は、これら1弦の5フレットの音のノートオンと1弦の3フレットの音のノートオフとの入力に基づいてき、ピッチマップ12bにおけるピッチG4のカウントから「1」を減算し、ピッチA4のカウントに「1」を加算する(弦マップ12aにおける弦番号1のカウントは、「1」を加算後に「1」が減算されるので「1」のまま)。
【0132】
その後、ユーザHは踏んでいるホールドペダルを離すと、発音手段104は、ホールド値に0x00を設定する。これによって、ホールド値(=0x00)が閾値である0x40未満となるので、発音中の全ての音のうち、弦マップ12a及びピッチマップ12bのそれぞれのカウントに「0」が設定されている音をリリースする。
図11の場合では、1弦の3フレットの音がリリースされる。一方で、弦マップ12a及びピッチマップ12bのそれぞれのカウントに「1」以上が設定されている1弦の5フレットはリリースされず、発音が継続される。
【0133】
更にその後、ユーザHは1弦の5フレットをミュートすることで、パケット生成手段102は演奏された1弦の5フレットの音をノートオフするMIDIメッセージMMを作成し、そのMIDIメッセージMMが入力された発音手段104では、1弦の5フレットの音をリリースする。発音手段104は、1弦の5フレットの音のノートオフの入力に基づき、弦マップ12aにおける弦番号1のカウントから「1」を減算し、ピッチマップ12bにおけるピッチA4のカウントから「1」を減算する。
【0134】
次に
図12を参照して、発音モード「ストリング・モノ&ホールド・キープ」を説明する。ストリング・モノ&ホールド・キープは、「ストリング・モノ」と同様の動作をしつつ、ユーザHがホールドペダルを踏んだ場合は、ホールドペダルを踏む前の発音された音の発音を継続する一方で、ホールドペダルを踏んだ後に発音の指示がされた音の発音を行わない発音モードである。
【0135】
図12は、ストリング・モノ&ホールド・キープを説明する図である。ストリング・モノ&ホールド・キープはまず、発音手段104において、ホールド値に0x00を設定する。その後、ユーザHはギターGの1弦の1フレット(F4)を演奏する。そうすると、パケット生成手段102は演奏された1弦の1フレットの音をノートオンするMIDIメッセージMMを作成し、そのMIDIメッセージMMが入力された発音手段104は、1弦の1フレットの音を発音する。
【0136】
更に発音手段104は、1弦の1フレットの音のノートオンの入力に基づき、弦マップ12aにおける弦番号1のカウントに「1」を加算し、ピッチマップ12bにおけるピッチF4のカウントに「1」を加算する。
【0137】
その後、ユーザHはギターGで1弦の3フレット(G4)を演奏する。パケット生成手段102は演奏された1弦の3フレットの音をノートオンするMIDIメッセージMMを作成する。そのMIDIメッセージMMが入力された発音手段104では、上記のストリング・モノの動作により、発音している1弦の1フレットの音をリリースし、その後、1弦の3フレットの音を発音する。
【0138】
この際、既に発音している1弦の1フレットに加え、1弦の3フレットが演奏されることで、パケット生成手段102には、種別D_ON2ONが入力され、これによって、1弦の1フレットの音をノートオフさせるMIDIメッセージMMが作成され、発音手段104に入力される。しかしながら、上記のストリング・モノの動作により1弦の1フレットの音は既にリリースされているので、発音手段104は何も動作しない。
【0139】
発音手段104は、これら1弦の3フレットの音のノートオンと1弦の1フレットの音のノートオフとの入力に基づき、ピッチマップ12bにおけるピッチF4のカウントから「1」を減算し、ピッチG4のカウントに「1」を加算する(弦マップ12aにおける弦番号1のカウントは、「1」を加算後に「1」が減算されるので「1」のまま)。
【0140】
その後、ユーザHはホールドペダルを踏む。これに伴って、発音手段104では、ホールド値に0xFFを設定する。
【0141】
ユーザHがホールドペダルを踏んだ後、ユーザHはギターGで1弦の5フレット(A4)を演奏する。パケット生成手段102は演奏された1弦の5フレットの音をノートオンするMIDIメッセージMMを作成する。そのMIDIメッセージMMが入力された発音手段104では、ホールド値が0xFFに設定されており、閾値である0x40以上なので、入力されたMIDIメッセージMMに基づく1弦の5フレットの音の発音が行われず、ストリング・モノの動作による、1弦3フレットの音のリリースも行われない。
【0142】
また、既に発音している1弦の3フレットに加えて、1弦の5フレットが演奏されることで、パケット生成手段102は、種別D_ON2ONによって1弦の3フレットの音をノートオフさせるMIDIメッセージMMが作成され、発音手段104に入力されるが、ホールド値(=0xFF)が閾値である0x40以上なので、当該MIDIメッセージMMによるリリースは行わない。
【0143】
これらの動作によって、ユーザHがホールドペダルを踏む前の発音された1弦の3フレットの音の発音が継続される一方で、ホールドペダルを踏んだ後に指示された1弦の5フレットの音のシンセサイザ1による発音が行われない。しかしながら、ユーザHが1弦の5フレットを演奏したことに基づく1弦の振動は行われるので、その振動に基づく(生の)音は発音される。これらにより、シンセサイザ1による1弦の3フレットの音と、ユーザHが1弦の5フレットを演奏したことに基づく生の音とを組み合わせた、表現力豊かな楽音を発音できる。
【0144】
発音手段104は、これら1弦の5フレットの音のノートオンと1弦の3フレットの音のノートオフとの入力に基づきピッチマップ12bにおけるピッチG4のカウントから「1」を減算し、ピッチA4のカウントに「1」を加算する(弦マップ12aにおける弦番号1のカウントは、「1」を加算後に「1」が減算されるので「1」のまま)。
【0145】
その後、ユーザHは踏んでいるホールドペダルを離すと、発音手段104は、ホールド値に0x00を設定する。これによって、ホールド値(=0x00)が閾値である0x40未満となるので、発音中の全ての音のうち、弦マップ12a及びピッチマップ12bのそれぞれのカウントに「0」が設定されている音をリリースする。
図12の場合では、1弦の3フレットの音がリリースされる。一方で、弦マップ12a及びピッチマップ12bのそれぞれのカウントに「1」以上が設定されている音はリリースされず、発音が継続される。
【0146】
更にその後、ユーザHは1弦の5フレットをミュートすることで、パケット生成手段102は演奏された1弦の5フレットの音をノートオフするMIDIメッセージMMを作成し、そのMIDIメッセージMMが発音手段104に入力されるが、そもそも1弦の5フレットの音は発音していないので、何も動作されない。発音手段104は、1弦の5フレットの音のノートオフの入力に基づき、弦マップ12aにおける弦番号1のカウントから「1」を減算し、ピッチマップ12bにおけるピッチA4のカウントから「1」を減算する。
【0147】
次に
図13を参照して、発音モード「ストリング・モノ&ホールド・ストリング」を説明する。ストリング・モノ&ホールド・ストリングは、「ストリング・モノ」と同様の動作をしつつ、ユーザHがホールドペダルを踏んだ場合は、ホールドペダルを踏む前の発音された音の発音をリリース(一旦消音)する一方で、ホールドペダルを踏んだ後に指示がされた音の発音を行う発音モードである。
【0148】
図13は、ストリング・モノ&ホールド・ストリングを説明する図である。ストリング・モノ&ホールド・ストリングはまず、発音手段104において、ホールド値に0x00を設定する。その後、ユーザHはギターGの1弦の1フレット(F4)を演奏する。そうすると、パケット生成手段102は演奏された1弦の1フレットの音をノートオンするMIDIメッセージMMを作成し、そのMIDIメッセージMMが入力された発音手段104は、1弦の1フレットの音を発音する。
【0149】
更に発音手段104は、1弦の1フレットの音のノートオンの入力に基づき、弦マップ12aにおける弦番号1のカウントに「1」を加算し、ピッチマップ12bにおけるピッチF4のカウントに「1」を加算する。
【0150】
その後、ユーザHはギターGで1弦の3フレット(G4)を演奏する。パケット生成手段102は演奏された1弦の3フレットの音をノートオンするMIDIメッセージMMを作成する。そのMIDIメッセージMMが入力された発音手段104では、上記のストリング・モノの動作により、発音している1弦の1フレットの音をリリースし、その後、1弦の3フレットの音を発音する。
【0151】
この際、既に発音している1弦の1フレットに加え、1弦の3フレットが演奏されることで、パケット生成手段102には、種別D_ON2ONが入力され、これによって、1弦の1フレットの音をノートオフさせるMIDIメッセージMMが作成され、発音手段104に入力される。しかしながら、上記のストリング・モノの動作により1弦の1フレットの音は既にリリースされているので、発音手段104は何も動作しない。
【0152】
発音手段104は、これら1弦の3フレットの音のノートオンと1弦の1フレットの音のノートオフとの入力に基づきピッチマップ12bにおけるピッチF4のカウントから「1」を減算し、ピッチG4のカウントに「1」を加算する(弦マップ12aにおける弦番号1のカウントは、「1」を加算後に「1」が減算されるので「1」のまま)。
【0153】
その後、ユーザHはホールドペダルを踏む。これに伴って、発音手段104では、ホールド値に0xFFを設定する。
【0154】
ユーザHがホールドペダルを踏んだ後、ユーザHはギターGで1弦の5フレット(A4)を演奏する。パケット生成手段102は演奏された1弦の5フレットの音をノートオンするMIDIメッセージMMを作成する。そのMIDIメッセージMMが入力された発音手段104では、ホールド値が0xFFに設定されており、閾値である0x40以上で、且つ、1弦は発音中であるので、発音中の1弦の3フレットの音をリリース(一旦消音)し、その代わりに、入力されたMIDIメッセージMMに基づく1弦の5フレットの音の発音を行う。
【0155】
また、既に発音している1弦の3フレットに加えて、1弦の5フレットが演奏されることで、パケット生成手段102は、種別D_ON2ONによって1弦の3フレットの音をノートオフさせるMIDIメッセージMMが作成され、発音手段104に入力されるが、ホールド値(=0xFF)が閾値である0x40以上なので、当該MIDIメッセージMMによるリリースは行わない。この際、1弦の3フレットの音をノートオフさせるMIDIメッセージMMが入力されたことに基づいて、ピッチマップ12bのピッチG4のカウントから「1」が減算される。
【0156】
これらの動作によって、ユーザHがホールドペダルを踏む前の発音された1弦の3フレットの音がリリース(一旦消音)される一方で、ホールドペダルを踏んだ後に指示された1弦の5フレットの音の発音が行われる。
【0157】
発音手段104は、これら1弦の5フレットの音のノートオンと1弦の3フレットの音のノートオフとの入力に基づきピッチマップ12bにおけるピッチG4のカウントから「1」を減算し、ピッチA4のカウントに「1」を加算する(弦マップ12aにおける弦番号1のカウントは、「1」を加算後に「1」が減算されるので「1」のまま)。
【0158】
その後、ユーザHは踏んでいるホールドペダルを離すと、発音手段104は、ホールド値に0x00を設定する。これによって、ホールド値(=0x00)が閾値である0x40未満となるので、発音中の全ての音のうち、弦マップ12a及びピッチマップ12bのそれぞれのカウントに「0」が設定されている音をリリースする。なお
図13の場合は、発音中の全ての音のうち、弦マップ12a及びピッチマップ12bのそれぞれのカウントに「0」が設定されている音が存在しないので、リリースは行われない。一方で、弦マップ12a及びピッチマップ12bのそれぞれのカウントに「1」以上が設定されている1弦の5フレットはリリースされず、発音が継続される。
【0159】
更にその後、ユーザHは1弦の5フレットをミュートすることで、パケット生成手段102は演奏された1弦の5フレットの音をノートオフするMIDIメッセージMMを作成し、そのMIDIメッセージMMが入力された発音手段104では、1弦の5フレットの音をリリースする。発音手段104は、1弦の5フレットの音のノートオフの入力に基づき、弦マップ12aにおける弦番号1のカウントから「1」を減算し、ピッチマップ12bにおけるピッチA4のカウントから「1」を減算する。
【0160】
次に
図14を参照して、発音モード「ストリング・モノ&ソステヌート」を説明する。ストリング・モノ&ソステヌートは、「ストリング・モノ」と同様の動作をしつつ、ユーザHがペダル40のソステヌートペダルを踏んだ場合、ソステヌートペダルを踏む前に発音が開始された音の発音を継続すると共に、ソステヌートペダルを踏んだ後に指示がされた音のうち、その弦において最も新しく指示された音のみ発音を行う発音モードである。
【0161】
図14は、ストリング・モノ&ソステヌートを説明する図である。ストリング・モノ&ソステヌートはまず、発音手段104において、ソステヌートペダルが踏まれているかを示すSost値に0x00を設定する。Sost値には、上記のホールド値と同様に、ソステヌートペダルが踏まれている場合には0xFFが設定され、踏まれていない場合には0x00が設定される。
【0162】
その後、ユーザHはギターGの1弦の1フレット(F4)を演奏する。そうすると、パケット生成手段102は演奏された1弦の1フレットの音をノートオンするMIDIメッセージMMを作成し、そのMIDIメッセージMMが入力された発音手段104は、1弦の1フレットの音を発音する。
【0163】
更に発音手段104は、1弦の1フレットの音のノートオンの入力に基づき、弦マップ12aにおける弦番号1のカウントに「1」を加算し、ピッチマップ12bにおけるピッチF4のカウントに「1」を加算する。
【0164】
この際、発音手段104は、1弦の1フレットのSostOnフラグにオフを設定する。SostOnフラグは、音(即ち弦およびピッチ)ごとに設けられるフラグであり、ソステヌートペダルを踏む前に発音された音のSostOnフラグにはオフが設定され、ソステヌートペダルを踏んだ後に発音された音のSostOnフラグにはオンが設定される。詳細は後述するが、SostOnフラグがオフの音の発音は、ソステヌートペダルを踏んだ後も継続される。
【0165】
その後、ユーザHはソステヌートペダルを踏む。これに伴って、発音手段104では、Sost値に0xFFを設定する。なお、ソステヌートペダルも後述するユーザHがソステヌートペダルを離すタイミングまで踏み続けられるものとする。
【0166】
ユーザHがソステヌートペダルを踏んだ後、ユーザHはギターGで1弦の3フレット(G4)を演奏する。パケット生成手段102は演奏された1弦の3フレットの音をノートオンするMIDIメッセージMMを作成する。そのMIDIメッセージMMが入力された発音手段104では、まず、発音している1弦の1フレットのSostOnフラグがオフであるので、1弦の1フレットのリリースを行わない。これによって、ソステヌートペダルを踏む前に発音が開始された音の発音が継続される。
【0167】
そして、入力された1弦の3フレットの音をノートオンするMIDIメッセージMMに基づき、発音手段104では、1弦の3フレットの音を発音し、1弦の3フレットのSostOnフラグにオンを設定する。
【0168】
この際、既に発音している1弦の1フレットに加え、1弦の3フレットが演奏されることで、パケット生成手段102には、種別D_ON2ONが入力され、これによって、1弦の1フレットの音をノートオフさせるMIDIメッセージMMが作成され、発音手段104に入力される。しかしながら、1弦の1フレットの音は、SostOnフラグがオフのためリリースが行われないので、発音手段104は何も動作しない。
【0169】
発音手段104は、これら1弦の3フレットの音のノートオンと、1弦の1フレットの音のノートオフとの入力に基づき、ピッチマップ12bにおけるピッチF4のカウントから「1」が減算され、ピッチG4のカウントに「1」が加算される(弦マップ12aにおける弦番号1のカウントは、「1」を加算後に「1」が減算されるので「1」のまま)。
【0170】
その後、ユーザHはギターGで1弦の5フレット(A4)を演奏する。パケット生成手段102は演奏された1弦の5フレットの音をノートオンするMIDIメッセージMMを作成する。そのMIDIメッセージMMが入力された発音手段104では、発音中の1弦の3フレットの音をリリースする。かかるリリースは、上記のストリング・モノに加え、1弦の3フレットのSostOnフラグがオンであるために行われるものである。
【0171】
その一方で、発音中の1弦の1フレットの音は、対応するSostOnフラグがオフであるため、当該音のリリースが行われない。そして、1弦の5フレットの音をノートオンするMIDIメッセージMMに基づき、1弦の5フレットの音を発音し、1弦の5フレットのSostOnフラグにオンを設定する。これによって、ソステヌートペダルを踏む前に発音が開始された音(即ち1弦の1フレットの音)の発音が継続されると共に、ソステヌートペダルを踏んだ後に発音が指示された音は、その弦において最も新しく指示された音(即ち1弦の5フレットの音)のみ発音される。
【0172】
発音手段104は、これら1弦の5フレットの音のノートオンと、1弦の3フレットの音のノートオフとの入力に基づき、ピッチマップ12bにおけるピッチG4のカウントから「1」を減算し、ピッチA4に「1」を加算する(弦マップ12aにおける弦番号1のカウントは、「1」を加算後に「1」が減算されるので「1」のまま)。
【0173】
その後、ユーザHは踏んでいるソステヌートペダルを離すと、発音手段104は、Sost値に0x00を設定する。これによって、Sost値(=0x00)が閾値である0x40未満になるので、発音中の音をリリースする。この際、弦マップ12a及びピッチマップ12bのそれぞれのカウントに「1」が設定されている音はリリースしない。従って
図14の場合では、ピッチマップ12bのカウントに0が設定されている1弦の1フレット(F4)の音がリリースされ、弦マップ12a及びピッチマップ12bのそれぞれのカウントに「1」が設定されている1弦の5フレット(A4)の音はリリースされない。また、このときリリースしなかった音のSostOnフラグを全てオフに設定する。
【0174】
更にその後、ユーザHは1弦の5フレットをミュートすることで、パケット生成手段102は演奏された1弦の5フレットの音をノートオフするMIDIメッセージMMを作成し、そのMIDIメッセージMMが入力された発音手段104では、1弦の5フレットの音をリリースする。発音手段104は、1弦の5フレットの音のノートオフの入力に基づき、弦マップ12aにおける弦番号1のカウントから「1」を減算し、ピッチマップ12bにおけるピッチA4のカウントから「1」を減算する。
【0175】
なお、
図11の「ストリング・モノ&ホールド・ノーマル」と
図14の「ストリング・モノ&ソステヌート」とを別々に動作するものに限られず、これらを併用しても良い。
【0176】
次に
図15,16を参照して、第2実施形態のシンセサイザ200を説明する。上記した第1実施形態のシンセサイザ1では、発音手段104が1つのみ設けられる構成とした。これに対して第2実施形態のシンセサイザ200では、発音手段104a,104bの2つが設けられ、それぞれの発音手段104a,104bで音色などの楽音の態様を独立して設定できるように構成される。上記した第1実施形態と同一の構成については同一の符号を付し、詳細な説明は省略する。
【0177】
図15は、第2実施形態のシンセサイザ200の機能ブロック図である。第2実施形態のシンセサイザ200においては、発音手段104a,104bの2つが設けられる。発音手段104a,104bのそれぞれに、パケット生成手段102a,102bが設けられる。具体的に、発音手段104aには、パケット生成手段102aが設けられ、発音手段104bには、パケット生成手段102bが設けられる。
【0178】
また、パケット生成手段102a,102bのそれぞれにおいて、上記した弦番号S毎の発音フレットが独立して設定可能に構成され、更に発音手段104a,104bにおいて発音フレットのそれぞれにおいて発音する楽音の音色を独立して設定可能に構成される。これにより、発音手段104が1つのみに設けられる第1実施形態のシンセサイザと比較して、第2実施形態のシンセサイザ200は、発音を行うフレットや、発音する音色を組み合わせた、表現力豊かな楽音を出力することができる。
【0179】
次に
図16を参照して、第2実施形態のシンセサイザ200を用いた発音モード「ストリング・ピッチベンド」の動作を説明する。
図16(a)~(c)は、それぞれ第2実施形態のシンセサイザ200を用いた発音モードのストリング・ピッチベンドを説明する図である。
【0180】
図16(a)においては、発音手段104aの音色にピアノが設定され、パケット生成手段102aの発音フレットに1フレット~3フレットが設定され、かつ、ストリング・ピッチベンドを用いない設定がされている。この場合、ユーザHが3弦の1フレットを押さえて3弦を弾き、そのまま3弦の1フレットから3弦の3フレットまでスライド等をした場合、まず3弦の1フレットを弾くことで当該フレットに対応するピッチPのピアノ音が発音される。2フレットに到達した場合に1フレットに対応するピッチPのピアノ音が停止され、その代わりに、2フレットに対応するピッチPのピアノ音が発音される。同様に、3フレットに到達した場合に2フレットに対応するピッチPのピアノ音が停止され、その代わりに、3フレットに対応するピッチPのピアノ音が発音される。
【0181】
図16(b)においては、発音手段104aの音色にオルガンが設定され、パケット生成手段102aの発音フレットに4フレットのみが設定され、かつ、ストリング・ピッチベンドを用いない設定がされている。この場合、ユーザHが4弦の1フレットを押さえて4弦を弾き、そのまま4弦の1フレットから4弦の3フレットまでスライド等をした場合、まず4弦の1フレットを弾いても発音されず、そのままスライド等をして3フレットまで到達することで、4弦の3フレットに対応するピッチPのオルガン音が発音される。
【0182】
かかる3フレットまでスライド等をした場合のオルガン音の発音の開始は、
図4のパケット作成処理におけるS27~S29,S22,S23による、種別D_RATE_Cで、ピッチPが発音フレット内、かつ、弦番号S(=4弦)が発音していない場合に、ノートオンされる処理によって実現される。
【0183】
また
図16(c)においては、発音手段104aの音色にバイオリンが設定され、パケット生成手段102aの発音フレットに1,2フレットのみが設定され、かつ、ストリング・ピッチベンドを用いる設定がされている。この場合、ユーザHが5弦の1フレットを押さえて5弦を弾き、そのまま5弦の1フレットから5弦の3フレットまでスライド等をした場合、5弦の1フレットを弾くことで当該フレットに対応するピッチPのバイオリン音が発音され、そのまま2フレットにスライド等をすることで1フレットに対応するピッチPのバイオリン音から2フレットに対応するピッチPのバイオリン音に連続的に変化するように発音される。その後、3フレットにスライド等をすると発音フレットの範囲外となるので、バイオリン音の発音が停止される。
【0184】
かかる3フレットへのスライド等による発音の停止は、
図4のパケット作成処理におけるS27,S28,S33,S34による、種別D_RATE_Cで、ピッチPが発音フレット外、かつ、弦番号S(=5弦)が発音中に場合に、ノートオフされる処理によって実現される。
【0185】
このように、発音フレットや発音させる音色を様々に設定することで、フレットによって発音する/しないや、発音させる音色の種類を組み合わせた、表現力豊かな楽音の出力が可能となる。
【0186】
これに加え、例えば、
図16(a)の設定をパケット生成手段102a及び発音手段104aに行い、
図16(c)の設定をパケット生成手段102b及び発音手段104bに行うことで、3弦と5弦との1フレットを同時に抑えてこれらの弦を弾き、3弦のみを3フレットまでスライド等をすることで、5弦による楽音のピッチPを変化させることなく、3弦のピッチPのみを変化させることができる。これにより、ピアノ音とバイオリン音との楽音の、それぞれのピッチPを変化させた楽音を同時に発音できるので、表現力豊かな楽音の出力が可能となる。
【0187】
なお、
図15,16においては、発音手段104a,104b毎に音色を設定したが、これに限られない。更に発音フレットの範囲ごとに音色を設定出来るように構成しても良い。例えば、1~3フレットはピアノ音を発音し、4~6フレットは、オルガン音を発音するように設定しても良い。このように設定することで、ストリング・ピッチベンドを行った場合にピッチPを連続的に変化させると共に、その音色も連続的に変化させることができる。
【0188】
次に
図17~20を参照して、第3実施形態のシンセサイザ300を説明する。上記した第1,2実施形態のシンセサイザ1,200では、ギターGから入力される演奏に基づくMIDIメッセージMMのみに応じた音を発音した。これに対して第3実施形態のシンセサイザ200では、ギターGのみならず、キーボード50やPC60からの入力に基づいて音を発音できるように構成される。上記した第1,2実施形態と同一の構成については同一の符号を付し、詳細な説明は省略する。
【0189】
図17は、第3実施形態のシンセサイザ300の電気的構成を示すブロック図である。シンセサイザ300の入出力装置13には、ピックアップ装置30及びペダル40に加え、キーボード50とPC60とが接続される。
【0190】
キーボード50は、鍵盤を有する入力装置である。キーボード50は、ユーザHの鍵盤への操作に基づくMIDIメッセージMMを作成し、入出力装置13を介してシンセサイザ300に入力される。キーボード50で作成されるMIDIメッセージMMの詳細は、
図19で後述する。PC60は、シンセサイザ300にMIDIメッセージMMを入力する情報処理装置(コンピュータ)である。
【0191】
図18は、第3実施形態のシンセサイザ300の機能ブロック図である。シンセサイザ300における発音手段104には、パケット生成手段102及びPD解析手段103に加え、上記のキーボード50及びPC60が接続される。キーボード50からは、ユーザHの鍵盤への操作に基づくMIDIメッセージMMが発音手段104に入力される。
【0192】
PC60には、一連の複数のMIDIメッセージMMから構成されるMIDIトラック51a~51fが記憶され、PC60にインストールされたアプリケーションプログラム(例えば、DAW(Digital Audio Workstation)等)により管理されている。PC60のアプリケーションプログラムによる再生指示等を起因として、PC60においてMIDIトラック51a~51fから順次読み出されたMIDIメッセージMMが、発音手段104に入力される。MIDIトラック51a~51fを構成するMIDIメッセージMMやその順番は、ユーザHによって編集可能に構成されるので、ユーザHは、所望の発音をするためのMIDIトラック51a~51fを作り込むことができる。なお、PC60に記憶されるMIDIトラックは、MIDIトラック51a~51fの6つに限られず、6つ以下でも、6つ以上でも良い。
【0193】
次に
図19を参照して、キーボード50で作成されるMIDIメッセージMMの構造を説明する。
図19(a)は、MIDIメッセージMFの構造を模式的に表す図であり、
図19(b)は、ギターGに基づくMIDIメッセージMMの構造を模式的に表す図であり、
図19(c)は、キーボード50に基づくMIDIメッセージMMの構造を模式的に表す図である。
【0194】
シンセサイザ300においても、MIDIメッセージMMのフォーマットとして、
図19(a)に示す、上記した
図2(b)と同様のMIDIメッセージMFが用いられる。また、ギターGに基づくMIDIメッセージMMも
図19(b)に示す、上記した
図2(c)と同様のMIDIメッセージMMが用いられる。
【0195】
キーボード50に基づくMIDIメッセージMMは、
図19(c)に示す通り、グループMgにキーボード50に基づくことを示す「KBD」を表す情報が格納され、ノート番号Mnに、操作されたキーボード50の鍵盤に基づくピッチPが格納され、ベロシティMvに鍵盤が操作された速度に基づくベロシティVが格納される。このように、ピッチPが属性データMadではなくノート番号Mnに格納されるため、属性タイプMatには、属性データMadを使用しないことを表す「属性:なし」が格納される。
【0196】
即ちギターGに基づくMIDIメッセージMMにおいてはピッチPが属性データMadに格納されるのに対し、キーボード50に基づくMIDIメッセージMMにおいては、ピッチPがノート番号Mnに格納される。なお、PC60のMIDIトラック51a~51fには、
図19(b)のパケット生成手段102で作成される形式のMIDIメッセージMMが設定されても良いし、
図19(c)のキーボード50で作成される形式のMIDIメッセージMMが設定されても良いし、これらの形式のMIDIメッセージMMが混在して設定されても良い。
【0197】
次に
図20を参照して、このようなパケット生成手段102で作成される形式のMIDIメッセージMMと、キーボード50で作成される形式のMIDIメッセージMMとのそれぞれから、ベロシティV、ピッチP及び弦番号Sを取得するための、S40の取得処理を説明する。
【0198】
図20は、第3実施形態の取得処理(S40)のフローチャートである。第3実施形態の取得処理は、S50の処理において、MIDIメッセージMMがノートオン又はノートオフの場合は(S50:「NoteOn/NoteOff」)、MIDIメッセージMMのグループMgの値と属性タイプMatの値との対応が取れているかを確認する(S150)。具体的に、グループMgの値が「ギター」であり且つ属性タイプMatの値が「属性:ピッチ」である場合、または、グループMgの値が「KBD」であり且つ属性タイプMatの値が「属性:なし」である場合に、MIDIメッセージMMのグループMgの値と属性タイプMatの値との対応が取れていると判断される。
【0199】
S150の処理において、MIDIメッセージMMのグループMgの値と属性タイプMatの値との対応が取れている場合は(S150:Yes)、上記したS51,S52の処理と同様に、入力されたMIDIメッセージMMのノート番号Mn、ベロシティMv及び属性データMadの各領域から値を取得し(S151)、ベロシティVにベロシティMvから取得した値を設定する(S152)。
【0200】
S152の処理の後、入力されたMIDIメッセージMMの属性タイプMatの値を確認する(S153)。S153の処理において、MIDIメッセージMMの属性タイプMatの値が「属性:ピッチ」である場合(S153:「属性:ピッチ」)、即ちMIDIメッセージがギターGに基づくMIDIメッセージMMである場合は、上記したS53,S56の処理と同様に、ピッチPに属性データMadから取得した値を設定し(S154)、弦番号Sにノート番号Mnから取得した値を設定する(S155)。
【0201】
一方でS153の処理において、MIDIメッセージMMの属性タイプMatの値が「属性:なし」である場合(S153:「属性:なし」)、即ちMIDIメッセージがキーボード50に基づくMIDIメッセージMMである場合は、ピッチPにノート番号Mnから取得した値を設定し(S156)、弦番号Sに「8」を設定する(S157)。
【0202】
S50の処理において、MIDIメッセージMMがピッチベンドの場合(S50:「PitchBend」、上記したS54,S55の処理の後、入力されたMIDIメッセージMMのグループMgの値を確認する(S158)。S158の処理において、MIDIメッセージMMのグループMgの値が「ギター」である場合は(S158:「ギター」)、上記したS56の処理と同様に、弦番号Sにノート番号Mnから取得した値を設定する(S159)。一方でS158の処理において、MIDIメッセージMMのグループMgの値が「KBD」である場合は(S158:「KBD」)、弦番号Sに「8」を設定する(S160)。
【0203】
これらS157,S160の処理において、キーボード50からのMIDIメッセージMMに対して、弦番号Sに「8」を設定することで、ギターGのような弦を考慮してないキーボード50からのMIDIメッセージMMを用いても、発音手段104でギターGに基づいてパケット生成手段102で作成されるMIDIメッセージMMと同等の発音処理を行うことができる。
【0204】
なお、S157,S160の処理において、弦番号Sに設定される値は「8」に限られず、「8」以上でも「8」以下でも良い。この際、同時に接続されるギターGの弦番号Sとの重複を避けるため、当該ギターGの最大の弦番号Sよりも大きい値であることが好ましい。一方で、発音モード「ストリング・レガート」の場合、S157,S160の処理で設定される弦番号Sを、ギターGの弦番号Sと同じ値に指定することで、ギターGの演奏からキーボード50の演奏にピッチを連続的につなぐ態様の発音を行うことができる。
【0205】
またS153の処理においては、MIDIメッセージMMの属性タイプMatの値を用いて、キーボード50に基づくMIDIメッセージMM又はギターGに基づくMIDIメッセージMMを判別したが、これに限られない。例えば、S158の処理と同様に、MIDIメッセージMMのグループMgの値を用いて、キーボード50に基づくMIDIメッセージMM又はギターGに基づくMIDIメッセージMMを判別しても良い。
【0206】
S50の処理において、MIDIメッセージMMがノートオン、ノートオフ又はピッチベンドのいずれでもない場合(S50:「それ以外」)、又は、S150の処理において、MIDIメッセージMMのグループMgの値と属性タイプMatの値との対応が取れていない場合(S150:No)、又は、S155,S157,S159,S160の処理の後、取得処理を終了する。
【0207】
以上の通り、第3実施形態のシンセサイザ300では、ギターGに加え、キーボード50及びPC60が接続され、キーボード50及びPC60からもMIDIメッセージMMが入力される。これにより、シンセサイザ300は、多彩な入力先からのMIDIメッセージMMに基づく楽音の発音が可能なので、ユーザHのシンセサイザ300の使い勝手を向上させることができる。
【0208】
更に
図20の取得処理によって、キーボード50に基づくMIDIメッセージMMとギターGに基づくMIDIメッセージMMとからそれぞれベロシティV、ピッチP及び弦番号Sが取得されるので、これら2種類のMIDIメッセージMMを同一の発音手段104で処理することができる。これにより、発音手段104を、入力されるMIDIメッセージMMの種類ごとに設けずとも、即ち発音手段104が1つでも正確な楽音の発音および消音を実現できるので、2種類のMIDIメッセージMMが入力されるシンセサイザ300においても、発音手段104に要する処理負荷を低減させることができる。
【0209】
以上、上記実施形態に基づき説明したが、種々の改良変更が可能であることは容易に推察できるものである。
【0210】
上記実施形態では、発音手段104では、弦マップ12aとピッチマップ12bとの両方を設ける構成としたが、これに限られず、弦マップ12aとピッチマップ12bとのうちのいずれかを設ける構成としても良い。また、弦マップ12aとピッチマップ12bとを別々に設けるものに限られず、1つに統合したデータテーブルとしても良い。この場合、弦番号SとピッチPとの組み合わせごとに、カウントを設ければ良い。
【0211】
上記実施形態では、
図8(c)のノートオフ処理のS90~S93の処理による再発音の際に、ノートオフされていない音のうち、最も小さい弦番号Sの音を再発音したが、これに限られない。ノートオフされていない音のうち、最も大きい弦番号Sの音を再発音しても良いし、予めユーザHによって設定されている弦番号Sの音を再発音しても良い。
【0212】
第1,3実施形態のシンセサイザ1,300では、発音手段104の1つの発音手段を設け、第2実施形態のシンセサイザ200では、発音手段104a,104bの2つの発音手段を設ける構成としたが、発音手段の数はこれに限られない。第1,3実施形態のシンセサイザ1,300に2つ以上の発音手段104を設けても良いし、第2実施形態のシンセサイザ200に3つ以上の発音手段を設けても良い。
【0213】
第3実施形態では、シンセサイザ300にギターG、キーボード50及びPC60が接続されたが、これに限られない。シンセサイザ300にギターG及びキーボード50のみが接続されても良いし、シンセサイザ300にギターG及びPC60のみが接続されても良いし、シンセサイザ300にキーボード50及びPC60のみが接続されても良い。また、シンセサイザ300にキーボード50のみが接続されても良いし、シンセサイザ300にPC60のみが接続されても良い。また、シンセサイザ300にキーボード50及びPC60以外のMIDIメッセージMMを入力する装置を接続し、当該装置からMIDIメッセージMMを入力しても良い。
【0214】
また、シンセサイザ300のフラッシュROM11にMIDIトラックを記憶させ、フラッシュROM11のMIDIトラックから順次MIDIメッセージMMを読み出し、そのMIDIメッセージMMに基づいて楽音を発音しても良い。
【0215】
上記実施形態では、ストリング・ピッチベンド等のピッチベンドを適用する場合に、対象の音にピッチ変化量PBをそのまま加算する構成としたが、これに限られない。例えば、ピッチベンドを適用する弦ごとにピッチ変化量PBの2倍の変化量をピッチPに加算しても良いし、ピッチ変化量PBの0.5倍の変化量をピッチPに加算しても良い。
【0216】
第2実施形態では、発音手段104a,104bの2つの発音手段のそれぞれについて、パケット生成手段102a,102bの2つのパケット生成手段を設けたが、これに限られない。例えば、発音手段104a,104bで共通する1つのパケット生成手段を設けても良いし、1つの発音手段に2つ以上のパケット生成手段を設けても良い。
【0217】
上記実施形態では、検出手段100a~100f(ピックアップ装置30)に接続される弦楽器としてギターGを用いたが、これに限られない。例えば、ベースやバイオリン、チェロ等の他の弦楽器を用いても良い。また、弦楽器の代わりに、鍵盤楽器を用いても良い。この場合、検出手段100a~100fをそれぞれ鍵盤楽器の鍵に接続し、検出手段100a~100fでは、それぞれ対応する鍵の演奏に応じた情報を弦の振動の状態に変換し、GT解析手段101a~101fで入力された弦の振動の状態に応じたレベルL、ピッチP及び弦番号Sを検出すれば良い。
【0218】
上記実施形態では、制御装置として電子楽器であるシンセサイザ1,200を例示したが、これに限られず、他の制御装置に本発明を適用しても良い。また、制御プログラム11aを他のパーソナルコンピュータや携帯端末等の情報処理装置で実行できるようにしても良い。
【符号の説明】
【0219】
1,200 シンセサイザ(制御装置)
G ギター(弦楽器)
60 PC(情報処理装置)
11a 制御プログラム(楽音発音プログラム)
S40 取得手段、取得ステップ
S47 発音制御手段、発音制御ステップ
S55 変化量取得手段、変化量取得ステップ
S116 変化弦番号取得手段、変化弦番号取得ステップ
S118 ピッチ変化手段、ピッチ変化ステップ