JP5505013B2 - 音源制御装置、楽音合成装置およびプログラム - Google Patents

音源制御装置、楽音合成装置およびプログラム Download PDF

Info

Publication number
JP5505013B2
JP5505013B2 JP2010067034A JP2010067034A JP5505013B2 JP 5505013 B2 JP5505013 B2 JP 5505013B2 JP 2010067034 A JP2010067034 A JP 2010067034A JP 2010067034 A JP2010067034 A JP 2010067034A JP 5505013 B2 JP5505013 B2 JP 5505013B2
Authority
JP
Japan
Prior art keywords
note
joint head
event
head portion
sound
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
Application number
JP2010067034A
Other languages
English (en)
Other versions
JP2011197583A (ja
Inventor
京子 大野
利明 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2010067034A priority Critical patent/JP5505013B2/ja
Publication of JP2011197583A publication Critical patent/JP2011197583A/ja
Application granted granted Critical
Publication of JP5505013B2 publication Critical patent/JP5505013B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、演奏データの特徴に基づいて、付加すべき対象の音楽的表現を決定する音源制御装置、楽音合成装置およびプログラムに関する。
演奏者による演奏操作子の操作に伴い発生される演奏データ、あるいは予め用意された演奏データに基づいて楽音を発生する電子楽器において、演奏データの特徴に基づいて、様々な音楽的表現を自動的に付加するものが知られている。例えば、あるノート(ノートNT1という)がノートオンされ、該ノートNT1がノートオフされる前に他のノート(ノートNT2という)がノートオンされると、ノートNT1,NT2の音高差が所定範囲内である等の条件を満たした場合に自動的にレガート奏法等の音響効果を付加する技術が知られている(特許文献1)。また、ノートNT1がノートオンされた後にノートオフされるまでの期間内に、ノートNT2がノートオンされノートオフされたとする。かかる場合、所定の条件の下で、ノートNT2のノートオンとともにノートNT1を消音し、ノートNT2のノートオフとともにノートNT1の発音を再開する技術も知られている(特許文献2)。
特開2006−126710号公報 特開平5−249963号公報
ところで、楽曲の中には、アップテンポなものもスローテンポなものもあり、一曲の楽曲の中にアップテンポな部分とスローテンポな部分とが混在する場合もある。従って、例えばレガート奏法を適用するにしても、現在演奏中の曲調に相応しいレガート感を持った奏法を適用することが望ましい。しかし、特許文献1の技術においては、ノートNT1,NT2の音高差によってレガート奏法の内容が一意に決定されてしまうため、しばしば曲調に相応しくないレガート奏法が適用されるという問題があった。
この発明は上述した事情に鑑みてなされたものであり、曲調に応じた自然なレガート感を実現できる音源制御装置、楽音合成装置およびプログラムを提供することを目的としている。
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項1記載の音源制御装置にあっては、複数のノートオンイベントおよびノートオフイベントを含む演奏データに基づいて楽音信号を合成する音源(6)に対して、制御信号を出力する音源制御装置であって、前記音源(6)は、第1のノート(図7,NT1)のノートオンイベント(時刻t1)が生じた後に該第1のノート(NT1)のノートオフイベント(時刻t53)が生じる前に他の第2のノート(NT2)のノートオンイベント(時刻t30)が生じると、前記第1のノート(NT1)から前記第2のノート(NT2)に向かって遷移する音を表すジョイントヘッド部(64)の波形と、該ジョイントヘッド部に接続され該第2のノート(NT2)に係るピッチを有するボディ部(66)の波形とを出力するものであり、前記第1および第2のノート(NT1,NT2)のノートオンイベントの時間差(T3)に応じて、前記ジョイントヘッド部(64)の長さを制御する制御信号出力手段であって、前記時間差がより長い場合の前記ジョイントヘッド部の長さが、前記時間差がより短い場合の前記ジョイントヘッド部の長さ以上になるように、前記音源(6)に制御信号を出力する制御信号出力手段(図10,SP22〜SP30)を有することを特徴とする。
さらに、請求項2記載の構成にあっては、請求項1記載の音源制御装置において、前記音源(6)は、さらに、前記第1のノート(NT1)のノートオフイベント(時刻t53)が生じる前に前記第2のノート(NT2)のノートオフイベント(時刻t40)が生じると、前記第2のノート(NT2)から前記第1のノート(NT1)に向かって遷移する音を表すジョイントヘッド部(68)の波形と、該ジョイントヘッド部に接続され該第1のノート(NT1)に係るピッチを有するボディ部(70)の波形とを出力するとともに、前記第2のノート(NT2)のノートオフイベント(時刻t40)が生じた後、前記第1のノート(NT1)のノートオフイベント(時刻t53)が生じる前に他の第3のノート(NT3)のノートオンイベント(時刻t50)が生じると、前記第1のノート(NT1)から前記第3のノート(NT3)に向かって遷移する音を表すジョイントヘッド部(72,78)の波形と、該ジョイントヘッド部に接続され該第3のノート(NT3)に係るピッチを有するボディ部(74)の波形とを出力するものであり、前記制御信号出力手段は、前記第2のノート(NT2)のノートオフイベント(時刻t40)と前記第3のノート(NT3)のノートオンイベント(時刻t50)との時間差(T6)が長くなるほど、前記第1のノート(NT1)から前記第3のノート(NT3)に向かって遷移する音を表すジョイントヘッド部(72,78)の長さを長くするように、前記音源(6)に制御信号を出力する(図12,SP86)ものであることを特徴とする。
さらに、請求項3記載の構成にあっては、請求項1記載の楽音合成装置において、前記音源(6)は、複数種類の長さのジョイントヘッド部(72,78)用の波形データをそれぞれ記憶する波形メモリ(30)を有するものであり、前記音源制御装置は、これら波形データのうち何れかを指定する制御信号(スタートアドレスおよびエンドアドレス)を前記音源(6)に供給するものであることを特徴とする。
また、請求項4記載の楽音合成装置にあっては、複数のノートオンイベントおよびノートオフイベントを含む演奏データに基づいて楽音信号を合成するとともに、第1のノート(図7,NT1)のノートオンイベント(時刻t1)が生じた後に該第1のノート(NT1)のノートオフイベント(時刻t53)が生じる前に他の第2のノート(NT2)のノートオンイベント(時刻t30)が生じると、前記第1のノート(NT1)から前記第2のノート(NT2)に向かって遷移する音を表すジョイントヘッド部(64)の波形と、該ジョイントヘッド部に接続され該第2のノート(NT2)に係るピッチを有するボディ部(66)の波形とを出力する音源と、前記第1および第2のノート(NT1,NT2)のノートオンイベントの時間差(T3)に応じて、前記ジョイントヘッド部(64)の長さを制御する制御信号出力手段であって、前記時間差がより長い場合の前記ジョイントヘッド部の長さが、前記時間差がより短い場合の前記ジョイントヘッド部の長さ以上になるように、前記音源(6)に制御信号を出力する制御信号出力手段(図10,SP22〜SP30)とを有することを特徴とする。
また、請求項5記載のプログラムにあっては、コンピュータを、複数のノートオンイベントおよびノートオフイベントを含む演奏データに基づいて楽音信号を合成する音源(6)を制御する装置として機能させるためのプログラムであって、前記音源(6)は、第1のノート(図7,NT1)のノートオンイベント(時刻t1)が生じた後に該第1のノート(NT1)のノートオフイベント(時刻t53)が生じる前に他の第2のノート(NT2)のノートオンイベント(時刻t30)が生じると、前記第1のノート(NT1)から前記第2のノート(NT2)に向かって遷移する音を表すジョイントヘッド部(64)の波形と、該ジョイントヘッド部に接続され該第2のノート(NT2)に係るピッチを有するボディ部(66)の波形とを出力するものであり、前記コンピュータを、前記第1および第2のノート(NT1,NT2)のノートオンイベントの時間差(T3)に応じて、前記ジョイントヘッド部(64)の長さを制御する制御信号出力手段であって、前記時間差がより長い場合の前記ジョイントヘッド部の長さが、前記時間差がより短い場合の前記ジョイントヘッド部の長さ以上になるように、前記音源(6)に制御信号を出力する制御信号出力手段(図10,SP22〜SP30)として機能させるためのものであることを特徴とする。
本発明によれば、第1および第2のノートのノートオンイベントの時間差が長くなるほどジョイントヘッド部の長さを長くするように、音源に対して制御信号を出力するから、楽曲の曲調がスローテンポになるほど、レガートの時間が長くなる傾向を強めることができる。これにより、曲調に応じた自然なレガート感を実現することができる。
本発明の一実施例の電子楽器のブロック図である。 波形メモリ音源6の機能ブロック図である。 本実施例における動作の概要(通常奏法)を示す図である。 本実施例における動作の他の概要(レガート奏法(1))を示す図である。 本実施例における動作の他の概要(レガート奏法(2))を示す図である。 本実施例における動作の他の概要(レガート奏法(3))を示す図である。 本実施例における動作の他の概要(レガート奏法(4))を示す図である。 RAM24内に記憶される発音管理データ100のデータ構成図である。 ROM22内に記憶される各種データのデータ構成図である。 ノートオンイベント処理ルーチンのフローチャートである。 ノートオフイベント処理ルーチンのフローチャート(1/2)である。 ノートオフイベント処理ルーチンのフローチャート(2/2)である。 周期処理ルーチンのフローチャートである。
1.実施例のハードウエア構成
次に、本発明の一実施例の電子楽器の構成を図1を参照し説明する。
図1において2は表示器であり、ユーザに対して各種情報を表示する。4は設定操作子であり、各種の動作モード等を設定するボタン等から構成されている。5は外部記憶装置であり、CD−R、フラッシュメモリ等から構成され、演奏データ(MIDIデータ)等の記録/再生等を行う。6は波形メモリ音源であり、その内部に設けられた波形メモリを読み出し、各種の処理を行うことにより楽音信号を出力する。出力された楽音信号は、DAコンバータ8を介してアナログ信号に変換された後、サウンドシステム10を介して発音される。14はMIDIインタフェースであり、外部機器との間でMIDI信号を入出力する。
16は演奏操作子であり、鍵盤、ペダル、モジュレーションホイール、ノブ、奏法スイッチ等から構成されている。鍵盤は複数の鍵から成り、各鍵はユーザによって押下されると、音高とベロシティとを有するノートオンイベントを発生させる。また、奏法スイッチは、奏法の自動設定を行うか否かを切り替えるスイッチであり、オン状態に設定されていると、レガート奏法等の自動設定が行われ、検出した奏法に応じた効果処理が楽音信号に付与される。18はタイマであり、現在時刻を計時する。タイマ18には、フリーランタイマが含まれており、このフリーランタイマは、後述する各処理において時間の計測等のために用いられる。20はCPUであり、後述するプログラムに基づいて、バス12を介して他の構成要素を制御する。22はROMであり、後述するプログラム等が記憶されている。24はRAMであり、CPU20のワークメモリとして用いられる。
次に、波形メモリ音源6の機能ブロックを図2を参照し説明する。
図2において30は波形メモリであり、楽音信号を合成するための各種波形データを記憶する。32−1〜32−nは第1〜第n発音チャンネルであり、DSP(デジタル・シグナル・プロセッサ)等によって実現され、各発音チャンネル毎に波形メモリ30を読み出し、楽音信号を合成する。34は混合エフェクト処理部であり、各発音チャンネルから出力された楽音信号をミキシングし、エフェクト処理等を施す。36は音源レジスタであり、各発音チャンネルおよび混合エフェクト処理部34の動作パラメータ値などを記憶する。この音源レジスタ36の内容は、CPU20によって随時更新することが可能である。
次に、第1発音チャンネル32−1の内部において40は波形読出部であり、波形メモリ30中の指定された範囲の波形データを読み出す。42は音色フィルタ部であり、読み出された波形データに対して各種フィルタリング処理を行う。44は音量制御部であり、フィルタリング処理された波形データの音量を制御し、これを第1発音チャンネル32−1の楽音信号として混合エフェクト処理部34に出力する。48は各種EG部であり、波形読出部40の読出速度の基準を定めるピッチエンベロープ信号、音色フィルタ部42におけるフィルタリング処理を制御するエンベロープ信号、および音量制御部44のゲインを定める振幅エンベロープ信号を出力し、これらの信号を各構成要件40,42,44に供給する。46は各種LFO部であり、ピッチエンベロープ信号を変調するピッチ変調信号、振幅エンベロープ信号を変調する振幅変調信号等、「4〜8Hz」程度の低周波信号出力する。
上述した音量制御部44において設定される音量は、次式(1)にて表現される。

音量=振幅エンベロープ信号 × 振幅変調信号 × 音量係数 …式(1)

式(1)における振幅エンベロープ信号は、上述のように各種EG部48から出力され、基本的な振幅エンベロープを定める。振幅変調信号は、楽音信号にビブラートを施さない場合は「1」に設定され、ビブラートを施す場合には、例えば「1±0.1」の範囲で正弦波状に変動する信号になる。音量係数は、楽音信号を通常の状態で出力すべき場合は「1」に設定されるが、楽音信号を出力すべきでない場合には「0」に設定され、また、楽音信号のフェードイン、フェードアウトを行う場合には「0〜1」の範囲で直線的に増減する係数である。
以上、第1発音チャンネル32−1の構成を詳述したが、他の第2〜第n発音チャンネル32−2〜32−nの構成もこれと同様である。
2.動作の概要
2.1.通常奏法
次に、本実施例における動作の概要を図3〜図7を参照し説明する。
図3は、時刻t1においてノートNT1のノートオンイベントが発生し、時刻t4にノートNT1のノートオフイベントが発生した場合に生成される楽音信号の概要を示すものである。通常奏法(後述するレガートが発生しない奏法)においては、ヘッド部、ボディ部およびテイル部の3段階の波形データが波形メモリ30から順次読み出されることにより、3段階の楽音信号が生成される。これら3段階の楽音信号は、各々別の発音チャンネルにおいて生成されクロスフェードによって次段階の楽音信号に遷移するようになっている。まず、ノートオンイベントが生じた時刻t1においては、ヘッド部50およびボディ部52を各々生成するための「2」の発音チャンネルが確保され、ヘッド部50およびボディ部52の楽音信号の生成が開始される。
但し、この時点においては、ボディ部52に係る発音チャンネルの音量制御部44においては、音量係数が「0」に設定されており、実際に混合エフェクト処理部34に対して出力される楽音信号は、ヘッド部50の楽音信号のみである。次に、時刻t1から所定時間経過した時刻t2においては、ボディ部52のフェードインが開始されるとともに、ヘッド部50のフェードアウトが開始される。すなわち、両者のクロスフェードが開始される。そして、時刻t3においてクロスフェードが完了し、ヘッド部50の楽音信号が完全に消音状態になると、ヘッド部50に係る発音チャンネルは解放され、その後はボディ部52の楽音信号のみが出力される。なお、上述したように時刻t1においてヘッド部50のみならずボディ部52の楽音信号の生成も開始する理由は、このクロスフェード期間(t2〜t3)において両者の位相を合せておくためである。
その後、時刻t4においてノートNT1のノートオフイベントが発生すると、テイル部54のための「1」の発音チャンネルが確保され、テイル部54に係る楽音信号の生成が開始される。これと同時に、テイル部54のフェードインが開始されるとともに、ボディ部52のフェードアウトが開始される。すなわち、両者のクロスフェードが開始される。そして、時刻t5においてクロスフェードが完了し、ボディ部52の楽音信号が完全に消音状態になると、ボディ部52に係る発音チャンネルは解放され、その後はテイル部54の楽音信号のみ出力される。テイル部54は時間とともに減衰するように振幅エンベロープが設定されており、完全に減衰しきって消音状態になると(時刻t6)、テイル部54に係る発音チャンネルも解放される。
2.2.レガート奏法(1)
次に、レガート奏法として楽音信号が生成される例を図4を参照し説明する。
図4においては、時刻t1にノートNT1のノートオンイベントが発生し、時刻t14にノートNT1のノートオフイベントが発生している。このため、図3の場合と同様に、時刻t1においてノートNT1のヘッド部50およびボディ部52の楽音信号の生成が開始され、ボディ部52の音量係数が「0」にされた状態でヘッド部50の楽音信号のみの出力が開始される。次に、時刻t2〜t3の期間においては、出力される楽音信号がヘッド部50からボディ部52にクロスフェードにより遷移し、その後はボディ部52の楽音信号の出力が継続される。一方、図4の例においては、ノートNT1のノートオフイベントがまだ生じていない時刻t10において他のノートNT2のノートオンイベントが発生している。このような場合、「レガート条件」が満たされ、レガート奏法が適用される。
レガート奏法が適用される場合においては、図示のように、ノートNT2のノートオン時刻t10においてノートNT1のボディ部52のフェードアウトが開始される。一方、ノートNT2に対しては、通常のヘッド部に代えて、レガート奏法用のジョイントヘッド部56の楽音信号の出力が開始される。すなわち、時刻t10においては、ジョイントヘッド部56用およびボディ部58用の「2」の発音チャンネルが確保され、双方の楽音信号の合成が開始される。但し、この時点においては、ボディ部58に係る発音チャンネル音量係数は「0」に設定される。ジョイントヘッド部56に係る音量係数も、時刻t10の時点では「0」であるが、その後の時刻t10〜t11の期間内において徐々にフェードインされ、やがて音量係数が「1」になる。また、同期間内にノートNT1のボディ部52の音量係数は「1」から「0」にフェードアウトされる。すなわち、ボディ部52とジョイントヘッド部56とがクロスフェードされる。クロスフェードが完了すると、ノートNT1のボディ部52に係る発音チャンネルは解放される。
次に、ノートNT2のノートオン時刻t10から所定時間経過した時刻t12においては、ボディ部58のフェードインが開始されるとともに、ジョイントヘッド部56のフェードアウトが開始される。そして、時刻t13においてクロスフェードが完了し、ジョイントヘッド部56の楽音信号が完全に消音されると、ジョイントヘッド部56に係る発音チャンネルは解放され、その後はボディ部58の楽音信号のみ出力される。その後、時刻t15においてノートNT2のノートオフイベントが発生すると、テイル部60の発音チャンネルが確保され、テイル部60に係る楽音信号の生成が開始される。これと同時に、テイル部60のフェードインが開始されるとともに、ボディ部58のフェードアウトが開始される。すなわち、両者のクロスフェードが開始される。そして、時刻t16においてクロスフェードが完了すると、ボディ部58に係る発音チャンネルは解放され、その後はテイル部60の楽音信号のみ出力される。そして、テイル部60の振幅エンベロープが「0」になると(時刻t17)テイル部60に係る発音チャンネルも解放される。
ここで、ジョイントヘッド部56におけるピッチ制御について説明しておく。ジョイントヘッド部56とノートNT1のボディ部52とがクロスフェードされる期間t10〜t11において、ジョイントヘッド部56のピッチエンベロープ56Aは、ノートNT1に保たれる。その後の期間t11〜t12において、ピッチエンベロープ56AはノートNT1のピッチからから徐々にノートNT2のピッチに向かって、単調増加するように直線的にピッチが変化し、ノートNT2のボディ部58とがクロスフェードされる期間t12〜t13において当該ピッチはノートNT2のピッチに保たれる。なお、このピッチエンベロープ56Aは、ジョイントヘッド部56に割り当てられた発音チャンネルにおいて各種EG部48から波形読出部40に供給され、これによって該波形読出部40における波形読出速度が制御される。このように、ジョイントヘッド部56は、ノートNT1のボディ部52およびノートNT2のボディ部58の双方に対してクロスフェードされる。
ここで、ジョイントヘッド部には、出力時間の長いものと短いものとがあり、これらは、ノートNT1のノートオン時刻t1からノートNT2のノートオン時刻t10までの時間T1に応じて選択される。すなわち、時間T1が所定の閾値Tth以下であるときは短いジョイントヘッド部が選択され、時間T1が閾値Tthを超える場合には、長いジョイントヘッド部が選択される。図4の例は、時間T1が閾値Tth以下である場合の例であり、上記ジョイントヘッド部56としては、短いジョイントヘッド部が採用されている。より一般的な形で表現すると、第1のノート(図4の例にあってはNT1)のノートオンイベントが生じた後に該第1のノートのノートオフイベントが生じる前に、レガート条件を満たすように第2のノート(同、NT2)のノートオンイベントが生じると、第1および第2のノートのノートオンイベントの時間差(同、T1)が所定の閾値Tth以下であるときは短いジョイントヘッド部が選択され、該時間差が該閾値Tthを超える場合には、長いジョイントヘッド部が選択される。
2.3.レガート奏法(2)
次に、レガート奏法として楽音信号が生成される他の例を図5を参照し説明する。なお、以降の説明において、出力される楽音信号が切り替わる際にクロスフェードが行われる点は図3および図4の場合と同様である。
図5においては、時刻t1にノートNT1のノートオンイベントが発生し、図3,図4の場合と同様に、時刻t1からノートNT1のヘッド部50およびボディ部52の楽音信号が順次出力される。そして、ノートNT1のノートオフイベント(時刻t22)の前に、他のノートNT2のノートオンイベントが発生している。但し、図5の例は、ノートNT1のノートオン時刻t1からノートNT2のノートオン時刻t20までの時間T2が閾値Tthを超えている点において図4の例とは異なっている。
これにより、図4における短いジョイントヘッド部56に代えて、図5の例においては、長いジョイントヘッド部62が出力される。ジョイントヘッド部62のピッチエンベロープ62Aは、図4におけるジョイントヘッド部56の場合と同様に、ノートNT1のボディ部52との間でクロスフェードされる期間内においてノートNT1のピッチに保たれ、その後、ボディ部58の出力が開始されるまでの期間においてノートNT1のピッチからから徐々にノートNT2のピッチに向かって単調増加するように直線的に変化し、ノートNT2のボディ部58との間でクロスフェードされる期間内においてノートNT2のピッチに保たれる。但し、ジョイントヘッド部62は出力時間が長いため、ピッチエンベロープ62Aの傾きは、図4のピッチエンベロープ56Aと比較して緩やかになっている。
2.4.レガート奏法(3)
次に、レガート奏法として楽音信号が生成される他の例を図6を参照し説明する。
図6においては、時刻t1にノートNT1のノートオンイベントが発生し、時刻t53にノートNT1のノートオフイベントが発生している。このため、図3〜図5の場合と同様に、時刻t1からノートNT1のヘッド部50およびボディ部52の楽音信号が順次出力される。次に、時刻t30において、レガート条件を満たすノートNT2のノートオンイベントが発生すると、ノートNT2のジョイントヘッド部64およびボディ部66がクロスフェードされつつ順次出力される。ジョイントヘッド部64の長短の区別は、上述のように、時刻t1〜t30の時間T3が閾値Tth以下であるか否かに応じて決定される。
次に、時刻t40においてノートNT2のノートオフイベントが発生すると、ノートNT1の発音が再開される。ここで、先にヘッド部50およびボディ部52の出力のために割り当てられてた発音チャンネルは、ヘッド部50およびボディ部52が消音状態になった時に既に解放されているため、時刻t40においては、ジョイントヘッド部68およびそれに続くボディ部70を出力するために「2」の発音チャンネルが改めて確保される。このように、消音状態にされていたノートNT1の発音が再開される場合においても「レガート条件」が満たされることになり、ジョイントヘッド部68はボディ部66に対してクロスフェードされつつ出力される。さらに、その後においては、ジョイントヘッド部68に対してクロスフェードされつつボディ部70が出力される。ここで、ジョイントヘッド部68の長短の区別は、時刻t30〜t40の時間T4が閾値Tth以下であるか否かに応じて決定される。
次に、時刻t50において、レガート条件を満たす他のノートNT3のノートオンイベントが発生すると、ノートNT3のジョイントヘッド部72およびボディ部74がクロスフェードされつつ順次出力される。しかる後、時刻t54にノートNT3のノートオフイベントが発生すると、ボディ部74に対してクロスフェードされつつテイル部76が出力される。ここで、図6の例においては、ジョイントヘッド部72の長短の区別は、ノートNT3のノートオンイベント前に発生した最後のノートオンイベントに基づいて決定される。図6の例において、かかるノートオンイベントは時刻t30に発生したノートNT2のノートオンイベントであり、ジョイントヘッド部72の長短の区別は、時刻t30〜t50の時間T5が閾値Tth以下であるか否かに応じて決定される。そして、図示の例では、時間T5が閾値Tthを超えているため、ジョイントヘッド部72として、長いジョイントヘッド部が適用される。
図中の64A,68A,72Aは、各々ジョイントヘッド部64,68,72のピッチエンベロープである。各ピッチエンベロープ64A,68A,72Aは、先行する他のノートのボディ部52,66,70とクロスフェードされる期間内は当該ボディ部52,66,70と同一ノートのピッチに保たれ、新たなノートオンイベントに係るボディ部66,70,74とクロスフェードされる期間内は該新たなノートオンイベントに係るノートのピッチに保たれ、両者に挟まれた区間においては、単調増加または単調減少するように直線的にピッチが変化する。
2.5.レガート奏法(4)
次に、レガート奏法として楽音信号が生成される他の例を図7を参照し説明する。
図7においては、ノートNT1〜NT3の各ノートオン/ノートオフタイミングは、図6の例と全く同一である。但し、時刻t50にノートNT3のノートオンイベントが発生した際にこのノートオンイベントに応じて出力されるジョイントヘッド部の長短の区別は、「ノートNT3のノートオンイベント前に発生し、ノートを変化させた最後のノートオンまたはノートオフイベント」に基づいて決定される。図7において、かかるイベントは、時刻t40に発生したノートNT2のノートオフイベントである。そして、図示の例では、時刻t40〜t50の時間T6が閾値Tth以下であるため、図6における長いジョイントヘッド部72に代えて、短いジョイントヘッド部78が適用される。
3.データ構成
3.1.発音管理データ
次に、本実施例における各種データ構成を説明する。
まず、RAM24内には、図8に示す発音管理データ100が記憶される。この発音管理データ100は、ボイスパラメータ参照情報102と、最終ノートオン時刻104と、管理中ノートリスト106とから構成される。ここで、ボイスパラメータ参照情報102とは、後述するボイスパラメータ130−1〜130−m(図9参照)のうち何れかを指定するものであり、ボイスパラメータ130−1〜130−mは、例えば、ピアノ、サックス、トランペット等のボイス(音色)に対応するものである。設定操作子4などによって、ユーザが何れかのボイスを選択すると、対応するボイスパラメータを指定するようにボイスパラメータ参照情報102が設定される。次に、最終ノートオン時刻104とは、当該ボイスにおいて最後に発生したノートオンイベントの時刻である。
次に、管理中ノートリスト106は、管理中であるノートに係る一または複数のノート情報108−1〜108−rから構成され、各ノート情報108−1〜108−rは、各々対応するノート番号110−1〜110−rと、使用中の発音チャンネル情報112−1〜112−rとから構成される。「使用中の発音チャンネル情報」は、当該ノートについてボディ部、またはテイル部が単独で出力されている際には、対応する「1」の発音チャンネルのみから構成され、これらのクロスフェードが実行されている場合にはボディ部およびテイル部に対応する「2」の発音チャンネルから構成される。また、ヘッド部またはジョイントヘッド部が出力されている場合には、位相合せのためにボディ部の楽音信号も消音状態で合成する必要があるため、使用中の発音チャンネル情報は、ヘッド部またはジョイントヘッド部と、ボディ部とに各々対応する「2」の発音チャンネルから構成される。
管理中ノートリスト106においては、「選択中のボイスのノートオンイベントが発生した」ことを条件として、当該ノートオンイベントに対応する新たなノート情報が追加される。また、「あるノート情報に係るノートオフイベントが発生し、かつ、そのノート情報に係る楽音信号が完全にフェードアウトしたこと」を条件として、当該ノート情報が管理中ノートリスト106から削除される。従って、全く発音されていないノートについてもノート情報が管理中ノートリスト106に含まれる場合がある。例えば、図6においてノートNT1の楽音信号は時刻t30においてフェードアウトが開始され、フェードアウトが完了した後に時刻t40までの期間は全く発音されていないが、この期間内にはノートNT1のノートオフイベントが発生していないため、当該ノートNT1に係るノート情報は管理中ノートリスト106に残存し続ける。
このように、全く発音されていないノートに係るノート情報においては、発音チャンネルが割り当てられないため、その発音チャンネル情報112−1〜112−rは空欄になる。また、各ノート情報は、管理中ノートリスト106においてノートオンイベントが発生したタイミング順に配列される。すなわち、図8の例においては、ノート情報108−1が最古のノート情報であり、ノート情報108−rが最新のノート情報である。また、特に図示しないが、各ノート情報には各種パラメータや状態変数なども記憶される。例えば、ペダル、ノブ、モジュレーションホイール、等がユーザに操作された場合は、その操作量に応じて、ノート情報108−1〜108−r内のこれらパラメータや状態変数等が更新される。
3.2.ボイスパラメータ
次に、ROM22内には、図9に示すボイスパラメータ130−1〜130−mと、エレメント群140とが記憶される。ここで、ボイスパラメータ130−1〜130−mは、ピアノ、サックス、トランペット等のボイス(音色)に各々対応しており、これらのうち何れか一のボイスパラメータが上述したボイスパラメータ参照情報102によって選択される。図示の例にあっては、ボイスパラメータ130−1が選択されていることとする。一のボイスパラメータは、ジョイントヘッド長短閾値132と、ジョイントヘッドIDテーブル134と、その他ボイスパラメータ136とから構成される。ここで、ジョイントヘッド長短閾値132は、当該ボイスに対応して、ジョイントヘッド部の長短の別を定める閾値Tth(図4〜図7参照)を定めるものである。
次に、ジョイントヘッドIDテーブル134は、複数の「ジョイントヘッドエレメントID」という情報から構成されている。各ジョイントヘッドエレメントIDは各々「ジョイントヘッドエレメント」という情報を指定するものである。なお、詳細は後述するが、各ジョイントヘッドエレメントは、音高とベロシティとに基づいて波形データを特定するための情報である。ジョイントヘッドエレメントIDは、ジョイントヘッド部の長短の別と、音高差に応じて分類されている。
まず、「音高差」は、「±1199 cent」の範囲を「100 cent」毎に区切った「24」種類と、「+1200 cent以上」と、「−1200 cent以下」とに分類され、この結果、ジョイントヘッドエレメントIDは音高差に応じて「26」種類に分類される。さらに、ジョイントヘッドエレメントIDは出力時間の長短に応じて「2」種類に分類されるから、ジョイントヘッドIDテーブル134には、合計「52(=26×2)」種類のジョイントヘッドエレメントIDが記憶されることになる。次に、その他ボイスパラメータ136は、後述するヘッドエレメント142、ボディエレメント144およびテイルエレメント146を指定するエレメントIDなどから構成されている。
3.3.エレメント群
次に、エレメント群140は、一のヘッドエレメント142と、一のボディエレメント144と、一のテイルエレメント146と、複数のジョイントヘッドエレメントから成るジョイントヘッドエレメント群148とから構成されている。ジョイントヘッドエレメント群148に属するエレメントの数は、ジョイントヘッドエレメントIDの数(上記例では「52」種類)以下である。すなわち、「52」種類のジョイントヘッドエレメントIDは、必ずしも相互に異ならせる必要はなく、同一のIDであっても差し支えないため、かかる場合にはエレメントの数は「52」よりも少なくなる。そして、これらエレメント142,144,146,148のうち任意の一のエレメントは、複数の波形メモリ参照情報と、これら波形メモリ参照情報に各々対応し当該波形メモリ参照情報が適用される条件を定めるキーバンク情報とから構成される。波形メモリ参照情報は、波形メモリ音源6内の波形メモリ30の何れかの波形データ150−1〜150−pの読出方法を記述したものであり、具体的には、当該波形データの読み出し範囲(スタートアドレスおよびエンドアドレス)と、当該読み出し範囲がループ読出されるか否かとを指定するものである。一般的に、ボディエレメント144によって参照される場合は波形データがループ読出され、それ以外のエレメント142,146,148によって参照される波形データはループ読出されない傾向が強い。
ジョイントヘッドエレメントに対応する波形データは、例えば、自然楽器をある音程から別のある音程に遷移させる演奏をした時の音をサンプリングし、音の遷移する部分を切り出し、加工して作成される。遷移する途中の音は、安定していてピッチが徐々に変化するものもあるし、不安定でピッチ感の乏しいノイズ的な部分や非線形に変化する部分を含むものもある。また、例えば、長いジョイントヘッド部に対応するジョイントヘッドエレメントの波形データは「100msec」程度であり、短いジョイントヘッド部に対応するジョイントヘッドエレメントの波形データは「50msec」程度である。
また、キーバンク情報は、ノートオンイベントにおいて指定される音高とベロシティとに応じて、対応する波形メモリ参照情報の適用条件を定めるものである。一例として、全音高を「低音域」、「中音域」および「高音域」の「3」音域に分類し、ベロシティの範囲を所定の閾値を境として「強」および「弱」の「2」範囲に分類したとすると、キーバンク情報および波形メモリ参照情報の数は、各々「6」になる。なお、図9の例においては、選択されたボイスパラメータ130−1に対応するエレメント群140のみを示したが、ROM22には、他のボイスパラメータ130−2〜130−mに対応するエレメント群も記憶されている。但し、ボイスパラメータ130−1〜130−mと、エレメント群とは、必ずしも一対一に対応するわけではなく、きわめて近似するボイス間においては、一部のエレメントが共通して適用される場合がある。
4.イベント処理
4.1.ノートオンイベント処理(図10)
次に、本実施例における各種イベント処理の内容を説明する。
まず、演奏操作子16において奏法スイッチがオン状態であるときに、選択中のボイス(ボイスパラメータ参照情報102にて選択されているボイス)のノートオンイベントが発生すると、図10に示すノートオンイベント処理ルーチンが起動される。なお、ノートオンイベントは、演奏操作子16における鍵盤等の操作、MIDIインタフェース14を介してのMIDI信号の受信、または外部記憶装置5から読み出されたMIDIデータの再生によって発生する。この点は、後述するノートオフイベントについても同様である。
図10において処理がステップSP2に進むと、管理中ノートリスト106に対して、新たに空のノート情報が一つ追加される。次に、処理がステップSP4に進むと、追加されたノート情報におけるノート番号に対して、発生したノートオンイベントに係るノート番号が書き込まれる。
次に、処理がステップSP6に進むと、波形メモリ音源6内の空いている発音チャンネルの中から、「2」の発音チャンネルが確保される。このうち、一方の発音チャンネル(以下、発音チャンネルAという)はヘッド部(またはジョイントヘッド部)用であり、他方の発音チャンネル(以下、発音チャンネルBという)はボディ部用である。そして、確保された発音チャンネルA,Bの各チャンネル番号が、当該ノート情報内に、使用中の発音チャンネル情報として書き込まれる。このステップSP6までの処理が終了した段階において、当該ノート情報は、例えば図8における「ノート情報108−r」に示すようになる。
次に、処理がステップSP8に進むと、今回のノートオンイベントに対して、レガート条件を満たすノート情報が存在するか否かが判定される。ここで、ノートオンイベントに対するレガート条件とは、「該ノートオンイベントの発生時に消音状態ではない他のノート情報が存在し、かつ当該他のノート情報に係るノートついてノートオフイベントが生じていない」ということである。ステップSP8において「YES」と判定される具体例は、例えば、図4の時刻t10におけるノートNT2のノートオンイベントである。この例においては、今回のノートオンイベント(時刻t10のノートNT2のノートオンイベント)に対して、未だノートオフイベントが発生していない他のノート情報(ノートNT1のノート情報)が存在する。
但し、ここでは、ステップSP8の条件が満たされない場合の動作を先に説明しておく。レガート条件が満たす他のノート情報が存在しない場合、ステップSP8においては「NO」と判定され、処理はステップSP10に進む。ここでは、ノートオンイベントに含まれるノート番号とベロシティとに基づいて、ヘッドエレメント142内においてこれらに対応する一のキーバンク情報が特定される。そして、特定されたキーバンク情報に対応する波形メモリ参照情報がヘッドエレメント142から読み出される。
次に、処理がステップSP12に進むと、ヘッドエレメント142から読み出された波形メモリ参照情報と、ヘッド部の楽音信号を合成するための各種パラメータの初期値とが、音源レジスタ36内のヘッド部用の発音チャンネルAに対応する領域に書き込まれる。これにより、ヘッド部の楽音信号を合成する準備が完了する。なお、「各種パラメータ」とは、振幅エンベロープ信号の初期値、振幅変調信号の初期値、音量係数の初期値、ピッチエンベロープ信号の初期値、およびピッチ変調信号の初期値等である。次に、処理がステップSP14に進むと、上記ノート番号とベロシティとに基づいて、ボディエレメント144内においてこれらに対応する一のキーバンク情報が特定される。そして、特定されたキーバンク情報に対応する波形メモリ参照情報がボディエレメント144から読み出される。
次に、処理がステップSP16に進むと、ボディエレメント144から読み出された波形メモリ参照情報と、ボディ部の楽音信号を合成するための各種パラメータの初期値とが、音源レジスタ36内のボディ部用の発音チャンネルBに対応する領域に書き込まれる。これにより、ボディ部の楽音信号を合成する準備が完了する。但し、ボディ部の楽音信号は最初は消音状態で出力する必要があるため、その音量係数は「0」に設定される。次に、処理がステップSP18に進むと、発音チャンネルA,Bの発音開始を指示するコマンドが音源レジスタ36に書き込まれる。これにより、ヘッド部およびボディ部の楽音信号の出力が同時に開始される。但し、上述のようにボディ部の楽音信号は消音状態で出力される。次に、処理がステップSP20に進むと、最終ノートオン時刻104が、現在時刻によって更新される。以上により、レガート条件が満たされない場合におけるノートオンイベント処理が終了する。
一方、レガート条件が満たされた場合は、上記ステップSP8において「YES」と判定され、処理はステップSP22に進む。ここでは、最終ノートオン時刻104と、現在時刻との時間差が求められ、該時間差がジョイントヘッド長短閾値132(閾値Tth)以下であるか否かに応じて、適用されるジョイントヘッド部の長短の区別が決定される。次に、処理がステップSP24に進むと、選択中のボイスについて現在発音中の音高と、今回発生したノートオンイベントに係るノート番号との音高差が計算される。次に、処理がステップSP26に進むと、決定された長短の区別と計算された音高差とに基づいてジョイントヘッドIDテーブル134の中の一のジョイントヘッドエレメントIDが特定され、これによってジョイントヘッドエレメント群148の中から一のジョイントヘッドエレメントが決定される。
次に、処理がステップSP28に進むと、決定された上記一のジョイントヘッドエレメント内において、今回のノートオンイベントに係るノート番号とベロシティとに対応する一のキーバンク情報が特定される。そして、特定されたキーバンク情報に対応する波形メモリ参照情報が該ジョイントヘッドエレメントから読み出される。次に、処理がステップSP30に進むと、ジョイントヘッドエレメントから読み出された波形メモリ参照情報と、ジョイントヘッド部の楽音信号を合成するための各種パラメータの初期値とが、音源レジスタ36内のジョイントヘッド部用の発音チャンネルAに対応する領域に書き込まれる。その際、ピッチエンベロープの初期値は、選択中のボイスについて現在発音中の楽音信号のピッチに一致するように設定され、音量係数は「0」に設定される。これは、その後にクロスフェード(例えば図4の期間t10〜t11のクロスフェード)を実行するため、ジョイントヘッド部の楽音信号は最初は消音状態にしておく必要があるためである。
次に、上述したステップSP14,SP16が実行されることにより、発音チャンネルBを介してボディ部の楽音信号を合成する準備が完了する。次に、処理がステップSP18に進むと、発音チャンネルA,Bの発音が開始される。但し、上述のように、ジョイントヘッド部およびボディ部の楽音信号は、最初の段階では何れも音量係数が「0」であるから消音状態で出力される。次に、処理がステップSP20に進むと、最終ノートオン時刻104が、現在時刻によって更新される。以上により、レガート条件が満たされた場合におけるノートオンイベント処理が終了する。
4.2.ノートオフイベント処理(図11,図12)
次に、演奏操作子16において奏法スイッチがオン状態であるときに、鍵盤等の操作によって、選択中のボイス(ボイスパラメータ参照情報102にて選択されているボイス)のノートオフイベントが発生し、あるいは、MIDIインタフェース14を介して選択中のボイスのノートオフイベントのMIDI信号が供給されると、図11,図12に示すノートオフイベント処理ルーチン(図11,図12)が起動される。
図11において処理がステップSP50に進むと、今回発生したノートオフイベントに係るノート番号を有するノート情報が、管理中ノートリスト106の中から検索される。次に、処理がステップSP52に進むと、当該ノートは、「ノートオフイベントが生じる前に他のノートオンイベントの発生によりフェードアウトが完了したノート」に該当するか否かが判定される。
これに該当するノートとは、例えば、図4における時刻t11以降のノートNT1であり、このノートに対応するノートオフイベントが時刻t14に発生した場合に、ステップSP25において「YES」と判定される。上述したように、図4においては、ノートNT2(他のノート)のノートオンイベントが時刻t10に発生したことにより、当該ノートNT1については時刻t10からフェードアウトが開始され、時刻t11以降はフェードアウトが完了し、後述する周期処理によって当該ノート情報108−x(1≦x≦r)中の、発音チャンネル情報112−xは空になっている。ステップSP52において「YES」と判定されると処理はステップSP64に進み、当該ノート情報108−xは管理中ノートリスト106の中から削除され、本ルーチンの処理が終了する。なお、図4の例にあっては、ノートNT1の楽音信号が完全にフェードアウトした後の時刻t14においてノートNT1のノートオフイベントが生じているが、フェードアウトの途中(期間t10〜t11)にノートオフイベントが生じる場合も考えられる。かかる場合は、音量が「0」ではない発音チャンネルが未だ残存しているため、ステップSP64においては処理は実行されない。このようなノート情報については、後述する周期処理ルーチン(図13)において処理される。
一方、当該ノートが「ノートオフイベントが生じる前に他のノートオンイベントの発生によりフェードアウトが完了したノート」に該当しない場合はステップSP52において「NO」と判定され、処理はステップSP54に進む。ここでは、「今回のノートオフイベントに対して、レガート条件を満たす他のノート情報」が存在するか否かが判定される。ここで、ノートオフイベントに対するレガート条件は、「該ノートオフイベントの発生時に消音状態である他のノート情報が存在し、かつ当該他のノート情報に係るノートついてノートオフイベントが生じていない」という事である。これに該当するノートとは、例えば、図6における時刻t40のノートNT2である。上述したように、図6においては、今回のノートオフイベントに係るノート情報(NT2)以外の他のノート情報(NT1)が存在し、かつ当該他のノート情報に係るノート(NT1)ついて未だノートオフイベントは生じていない。
ステップSP54において「NO」と判定されると処理はステップSP56に進み、テイル部の発音のために、波形メモリ音源6内の空いている発音チャンネルの中から、一の発音チャンネルが確保される。そして、確保された発音チャンネルのチャンネル番号が、今回のノートオフイベントに係るノート情報内の使用中の発音チャンネル情報に追加して書き込まれる。次に、処理がステップSP58に進むと、上記ノート番号とベロシティとに基づいて、テイルエレメント146内においてこれらに対応する一のキーバンク情報が特定される。そして、特定されたキーバンク情報に対応する波形メモリ参照情報がテイルエレメント146から読み出される。ここで、キーバンク情報を特定するために参照される「ベロシティ」とは、「発音対象ノートについて最後に発生したノートオンベロシティ」の意味である。図6の例においては、時刻t54にノートNT3のノートオフイベントが発生しているが、その際にキーバンク情報を特定するために参照されるベロシティは、時刻t50におけるノートNT3のノートオンベロシティである。
次に、処理がステップSP60に進むと、テイルエレメント146から読み出された波形メモリ参照情報と、テイル部の楽音信号を合成するための各種パラメータの初期値とが、音源レジスタ36内のテイル部用の発音チャンネルに対応する領域に書き込まれる。その際、音量係数は「0」に設定される。これは、テイル部とボディ部との間でクロスフェードを実行するため、テイル部の楽音信号は最初は消音状態にしておく必要があるためである。次に、処理がステップSP62に進むと、テイル部の発音チャンネルの発音開始を指示するコマンドが音源レジスタ36に書き込まれる。これにより、テイル部の楽音信号の出力が開始される。
以上により、テイル部が発音される場合におけるノートオフイベント処理が終了する。
また、「今回のノートオフイベントに対して、レガート条件を満たす他のノート情報」(例えば、図6における時刻t40のノートNT1)が存在する場合においては、上記ステップSP54において「YES」と判定され、処理はステップSP68(図12参照)に進む。ステップSP68においては、ノートオン時のステップSP6(図10参照)と同様に、ジョイントヘッド部用およびボディ部用の「2」の発音チャンネルA,Bが確保され、これらの各チャンネル番号が、上記「他のノート情報」(図6の時刻t40の例においては、ノートNT1のノート情報)に書き込まれる。この「他のノート情報」は、楽音信号を出力しようとするノート情報であるため、以下、「発音対象ノート情報」という。
次に、処理がステップSP70に進むと、発音対象ノート情報のジョイントヘッドエレメントの長短の区別が決定される。図6の時刻t40の例においては、時刻t30〜t40の時間T4が閾値Tth以下であるか否かに応じて、ジョイントヘッド部68の長短の区別が決定される。次に、処理がステップSP72に進むと、選択中のボイスについて現在発音中の音高と、発音対象ノート情報に係るノート番号との音高差が計算される。次に、処理がステップSP74に進むと、決定された長短の区別と計算された音高差とに基づいてジョイントヘッドIDテーブル134の中の一のジョイントヘッドエレメントIDが特定され、これによってジョイントヘッドエレメント群148の中から一のジョイントヘッドエレメントが決定される。
次に、処理がステップSP76に進むと、決定された上記一のジョイントヘッドエレメント内において、発音対象ノート情報に係るノート番号とベロシティとに対応する一のキーバンク情報が特定される。そして、特定されたキーバンク情報に対応する波形メモリ参照情報が該ジョイントヘッドエレメントから読み出される。上述のように、キーバンク情報を特定するために参照される「ベロシティ」とは、「発音対象ノートについて最後に発生したノートオンベロシティ」である。従って、図6の例においては、時刻t40においてキーバンク情報を特定するために参照されるベロシティは、時刻t1におけるノートNT1のノートオンベロシティである。次に、処理がステップSP78に進むと、ジョイントヘッドエレメントから読み出された波形メモリ参照情報と、ジョイントヘッド部の楽音信号を合成するための各種パラメータの初期値とが、音源レジスタ36内のジョイントヘッド部用の発音チャンネルAに対応する領域に書き込まれる。その際、ピッチエンベロープの初期値は、選択中のボイスについて現在発音中の楽音信号のピッチに一致するように設定され、音量係数は「0」に設定される。これは、その後にクロスフェード(例えば図6の時刻t40以降のクロスフェード)を実行するため、ジョイントヘッド部の楽音信号は最初は消音状態にしておく必要があるためである。
次に、処理がステップSP80に進むと、発音対象ノート情報に係るノート番号とベロシティ(発音対象ノートについて最後に発生したノートオンベロシティ)とに基づいて、ボディエレメント144内においてこれらに対応する一のキーバンク情報が特定される。そして、特定されたキーバンク情報に対応する波形メモリ参照情報がボディエレメント144から読み出される。次に、処理がステップSP82に進むと、ボディエレメント144から読み出された波形メモリ参照情報と、ボディ部の楽音信号を合成するための各種パラメータの初期値とが、音源レジスタ36内のボディ部用の発音チャンネルBに対応する領域に書き込まれる。これにより、ボディ部の楽音信号を合成する準備が完了する。但し、ボディ部の楽音信号は最初は消音状態で出力する必要があるため、その音量係数は「0」に設定される。
次に、処理がステップSP84に進むと、発音チャンネルA,Bの発音開始を指示するコマンドが音源レジスタ36に書き込まれる。これにより、ジョイントヘッド部およびボディ部の楽音信号の出力が同時に開始される。但し、上述のように、この時点においては、ジョイントヘッド部およびボディ部とも音量係数は「0」であり、消音状態で出力される。なお、図中に破線で表記したステップSP86の処理は、本実施例においては実行されない。以上により、「今回のノートオフイベントに対して、レガート条件を満たす他のノート情報(発音対象ノート情報)」が存在する場合におけるノートオフイベント処理が終了する。
4.3.周期処理(図13)
本実施例の電子楽器においては、「10msec」毎に、図13に示す周期処理ルーチンが起動される。
図13において処理がステップSP100に進むと、クロスフェードを実行する条件に達した全ての発音チャンネルについて、クロスフェードが開始される。より具体的には、フェードアウトを開始すべき発音チャンネルと、フェードインを開始すべき発音チャンネルとが今後音量係数を逐次更新してゆく発音チャンネルとして指定される。次に、処理がステップSP102に進むと、クロスフェードが実行中である全ての発音チャンネルについて、音量係数が変更される。すなわち、フェードイン中である発音チャンネルにおいては、音量係数が所定値だけ増加され、フェードアウト中の発音チャンネルについては、該音量係数が所定値だけ減少される。
次に、処理がステップSP104に進むと、管理中ノートリスト106内の何れかのノート情報108−1〜108−rに含まれる発音チャンネルのうち、フェードアウトしきったもの、すなわち音量係数が「0」に達したものが存在するか否かが判定される。ここで「YES」と判定されると処理はステップSP106に進み、対応するノート情報の中から当該発音チャンネルが削除されるとともに、波形メモリ音源6においては当該発音チャンネル自体が解放される。一方、ステップSP104において「NO」と判定されると、ステップSP106はスキップされる。次に、処理がステップSP108に進むと、管理中ノートリスト106の中で「既にノートオフイベントが発生し、かつ、そこに属する全ての発音チャンネルの音量が「0」であるノート情報」は存在するか否かが判定される。この条件が満たされる場合とは、具体的には以下の2つの場合である。
(1)テイル部の振幅エンベロープがリリースしきって「0」になり、その結果として音量が「0」になった場合
(2)フェードアウト中にノートオフイベントが発生し、その後もフェードアウトが続行され音量係数が「0」になった結果として音量が「0」になった場合
ステップSP108において「YES」と判定されると、処理はステップSP110に進み、当該ノート情報から、これら発音チャンネルが削除され、さらに、これら発音チャンネル自体が解放される。次に、処理がステップSP112に進むと、当該ノート情報が管理中ノートリスト106の中から削除される。なお、ステップSP108において「NO」と判定された場合には、ステップSP110,SP112はスキップされる。次に、処理がステップSP114に進むと、必要に応じて、その他ボイスパラメータが更新される。例えば、ペダル、ノブ、モジュレーションホイール、等がユーザに操作された場合は、その操作量に応じて、音源レジスタ36の各種パラメータの値が更新され、発音中の楽音信号に変化が付与される。以上のステップにより、一回あたりの周期処理が終了する。
5.実施例の効果
以上説明したように本実施例によれば、第1および第2のノート(例えば図4,図5のNT1,NT2)のノートオンイベントの時間差(T3)が閾値Tth以下であるかに応じてジョイントヘッド部(56または62)の長短を選択するから、楽曲の曲調がスローテンポになるほど、レガートの時間が長くなる傾向を強めることができる。これにより、曲調に応じた自然なレガート感を実現することができる。
また、各ジョイントヘッド部の楽音信号を出力するための波形データは予め波形メモリ30に記憶されている波形データであり、かつ、出力すべきジョイントヘッド部を決定するための情報は全て過去に取得されている情報であるから、本実施例はリアルタイムの演奏に対しても適用することが可能である。
6.変形例
本発明は上述した実施例に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)上記実施例におけるノートオフイベント処理ルーチンにおいて、ステップSP84(図12)を実行した後に、破線で表記したステップSP86を実行させてもよい。このステップSP86においては、最終ノートオン時刻104が、現在時刻(すなわちノートオフタイミング)によって更新される。これにより、ノートを変更する契機となるノートオフイベント(例えば図7における、ノートNT2の時刻t40におけるノートオフイベント)も、ノートオンイベントと同様に、ジョイントヘッド部の長短の決定に影響させることができるようになる。
なお、ステップSP86を実行させたほうが望ましいのか否かは、曲調あるいはユーザの好みによっても異なるため、ステップSP86を実行させるのか否かを、設定操作子4を介してユーザが指定できるようにしてもよい。
(2)また、上記実施例においては、あるノートのノートオンイベント時に検出されたノート番号およびベロシティによって、当該ノートについてその後読み出される全ての波形データが決定された。例えば、図7において、時刻t1に検出されたノートNT1のベロシティによって、ノートNT1のヘッド部50、ボディ部52、ジョイントヘッド部68およびボディ部70を出力するための波形データが一意に決定された。しかし、その後のペダル、ノブ、モジュレーションホイール等の操作量によって振幅エンベロープ等のパラメータが変化したのであれば、変化後のパラメータに基づいて、各エレメント142,144,146,148内のキーバンク情報を参照する際のベロシティを変化させてもよい。
(3)また、上記実施例においては、第1および第2のノート(例えばNT1,NT2)のノートオンイベントの時間差(T3)が閾値Tth以下であるか否かに応じて、ジョイントヘッド部の長短の区別を決定したが、「該時間差(T3)がより長い場合のジョイントヘッド部の長さが、該時間差(T3)がより短い場合のジョイントヘッド部の長さ以上になるようにする」方法はこれに限られるものではない。例えば、該時間差(T3)を「2」以上の閾値と比較することによって該時間差(T3)が「3」以上の「時間差の範囲」の何れに属するのかを判定し、その結果に応じて「3」種類以上の異なる長さのジョイントヘッド部の中から適用するジョイントヘッド部を選択するようにしてもよい。
(4)また、上記実施例においては、閾値Tthは選択中のボイスに応じて固定的に定められていたが、閾値Tthをユーザが指定できるようにしてもよい。
(5)また、上記実施例において、外部記憶装置5に記憶された演奏データに基づいて楽音信号を合成する場合はノンリアルタイムで合成処理を実行してもよい。
(6)また、上記実施例において、ノートオンイベントに対するレガート条件は、「該ノートオンイベントの発生時に消音状態ではない他のノート情報が存在し、かつ当該他のノート情報に係るノートついてノートオフイベントが生じていない」ということであり、また、ノートオフイベントに対するレガート条件は、「該ノートオフイベントの発生時に消音状態である他のノート情報が存在し、かつ当該他のノート情報に係るノートついてノートオフイベントが生じていない」ということであった。
しかし、レガート条件は上述したものに限定されるわけではない。例えば、上記「他のノート情報」に係るノートと、今回のノートオンまたはノートオフイベントに係るノートとの音高差が所定値以下(例えば1オクターブ以下)であることを上記実施例のレガート条件に追加してもよい。
また、ノートオンイベントに対するレガート条件については、「最終ノートオン時刻104と現在時刻との差が所定値(きわめて短い時間)以上である」ことを上記実施例のレガート条件に追加してもよい。これは、きわめて短い時間内にノートオンイベントが生じた場合は、和音が演奏されたものと見做し、それぞれのノートについて発音処理を行えるようにしたものである。
(7)また、上記実施例においては、ジョイントヘッド部を必ずピッチエンベロープで制御し、先行するノートのピッチと後続するノートのピッチとが滑らかに変化するように制御した。しかし、ピッチエンベロープによる制御は行わなくてもよい。あるいは、ボイスパラメータ130−1〜130−m中にピッチエンベロープによる制御を行うか否かを表すパラメータを用意し、そのパラメータに従って、ピッチエンベロープによる制御を行うか否かを切り替えるようにしてもよい。特に、ピッチエンベロープによる制御を行わない方が効果的である場合とは、次のような場合である。すなわち、ジョイントヘッド部が自然楽器の音をサンプリングして作られたものであって、その自然楽器で音程を遷移させたときの振る舞いが「徐々にピッチが変化する」ものではない場合、例えばピッチ感の乏しいノイズ的な音を発する場合である。
(8)また、上記実施例は、電子楽器に対して本発明を適用した例であったが、本発明は電子楽器の形態に限らず、パーソナルコンピュータとアプリケーションソフトウェアとによって実現してもよく、カラオケ装置や、ゲーム装置、携帯電話等の携帯型通信端末に適用してもよい。携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバ側に持たせ、端末とサーバとからなるシステム全体として所定の機能を実現するようにしてもよい。また、電子楽器の形態を取った場合、その形態は鍵盤楽器に限らず、弦楽器タイプ、管楽器タイプ、打楽器タイプ等の形態でもよい。また、音源装置、自動演奏装置等を1つの電子楽器本体に内蔵したものに限らず、それぞれが別体の装置であり、MIDIや各種ネットワーク等の通信手段を用いて各装置を接続するものであってもよい。また、処理プログラムや処理に利用する各種データを外部記憶媒体から、或いは通信インターフェースを介して外部装置から電子楽器やパソコンに供給してもよい。通信インターフェース及び通信ネットワークは、有線のものに限らず無線でもよい。また双方を備えていてもよい。
(9)また、上記実施例は、音源として波形メモリ音源6を適用した例であったが、音源回路の方式はこれに限られるものではなく、FM方式、物理モデル方式、高調波合成方式、フォルマント合成方式、VCO+VCF+VCAのアナログシンセサイザ方式、アナログシミュレーション方式等、どのような方式であってもよい。
このような音源回路は、専用のハードウェアを用いて構成してもよいし、DSPとマイクロプログラムとを用いて音源回路を構成してもよい。また、パーソナルコンピュータとソフトウェアのプログラムで音源機能を構成してもよく、これらの組み合わせでもよい。また、音源回路においては、1つの回路を時分割で使用して複数の発音チャンネルを形成してもよいし、1つの発音チャンネルを1つの回路で形成してもよい。
(10)また、上記実施例におけるMIDIインタフェース14は、専用のMIDIインターフェースに限らず、RS-232C、USB(ユニバーサル・シリアル・バス)、IEEE1394(アイトリプルイー1394)等の汎用のインターフェースを用いてMIDIインターフェースを構成してもよい。この場合、MIDIメッセージ以外のデータをも同時に送受信するようにしてもよい。
2:表示器、4:設定操作子、5:外部記憶装置、6:波形メモリ音源(音源)、8:DAコンバータ、10:サウンドシステム、12:バス、14:MIDIインタフェース、16:演奏操作子、18:タイマ、20:CPU、22:ROM、24:RAM、30:波形メモリ、32−1〜32−n:第1〜第n発音チャンネル、34:混合エフェクト処理部、36:音源レジスタ、40:波形読出部、42:音色フィルタ部、44:音量制御部、46:各種LFO部、48:各種EG部、50:ヘッド部、52,58,66,70,74:ボディ部、54,60,76:テイル部、56,62,64,68,72,78:ジョイントヘッド部、56A,62A,64A,68A,72A:ピッチエンベロープ、100:発音管理データ、102:ボイスパラメータ参照情報、104:最終ノートオン時刻、106:管理中ノートリスト、108−1〜108−r:ノート情報、110−1〜110−r:ノート番号、112−1〜112−r:発音チャンネル情報、130−1〜130−m:ボイスパラメータ、132:ジョイントヘッド長短閾値、134:ジョイントヘッドIDテーブル、136:その他ボイスパラメータ、140:エレメント群、142:ヘッドエレメント、144:ボディエレメント、146:テイルエレメント、148:ジョイントヘッドエレメント群、150−1〜150−p:波形データ。

Claims (5)

  1. 複数のノートオンイベントおよびノートオフイベントを含む演奏データに基づいて楽音信号を合成する音源に対して、制御信号を出力する音源制御装置であって、
    前記音源は、第1のノートのノートオンイベントが生じた後に該第1のノートのノートオフイベントが生じる前に他の第2のノートのノートオンイベントが生じると、前記第1のノートから前記第2のノートに向かって遷移する音を表すジョイントヘッド部の波形と、該ジョイントヘッド部に接続され該第2のノートに係るピッチを有するボディ部の波形とを出力するものであり、
    前記第1および第2のノートのノートオンイベントの時間差に応じて、前記ジョイントヘッド部の長さを制御する制御信号出力手段であって、前記時間差がより長い場合の前記ジョイントヘッド部の長さが、前記時間差がより短い場合の前記ジョイントヘッド部の長さ以上になるように、前記音源に制御信号を出力する制御信号出力手段
    を有することを特徴とする音源制御装置。
  2. 前記音源は、さらに、前記第1のノートのノートオフイベントが生じる前に前記第2のノートのノートオフイベントが生じると、前記第2のノートから前記第1のノートに向かって遷移する音を表すジョイントヘッド部の波形と、該ジョイントヘッド部に接続され該第1のノートに係るピッチを有するボディ部の波形とを出力するとともに、前記第2のノートのノートオフイベントが生じた後、前記第1のノートのノートオフイベントが生じる前に他の第3のノートのノートオンイベントが生じると、前記第1のノートから前記第3のノートに向かって遷移する音を表すジョイントヘッド部の波形と、該ジョイントヘッド部に接続され該第3のノートに係るピッチを有するボディ部の波形とを出力するものであり、
    前記制御信号出力手段は、
    前記第2のノートのノートオフイベントと前記第3のノートのノートオンイベントとの時間差が長くなるほど、前記第1のノートから前記第3のノートに向かって遷移する音を表すジョイントヘッド部の長さを長くするように、前記音源に制御信号を出力するものである
    ことを特徴とする請求項1記載の音源制御装置。
  3. 前記音源は、複数種類の長さのジョイントヘッド部用の波形データをそれぞれ記憶する波形メモリを有するものであり、
    前記音源制御装置は、これら波形データのうち何れかを指定する制御信号を前記音源に供給するものである
    ことを特徴とする請求項1記載の楽音合成装置。
  4. 複数のノートオンイベントおよびノートオフイベントを含む演奏データに基づいて楽音信号を合成するとともに、第1のノートのノートオンイベントが生じた後に該第1のノートのノートオフイベントが生じる前に他の第2のノートのノートオンイベントが生じると、前記第1のノートから前記第2のノートに向かって遷移する音を表すジョイントヘッド部の波形と、該ジョイントヘッド部に接続され該第2のノートに係るピッチを有するボディ部の波形とを出力する音源と、
    前記第1および第2のノートのノートオンイベントの時間差に応じて、前記ジョイントヘッド部の長さを制御する制御信号出力手段であって、前記時間差がより長い場合の前記ジョイントヘッド部の長さが、前記時間差がより短い場合の前記ジョイントヘッド部の長さ以上になるように、前記音源に制御信号を出力する制御信号出力手段と
    を有することを特徴とする楽音合成装置。
  5. コンピュータを、複数のノートオンイベントおよびノートオフイベントを含む演奏データに基づいて楽音信号を合成する音源を制御する装置として機能させるためのプログラムであって、
    前記音源は、第1のノートのノートオンイベントが生じた後に該第1のノートのノートオフイベントが生じる前に他の第2のノートのノートオンイベントが生じると、前記第1のノートから前記第2のノートに向かって遷移する音を表すジョイントヘッド部の波形と、該ジョイントヘッド部に接続され該第2のノートに係るピッチを有するボディ部の波形とを出力するものであり、
    前記コンピュータを、
    前記第1および第2のノートのノートオンイベントの時間差に応じて、前記ジョイントヘッド部の長さを制御する制御信号出力手段であって、前記時間差がより長い場合の前記ジョイントヘッド部の長さが、前記時間差がより短い場合の前記ジョイントヘッド部の長さ以上になるように、前記音源に制御信号を出力する制御信号出力手段
    として機能させるためのプログラム。
JP2010067034A 2010-03-23 2010-03-23 音源制御装置、楽音合成装置およびプログラム Expired - Fee Related JP5505013B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010067034A JP5505013B2 (ja) 2010-03-23 2010-03-23 音源制御装置、楽音合成装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010067034A JP5505013B2 (ja) 2010-03-23 2010-03-23 音源制御装置、楽音合成装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2011197583A JP2011197583A (ja) 2011-10-06
JP5505013B2 true JP5505013B2 (ja) 2014-05-28

Family

ID=44875819

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010067034A Expired - Fee Related JP5505013B2 (ja) 2010-03-23 2010-03-23 音源制御装置、楽音合成装置およびプログラム

Country Status (1)

Country Link
JP (1) JP5505013B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4802947B2 (ja) * 2006-09-01 2011-10-26 ヤマハ株式会社 奏法決定装置及びプログラム

Also Published As

Publication number Publication date
JP2011197583A (ja) 2011-10-06

Similar Documents

Publication Publication Date Title
US6687674B2 (en) Waveform forming device and method
JP4274152B2 (ja) 楽音合成装置
JP2007011217A (ja) 楽音合成装置及びプログラム
US20070256542A1 (en) Tone synthesis apparatus and method
US7816599B2 (en) Tone synthesis apparatus and method
JP4561636B2 (ja) 楽音合成装置及びプログラム
JP5897805B2 (ja) 楽音制御装置
JP2006084774A (ja) 奏法自動判定装置及びプログラム
US6762358B2 (en) Waveform reproduction apparatus
JP4407473B2 (ja) 奏法決定装置及びプログラム
JP5505013B2 (ja) 音源制御装置、楽音合成装置およびプログラム
JP4802947B2 (ja) 奏法決定装置及びプログラム
JP4830575B2 (ja) 電子楽器およびプログラム
JP4835434B2 (ja) 演奏パターン再生装置及びそのコンピュータプログラム
JP4816441B2 (ja) 楽音合成装置及びプログラム
JP2002149159A (ja) 楽音信号合成方法、楽音信号合成装置および記録媒体
JP2765469B2 (ja) 楽音信号再生装置
JP2616656B2 (ja) 演奏情報再生装置
JPH10222167A (ja) 電子楽器のピッチ制御装置
JP5104418B2 (ja) 自動演奏装置、プログラム
JP3193131B2 (ja) 電子楽器
JP4835433B2 (ja) 演奏パターン再生装置及びそのコンピュータプログラム
JP4716180B2 (ja) 電子楽器およびプログラム
JP2008003222A (ja) 楽音合成装置及びプログラム
JP2009229869A (ja) 音源装置およびプログラム

Legal Events

Date Code Title Description
RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20110809

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110909

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130121

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: 20140218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140303

R150 Certificate of patent or registration of utility model

Ref document number: 5505013

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees