JP5030016B2 - 楽音発生装置および楽音発生処理プログラム - Google Patents

楽音発生装置および楽音発生処理プログラム Download PDF

Info

Publication number
JP5030016B2
JP5030016B2 JP2007194008A JP2007194008A JP5030016B2 JP 5030016 B2 JP5030016 B2 JP 5030016B2 JP 2007194008 A JP2007194008 A JP 2007194008A JP 2007194008 A JP2007194008 A JP 2007194008A JP 5030016 B2 JP5030016 B2 JP 5030016B2
Authority
JP
Japan
Prior art keywords
time
note
key
sound
percussion instrument
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007194008A
Other languages
English (en)
Other versions
JP2009031457A (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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2007194008A priority Critical patent/JP5030016B2/ja
Publication of JP2009031457A publication Critical patent/JP2009031457A/ja
Application granted granted Critical
Publication of JP5030016B2 publication Critical patent/JP5030016B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、例えばドラムやシンバルなどの打楽器音を発生する電子楽器に用いて好適な楽音発生装置および楽音発生処理プログラムに関する。
従来より、打楽器音を発音する電子楽器が知られている。この種の電子楽器では、例えば特許文献1に開示されているように、ドラムやシンバルなどの典型的な減衰音であれば、ノートオンに応じて発音を開始させ、ノートオフを無視して最後まで自然減衰させてから消音する楽音発生形態にしたり、あるいは特許文献2に開示されているように、ホイッスルや拍手の音など純粋な打楽器音ではなく、もともと持続系の音色の楽音を便宜的に減衰系の音色として扱う場合に、ノートオンに応じて発音を開始し、ノートオフで強制的に減衰させて消音させる楽音発生形態にする楽音発生装置を備えることが多い。
特開平9−44156号公報 特開2004−240256号公報
ところで、上述した従来の楽音発生装置では、次のような問題がある。
(a)シンバルやトライアングル等の実際の打楽器においては、発音後に発音体を素手で掴んで減衰中の音を意図的にミュートさせる「チョーク」と呼ばれる奏法をしばしば用いるが、上述した、ノートオフを無視して最後まで自然減衰させてから消音する楽音発生形態ではその奏法を実現することが出来ない。
(b)打楽器音は減衰しきるまで発音させることで「その音」らしさを醸し出す。また、発音から消音に至る減衰時間は、音色やベロシティによっても異なる。したがって、上述した、ノートオフで強制的に減衰させて消音させる楽音発生形態では、鍵操作で打楽器音を発生させることが出来ない。
つまり、以上を換言すると、従来の楽音発生装置では、鍵操作に応じて、意図的に途中で消音させた打楽器音や、最後まで自然に減衰させた打楽器音を発生させることが出来ない、という問題がある。
本発明は、このような事情に鑑みてなされたもので、鍵操作に応じて、意図的に途中で消音させた打楽器音や、最後まで自然に減衰させた打楽器音を発生させることが出来る楽音発生装置および楽音発生処理プログラムを提供することを目的としている。
上記目的を達成するため、請求項1に記載の発明では、発音開始を指示する押鍵が行われたノートオン時刻から発音停止を指示する離鍵が行われたノートオフ時刻までの押鍵期間を検出する検出手段と、前記検出手段により検出された押鍵期間が、押鍵に応じて発音される打楽器音に対応付けられた閾値時間より短ければ、発音中の打楽器音を自然減衰させて消音し、当該閾値時間より長ければ、発音中の打楽器音をノートオフ時刻から強制減衰させて消音する消音制御手段とを具備することを特徴とする。
請求項2に記載の発明では、発音開始を指示する押鍵が行われたノートオン時刻を検出するノートオン時刻検出手段と、発音停止を指示する離鍵が行われたノートオフ時刻を検出するノートオフ時刻検出手段と、前記ノートオン時刻検出手段により検出されるノートオン時刻から前記ノートオフ時刻検出手段により検出されるノートオフ時刻までの押鍵期間を計時する計時手段と、前記計時手段により計時された押鍵期間が、押鍵に応じて発音される打楽器音に対応付けられた閾値時間より長いか否かを判別する押鍵期間判別手段と、前記押鍵期間判別手段によって押鍵期間が閾値時間より短いと判別された場合には発音中の打楽器音を自然減衰させて消音し、一方、押鍵期間が閾値時間より長いと判別された場合には発音中の打楽器音をノートオフ時刻から強制減衰させて消音する消音制御手段とを具備することを特徴とする。
上記請求項2に従属する請求項3に記載の発明では、前記押鍵期間判別手段は、予め各種音色の打楽器音の閾値時間を記憶しておき、その内から押鍵に応じて発音される打楽器音に対応付けられた閾値時間を選択する選択手段を具備することを特徴とする。
上記請求項2に従属する請求項4に記載の発明では、前記消音制御手段は、離鍵速度に応じて、打楽器音をノートオフ時刻から強制減衰させるレートを可変設定することを特徴とする。
請求項5に記載の発明では、発音開始を指示する押鍵が行われたノートオン時刻から発音停止を指示する離鍵が行われたノートオフ時刻までの押鍵期間を検出する検出処理と、前記検出処理により検出された押鍵期間が、押鍵に応じて発音される打楽器音に対応付けられた閾値時間より短ければ、発音中の打楽器音を自然減衰させて消音し、当該閾値時間より長ければ、発音中の打楽器音をノートオフ時刻から強制減衰させて消音する消音制御処理とをコンピュータで実行させることを特徴とする。
請求項6に記載の発明では、発音開始を指示する押鍵が行われたノートオン時刻を検出するノートオン時刻検出処理と、発音停止を指示する離鍵が行われたノートオフ時刻を検出するノートオフ時刻検出処理と、前記ノートオン時刻検出処理により検出されるノートオン時刻から前記ノートオフ時刻検出処理により検出されるノートオフ時刻までの押鍵期間を計時する計時処理と、前記計時処理により計時された押鍵期間が、押鍵に応じて発音される打楽器音に対応付けられた閾値時間より長いか否かを判別する押鍵期間判別処理と、前記押鍵期間判別処理によって押鍵期間が閾値時間より短いと判別された場合には発音中の打楽器音を自然減衰させて消音し、一方、押鍵期間が閾値時間より長いと判別された場合には発音中の打楽器音をノートオフ時刻から強制減衰させて消音する消音制御処理とをコンピュータで実行させることを特徴とする。
本発明では、鍵操作に応じて、意図的に途中で消音させた打楽器音や、最後まで自然に減衰させた打楽器音を発生させることが出来る。
以下、図面を参照して本発明の実施の形態について説明する。
A.構成
(1)全体構成
図1は、本発明の実施の一形態による楽音発生装置を備えた電子楽器の全体構成を示すブロック図である。この図において、CPU10は、操作部15に配設される各種スイッチ操作に応じて楽器各部の動作形態を指定する他、後述するメインルーチンおよびエンベロープ処理を実行することによって、意図的に途中で消音させた打楽器音や最後まで自然に減衰させた打楽器音を音源18から発生させる。なお、CPU10が実行するエンベロープ処理にて具現される音量エンベロープ制御機能については追って詳述する。
ROM11は、上記CPU10が実行する各種プログラムおよび各種データテーブルを記憶する。ROM11に記憶される各種プログラムとは、後述するメインルーチンおよびエンベロープ処理を含む。また、ROM11に記憶されるデータテーブルとは、アタックレートAR(後述する)を増加率に変換する変換テーブルT1や、ディケイレートDR又はミュートレートMR(後述する)を乗率に変換する変換テーブルT2を指す。これら変換テーブルT1,T2が意図するところについては追って述べる。
RAM12は、図2に示すように、各種レジスタ・フラグデータを一時記憶するワークエリアWEと、リズム音色パラメータエリアRTとを備える。リズム音色パラメータエリアRTには、「ドラム」、「シンバル」、「スネア」などの各種打楽器音の音色パラメータが記憶される。1つの音色パラメータは、波形アドレスAD、スレッショルドゲートタイムTGT、アタックレートAR、ディケイレートDRおよびミュートレートMRから形成される。これら音色パラメータが意図するところについて追って述べる。
鍵盤13は、押離鍵操作(演奏操作)に応じたキーオン/キーオフイベント、キーナンバ(鍵番号)およびベロシティ(後述するノートオンベロシティONV、ノートオフベロシティOFV)を含む演奏情報を発生してCPU10に供給する。パッド14は、各種リズム音色がアサインされる複数のパッド面を有し、各パッド面にはパッド操作(演奏者の手あるいはスティックでパッド面を叩く操作)を検出するセンサ(振動センサ又は圧力センサ)が設けられる。パッド14では、所定レベル以上のパッド操作が為された場合に、キーオンイベントとパッド操作速度に対応したベロシティとを含むパッド演奏情報を発生してCPU10に供給する。
操作部15は、各種スイッチを備え、操作されるスイッチ種に応じたスイッチイベントを発生してCPU10に供給する。図示していないが、操作部15には、例えば電源をオンオフする電源スイッチや、上述したRAM12のリズム音色パラメータエリアRTに格納される各種音色パラメータの内から所望のリズム音色のパラメータを選択するリズム音色選択スイッチ等が設けられている。表示部16は、LCDパネル等から構成され、CPU10から供給される表示制御信号に応じて装置各部の設定状態や動作状態などを画面表示する。
波形メモリ17は、「ドラム」、「シンバル」、「スネア」などの各種リズム音色(打楽器音)の波形データを記憶する。音源18は、複音同時発音する複数の発音チャンネルを有し、1つの発音チャンネル当たり、波形発生器(OSC)18aおよび増幅器(AMP)18bを具備する。波形発生器18aは、CPU10から供給される波形アドレスADで指定されるリズム音色の波形データを波形メモリ17から読み出す。なお、CPU10から波形発生器18aに与えられる波形アドレスADは、RAM12のリズム音色パラメータエリアRT(図2参照)からユーザのリズム音色選択スイッチ操作に応じて読み出されるものである。
増幅器18bは、波形発生器18aから出力される波形データに、CPU10から供給される音量エンベロープ波形を乗算して楽音波形データを発生する。なお、音量エンベロープ波形を発生するCPU10の音量エンベロープ制御機能については後述する。加算器19は、音源18の各発音チャンネルにおいてそれぞれ生成される楽音波形データを累算して出力する。サウンドシステム20は、加算器19から出力される楽音波形データをアナログ形式の楽音信号に変換した後、当該楽音信号から不要ノイズを除去する等のフィルタリングを施してからレベル増幅してスピーカから発音させる。
(2)CPU10の音量エンベロープ制御機能
次に、図3〜図9を参照してCPU10の音量エンベロープ制御機能について説明する。上述したように、CPU10では、音源18の増幅器18bに供給する音量エンベロープ波形を、タイマ割り込みにて所定周期(例えば10msec)毎に実行するエンベロープ処理(後述する)にて発生する。
音量エンベロープ波形は、「アタック」、「自然減衰」、「強制減衰」の各区間に大別される。これら各区間の音量エンベロープ波形は、ユーザのリズム音色選択スイッチ操作に応じてRAM12のリズム音色パラメータエリアRT(図2参照)から読み出される音色パラメータ(スレッショルドゲートタイムTGT、アタックレートAR、ディケイレートDRおよびミュートレートMR)で決まる。
CPU10は、ROM11に記憶される変換テーブルT1を参照してアタックレートARに対応する増加率を読み出し、これを現在のエンベロープレベルに乗算して加算値を算出した後、この加算値を当該エンベロープレベルに加算してアタック区間の音量エンベロープ波形を形成する。
図3は、ROM11に記憶される変換テーブルT1の一例を示す図である。この一例において、例えば音色パラメータとして定義されたアタックレートARが「127」であると、増加率は「1.0」となり、この増加率が現在のエンベロープレベルに乗算され、これにより算出される加算値が当該エンベロープレベルに加算されてアタック区間の音量エンベロープ波形値となる。
CPU10は、ROM11に記憶される変換テーブルT2を参照してディケイレートDR又はミュートレートMRを乗率に変換し、これを現在のエンベロープレベルに乗算して自然減衰区間又は強制減衰区間の音量エンベロープ波形を形成する。図4は、ROM11に記憶される変換テーブルT2の一例を示す図である。ディケイレートDRは、アタックレベルに達した音量エンベロープ波形を自然減衰させる乗率を指定する。例えば、ディケイレートDRに対応する乗率が「0.8」、タイマ割り込み周期が10msecであったとすると、図5に図示するように、音量エンベロープ波形は10msec毎に0.8倍される減衰特性となる。
ミュートレートMRは、ユーザのリズム音色選択スイッチ操作に応じてRAM12のリズム音色パラメータエリアRTから読み出されるスレッショルドゲートタイムTGTを超えたノートオフ時点から音量エンベロープ波形を強制減衰させる乗率を指定する。すなわち、スレッショルドゲートタイムTGTよりも前にノートオフされた場合であれば、図6に図示するように、アタックレベルに達した音量エンベロープ波形をディケイレートDRの乗率で自然減衰させるのに対し、スレッショルドゲートタイムTGTより後にノートオフされた場合には、図7に図示するように、アタックレベルからディケイレートDRの乗率で自然減衰中の音量エンベロープ波形を、ノートオフ時点からミュートレートMRに従った乗率で強制減衰させる。
CPU10では、次式[1]に基づき音量エンベロープ波形のアタックレベルALを算出する。なお、次式[1]において、ONVは鍵盤13から出力される演奏情報に含まれ、押鍵速度を表すノートオンベロシティである。また、次式[1]はノートオンベロシティONVの値域を「1〜127」とした時のアタックレベルAL(百分率表示)を算出する。
アタックレベルAL(%)=(ONV×ONV/127×127)×100……[1]
図8は、こうした[1]式に基づき、各種ノートオンベロシティONVに対応して算出されるアタックレベルAL1〜AL6、アタックレートARおよびディケイレートDRに従って形成される音量エンベロープ波形の一例を図示している。
また、CPU10では、次式[2]に基づきミュートレートMRを更新する。なお、次式[2]において、OFVは鍵盤13から出力される演奏情報に含まれ、離鍵速度を表すノートオフベロシティである。ノートオフベロシティOFVの値域は「0〜127」である。
更新後ミュートレートMR=MR+(127−OFV)……[2]
したがって、例えばノートオフベロシティOFVの値が「127」、つまり最も速く離鍵操作した場合には、更新後ミュートレートMRは、音色パラメータとして読み出されたミュートレートMRに一致する。図9は、こうしてノートオフベロシティOFVで修飾されるミュートレートMRに従って形成される音量エンベロープ波形の一例を図示している。
B.動作
次に、図10〜図13を参照して上記構成による実施形態の動作について説明する。以下では、最初に全体動作としてメインルーチンの動作を説明した後、このメインルーチンからコールされるノートオン処理およびノートオフ処理の各どうさを説明し、続いてタイマ割り込みによって所定周期毎に実行されるエンベロープ処理の動作について述べる。
(1)メインルーチンの動作
図10は、メインルーチンの動作を示すフローチャートである。パワーオン(電源投入)に応じてメインルーチンが実行されると、CPU10は図10に図示するステップSA1に進み、RAM12のワークエリアWEに格納される各種レジスタ・フラグデータを初期値設定したり、ゼロリセットしたりするイニシャライズを実行する。イニシャライズが完了すると、ステップSA2に進み、スイッチ処理を実行する。スイッチ処理では、例えばユーザのリズム音色選択スイッチ操作に応じて、RAM12のリズム音色パラメータエリアRT(図2参照)から選択されたリズム音色の音色パラメータ(スレッショルドゲートタイムTGT、アタックレートAR、ディケイレートDRおよびミュートレートMR)を読み出してワークエリアWEにストアする。
次いで、ステップSA3では、鍵盤13の鍵変化を判断する。鍵盤13が鍵操作されず、キーオン/キーオフイベントが発生しない場合には、鍵変化無しと判断されて上記ステップSA2に処理を戻す。これに対し、鍵盤13の押鍵操作に応じてキーオンイベントが発生すると、ステップSA4を介してノートオン処理(後述する)を実行した後、上述のステップSA2に処理を戻す。一方、鍵盤13の離鍵操作に応じてキーオフイベントが発生すると、ステップSA5を介してノートオフ処理(後述する)を実行した後、上述のステップSA2に処理を戻す。以後、パワーオフされる迄、上記ステップSA2〜SA5を繰り返す。
(2)ノートオン処理の動作
図11は、ノートオン処理の動作を示すフローチャートである。上述したメインルーチンのステップSA4(図10参照)を介して本処理が実行されると、CPU10は、図11に図示するステップSB1に進む。ステップSB1では、音源18が備える複数の発音チャンネルの中から発音されていない空きチャンネルを探し出し、該当するチャンネルにノートオン(キーオン)をアサインする周知の発音割り当てを行い、発音割り当てされたチャンネルの番号をレジスタChにストアする。なお、全ての発音チャンネルが発音中で空きチャンネルが無く、発音割り当てすることが出来ない場合には、レジスタChに無効なチャンネル番号をストアする。
続いて、ステップSB2では、押鍵操作に応じて鍵盤13が発生した演奏情報中のキーナンバKNを、発音割り当てされたチャンネル番号Chで指定されるレジスタKey[Ch]にストアする。なお、上記ステップSB1において、発音割り当てすることが出来なかった場合、ステップSB2では、無効なチャンネル番号Chで指定されるレジスタKey[Ch]に「−1」をストアする。
次いで、ステップSB3では、チャンネル番号Chで指定されるレジスタKey[Ch]の値が「−1」、すなわち発音割り当てが行われたかどうかを判断する。発音割り当てが行われず、レジスタKey[Ch]の値が「−1」であると、判断結果は「YES」になり、本処理を終える。
これに対し、発音割り当てが行われ、レジスタKey[Ch]に押鍵された鍵のキーナンバKNがストアされていれば、上記ステップSB3の判断結果は「NO」になり、ステップSB4に進む。ステップSB4では、発音割り当てされたチャンネル番号Chで指定されるレジスタNoteOnTime[Ch]に現在時刻(ノートオン時刻)をストアする。
次に、ステップSB5では、音源18の波形発生器(OSC)18aに発音設定する。すなわち、ユーザのリズム音色選択スイッチ操作に応じてRAM12のリズム音色パラメータエリアRT(図2参照)から読み出された波形アドレスADと、発音割り当てされたチャンネル番号ChのレジスタKey[Ch]にストアされるキーナンバKNとを波形発生器(OSC)18aに供給した後に波形読み出し開始を指示する。これにより、波形発生器(OSC)18aでは、波形アドレスADで指定されるリズム音色の波形データを、キーナンバKNに対応した読み出し速度で波形メモリ17から読み出して波形出力する。
続いて、ステップSB6では、前述した[1]式に基づき、鍵盤13から出力される演奏情報中のノートオンベロシティONVに対応するアタックレベルALを算出し、算出したアタックレベルALを、発音割り当てされたチャンネル番号Chで指定されるレジスタEnvAttackLevel[Ch]にストアする。そして、ステップSB7に進み、発音割り当てされたチャンネル番号Chで指定されるレジスタEnvStatus[Ch]に「1」をセットして本処理を終える。
なお、レジスタEnvStatus[Ch]は、音量エンベロープ波形の状態を表すフラグ値を一時記憶する。具体的には、フラグ値が「0」の場合には、エンベロープ発生の停止中を表す。また、「1」の場合には音量エンベロープ波形がアタック中であることを、「2」の場合には自然減衰中であることを、「3」の場合には強制減衰中であることをそれぞれ表す。
(3)ノートオフ処理の動作
図12は、ノートオフ処理の動作を示すフローチャートである。上述したメインルーチンのステップSA5(図10参照)を介して本処理が実行されると、CPU10は、図12に図示するステップSC1に進む。ステップSC1では、音源18が備える複数の発音チャンネルの内、発音中のチャンネルの中から離鍵された鍵のキーナンバKNが割り当てられたチャンネルを検索し、該当するチャンネルの番号をレジスタChにストアする。なお、該当するチャンネルが検索されない場合には、レジスタChに無効なチャンネル番号を表す値「−1」をストアする。
続いて、ステップSC2では、レジスタChの値が「−1」であるか否か、つまり離鍵された鍵のキーナンバKNが割り当てられたチャンネルを検索したかどうかを判断する。該当するチャンネルが検索されず、レジスタChの値が「−1」であると、判断結果は「YES」となり、本処理を完了させる。
これに対し、離鍵された鍵のキーナンバKNが割り当てられたチャンネルが検索された場合には、上記ステップSC2の判断結果が「NO」になり、ステップSC3に進む。ステップSC3では、現在時刻と、チャンネル番号Chで指定されるレジスタNoteOnTime[Ch]に記憶されたノートオン時刻との差分がスレッショルドゲートタイムTGTより大きいか否か、すなわちスレッショルドゲートタイムTGTより後のノートオフであるかどうかを判断する。
スレッショルドゲートタイムTGTより前のノートオフであったならば、上記ステップSC3の判断結果は「NO」になり、本処理を終えるが、スレッショルドゲートタイムTGTより後のノートオフであると、判断結果が「YES」となり、ステップSC4に進む。そして、ステップSC4では、スレッショルドゲートタイムTGTより後のノートオフであることに対応して、音量エンベロープ波形の状態を表すフラグ値を一時記憶するレジスタEnvStatus[Ch]にフラグ値「3」をセットして強制減衰区間に遷移したことを表して本処理を終える。
(4)エンベロープ処理の動作
図13は、タイマ割り込みによって所定周期毎に実行されるエンベロープ処理の動作を示すフローチャートである。割り込みタイミングになると、CPU10は図13に図示するステップSD1に進み、チャンネル番号を指定するポインタChをゼロリセットする。以後、チャンネルループ開始CLSからチャンネルループ終了CLEまでの間、後述するステップSD2〜SD10の処理を全ての発音チャンネル(例えば8Ch)について実行する。すなわち、ポインタChを歩進させる毎にステップSD2〜SD10の処理を繰り返し実行し、歩進させたポインタChが「8」に達した時にチャンネルループ終了CLEを介して本処理を終える。
先ず、ステップSD2では、ポインタChで指定されるレジスタEnvStatus[Ch]に格納されるフラグ値を判定する。以下、レジスタEnvStatus[Ch]に格納されるフラグ値が「0」、「1」、「2」および「3」の各場合に分けて動作説明を進める。
<フラグ値が「0」の場合>
レジスタEnvStatus[Ch]のフラグ値が「0」の場合は、音量エンベロープ波形発生が停止しているので、何も行わずにチャンネルループ終了CLEに進む。
<フラグ値が「1」の場合>
レジスタEnvStatus[Ch]のフラグ値が「1」の場合、すなわち音量エンベロープ波形がアタック中であると、ステップSD3に進み、アタックレートARに応じた加算値を発生してレジスタrにストアする。つまり、図3に図示したように、ROM11に記憶される変換テーブルT1を参照してアタックレートARに対応する増加率を読み出し、読み出した増加率を音量エンベロープ波形に乗算して加算値を算出する。
次いで、ステップSD4では、上記ステップSD3において算出した加算値をレジスタEnvLevel[Ch]に加算する。なお、レジスタEnvLevel[Ch]は、ポインタChで指定されるチャンネルにおける現在の音量エンベロープ波形のレベルを一時記憶するものであり、以下、現在エンベロープレベルEnvLevel[Ch]と称す。
次に、ステップSD5では、アタックレートARに応じた加算値が加算された現在エンベロープレベルEnvLevel[Ch]が、レジスタEnvAttackLevel[Ch]に格納されるアタックレベルAL以上であるか否か、つまり現在エンベロープレベルEnvLevel[Ch]がアタックレベルALに達したかどうかを判断する。アタックレベルALに達していなければ、判断結果は「NO」となり、チャンネルループ終了CLEに進む。
一方、現在エンベロープレベルEnvLevel[Ch]がアタックレベルALに達していると、上記ステップSD5の判断結果は「YES」になり、ステップSD6に進み、レジスタEnvAttackLevel[Ch]に格納されるアタックレベルALを、現在エンベロープレベルEnvLevel[Ch]に設定すると共に、レジスタEnvStatus[Ch]にフラグ値「2」をセットしてチャンネルループ終了CLEに進む。なお、レジスタEnvStatus[Ch]にフラグ値「2」をセットすることで音量エンベロープ波形が自然減衰区間に入ったことを表す。
<フラグ値が「2」の場合>
レジスタEnvStatus[Ch]に格納されるフラグ値が「2」の場合、すなわち音量エンベロープ波形が自然減衰中ならば、ステップSD7に進み、ROM11に記憶される変換テーブルT2を参照してディケイレートDRに応じた乗率を読み出してレジスタrにストアする。次いで、ステップSD8では、上記ステップSD7にて発生した乗率を現在エンベロープレベルEnvLevel[Ch]に乗算する。これによりディケイレートDRに従って自然減衰する現在エンベロープレベルEnvLevel[Ch]が算出される。
続いて、ステップSD9では、現在エンベロープレベルEnvLevel[Ch]が「0」、つまり消音状態に達したか否かを判断する。消音状態でなければ、判断結果は「NO」になり、チャンネルループ終了CLEに進む。これに対し、消音状態であると、判断結果が「YES」となり、ステップSD10に進み、現在エンベロープレベルEnvLevel[Ch]およびレジスタEnvStatus[Ch]を共にゼロリセットした後、チャンネルループ終了CLEに進む。
<フラグ値が「3」の場合>
レジスタEnvStatus[Ch]に格納されるフラグ値が「3」の場合、すなわちスレッショルドゲートタイムTGTより後にノートオフされ、音量エンベロープ波形が強制減衰中ならば、ステップSD11に進む。ステップSD11では、前述した[2]式に基づき、ノートオフベロシティOFVに応じてミュートレートMRを更新すると共に、更新されたミュートレートMRに応じた乗率をROM11に記憶される変換テーブルT2から読み出してレジスタrにストアする。
そして、ステップSD8に進み、上記ステップSD11にて発生した乗率を現在エンベロープレベルEnvLevel[Ch]に乗算する。これにより更新されたミュートレートMRに従って強制減衰した現在エンベロープレベルEnvLevel[Ch]が算出される。次いで、ステップSD9では、現在エンベロープレベルEnvLevel[Ch]が「0」、つまり消音状態に達したか否かを判断する。消音状態でなければ、判断結果は「NO」になり、チャンネルループ終了CLEに進む。
これに対し、消音状態であると、上記ステップSD9の判断結果が「YES」となり、ステップSD10に進み、現在エンベロープレベルEnvLevel[Ch]およびレジスタEnvStatus[Ch]を共にゼロリセットした後、チャンネルループ終了CLEに進む。チャンネルループ終了CLEでは、全てのチャンネルについてエンベロープ制御し終えたかどうかを判断し、その途中ならば、チャンネルループ開始CLSに戻り、ポインタChを歩進させてから上述したステップSD2以降を繰り返す。一方、全てのチャンネルについてエンベロープ制御し終えたならば、本処理を終える。
以上のように、本実施の形態では、発音開始を指示する押鍵が行われたノートオン時刻から発音停止を指示する離鍵が行われたノートオフ時刻までの押鍵期間(ゲートタイム)を計時し、計時した押鍵期間が発音中の打楽器音の音色に対応付けられたスレッショルドゲートタイムTGTよりも短ければ、その発音中の打楽器音を自然減衰させて消音し、一方、スレッショルドゲートタイムTGTよりも長ければ、その発音中の打楽器音をノートオフ時刻から強制減衰させて消音する。
したがって、スレッショルドゲートタイムTGT以内に押離鍵操作を行えば、最後まで自然に減衰する打楽器音が発生し、スレッショルドゲートタイムTGTを超える離鍵操作を行うと、チョーク奏法で得られる意図的に途中で消音させた打楽器音が発生するので、鍵操作に応じて、意図的に途中で消音させた打楽器音や、最後まで自然に減衰させた打楽器音を発生させることが可能になる。
また、上述した実施形態では、スレッショルドゲートタイムTGTを音色パラメータとして各種リズム音色別に記憶しておき、その内から押鍵に応じて発音されるリズム音色の打楽器音に対応付けられたスレッショルドゲートタイムTGTを選択するので、各種リズム音色の打楽器音に適したスレッショルドゲートタイムTGTを設定することが出来る。さらに、本実施形態では、離鍵速度(ノートオフベロシティOFV)に応じてミュートレートMRを可変設定するので、離鍵の仕方で各様なチョーク奏法を実現することも出来る。
なお、上述した実施形態では、打楽器音の音色(リズム音色)毎に、固定的なスレッショルドゲートタイムTGTを設けておく態様としたが、これに限らず、ユーザ操作に応じてスレッショルドゲートタイムTGTを可変設定する態様としても構わない。このようにすれば、ユーザ好みの鍵操作タイミングで意図的に途中で消音させた打楽器音や、最後まで自然に減衰させた打楽器音を発音させることが可能になる。
本発明による一実施形態の構成を示すブロック図である。 RAM12の構成を示すメモリマップである。 ROM11に記憶される変換テーブルT1の一例を示す図である。 ROM11に記憶される変換テーブルT2の一例を示す図である。 CPU10の音量エンベロープ制御機能を説明する為の図である。 CPU10の音量エンベロープ制御機能を説明する為の図である。 CPU10の音量エンベロープ制御機能を説明する為の図である。 CPU10の音量エンベロープ制御機能を説明する為の図である。 CPU10の音量エンベロープ制御機能を説明する為の図である。 メインルーチンの動作を示すフローチャートである。 ノートオン処理の動作を示すフローチャートである。 ノートオフ処理の動作を示すフローチャートである。 エンベロープ処理の動作を示すフローチャートである。
符号の説明
10 CPU
11 ROM
12 RAM
13 鍵盤
14 パッド
15 操作部
16 表示部
17 波形メモリ
18 音源
18a 波形発生器
18b 増幅器
19 加算器
20 サウンドシステム

Claims (6)

  1. 発音開始を指示する押鍵が行われたノートオン時刻から発音停止を指示する離鍵が行われたノートオフ時刻までの押鍵期間を検出する検出手段と、
    前記検出手段により検出された押鍵期間が、押鍵に応じて発音される打楽器音に対応付けられた閾値時間より短ければ、発音中の打楽器音を自然減衰させて消音し、当該閾値時間より長ければ、発音中の打楽器音をノートオフ時刻から強制減衰させて消音する消音制御手段と
    を具備することを特徴とする楽音発生装置。
  2. 発音開始を指示する押鍵が行われたノートオン時刻を検出するノートオン時刻検出手段と、
    発音停止を指示する離鍵が行われたノートオフ時刻を検出するノートオフ時刻検出手段と、
    前記ノートオン時刻検出手段により検出されるノートオン時刻から前記ノートオフ時刻検出手段により検出されるノートオフ時刻までの押鍵期間を計時する計時手段と、
    前記計時手段により計時された押鍵期間が、押鍵に応じて発音される打楽器音に対応付けられた閾値時間より長いか否かを判別する押鍵期間判別手段と、
    前記押鍵期間判別手段によって押鍵期間が閾値時間より短いと判別された場合には発音中の打楽器音を自然減衰させて消音し、一方、押鍵期間が閾値時間より長いと判別された場合には発音中の打楽器音をノートオフ時刻から強制減衰させて消音する消音制御手段と
    を具備することを特徴とする楽音発生装置。
  3. 前記押鍵期間判別手段は、予め各種音色の打楽器音の閾値時間を記憶しておき、その内から押鍵に応じて発音される打楽器音に対応付けられた閾値時間を選択する選択手段を具備することを特徴とする請求項2記載の楽音発生装置。
  4. 前記消音制御手段は、離鍵速度に応じて、打楽器音をノートオフ時刻から強制減衰させるレートを可変設定することを特徴とする請求項2記載の楽音発生装置。
  5. 発音開始を指示する押鍵が行われたノートオン時刻から発音停止を指示する離鍵が行われたノートオフ時刻までの押鍵期間を検出する検出処理と、
    前記検出処理により検出された押鍵期間が、押鍵に応じて発音される打楽器音に対応付けられた閾値時間より短ければ、発音中の打楽器音を自然減衰させて消音し、当該閾値時間より長ければ、発音中の打楽器音をノートオフ時刻から強制減衰させて消音する消音制御処理と
    をコンピュータで実行させることを特徴とする楽音発生処理プログラム。
  6. 発音開始を指示する押鍵が行われたノートオン時刻を検出するノートオン時刻検出処理と、
    発音停止を指示する離鍵が行われたノートオフ時刻を検出するノートオフ時刻検出処理と、
    前記ノートオン時刻検出処理により検出されるノートオン時刻から前記ノートオフ時刻検出処理により検出されるノートオフ時刻までの押鍵期間を計時する計時処理と、
    前記計時処理により計時された押鍵期間が、押鍵に応じて発音される打楽器音に対応付けられた閾値時間より長いか否かを判別する押鍵期間判別処理と、
    前記押鍵期間判別処理によって押鍵期間が閾値時間より短いと判別された場合には発音中の打楽器音を自然減衰させて消音し、一方、押鍵期間が閾値時間より長いと判別された場合には発音中の打楽器音をノートオフ時刻から強制減衰させて消音する消音制御処理と
    をコンピュータで実行させることを特徴とする楽音発生処理プログラム。
JP2007194008A 2007-07-26 2007-07-26 楽音発生装置および楽音発生処理プログラム Active JP5030016B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007194008A JP5030016B2 (ja) 2007-07-26 2007-07-26 楽音発生装置および楽音発生処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007194008A JP5030016B2 (ja) 2007-07-26 2007-07-26 楽音発生装置および楽音発生処理プログラム

Publications (2)

Publication Number Publication Date
JP2009031457A JP2009031457A (ja) 2009-02-12
JP5030016B2 true JP5030016B2 (ja) 2012-09-19

Family

ID=40402035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007194008A Active JP5030016B2 (ja) 2007-07-26 2007-07-26 楽音発生装置および楽音発生処理プログラム

Country Status (1)

Country Link
JP (1) JP5030016B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5701509B2 (ja) * 2010-03-12 2015-04-15 株式会社河合楽器製作所 電子鍵盤楽器
JP5912483B2 (ja) * 2011-12-13 2016-04-27 ローランド株式会社 楽音制御装置
JP5942627B2 (ja) * 2012-06-18 2016-06-29 カシオ計算機株式会社 演奏装置、方法及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2576619B2 (ja) * 1989-01-13 1997-01-29 ヤマハ株式会社 楽音発生装置
JPH0588673A (ja) * 1991-03-01 1993-04-09 Yamaha Corp 演奏装置
JP3235160B2 (ja) * 1992-01-08 2001-12-04 ヤマハ株式会社 楽音制御装置
JP3493856B2 (ja) * 1995-12-14 2004-02-03 ヤマハ株式会社 演奏情報変換装置
JP2002032083A (ja) * 2000-07-17 2002-01-31 Kawai Musical Instr Mfg Co Ltd 電子楽器
JP4381703B2 (ja) * 2003-03-19 2009-12-09 ヤマハ株式会社 電子楽器
JP2006133529A (ja) * 2004-11-05 2006-05-25 Yamaha Corp 電子打楽器

Also Published As

Publication number Publication date
JP2009031457A (ja) 2009-02-12

Similar Documents

Publication Publication Date Title
US7429699B2 (en) Electronic musical instrument and recording medium that stores processing program for the electronic musical instrument
US8106287B2 (en) Tone control apparatus and method using virtual damper position
JP2019012131A (ja) 電子管楽器、その電子管楽器の制御方法及びその電子管楽器用のプログラム
JPH03174590A (ja) 電子楽器
JP5030016B2 (ja) 楽音発生装置および楽音発生処理プログラム
JP5188863B2 (ja) 電子楽器
JP6176480B2 (ja) 楽音発生装置、楽音発生方法およびプログラム
JP6421459B2 (ja) 楽音発生装置、電子楽器、楽音発生方法およびプログラム
JP5056270B2 (ja) ポルタメント制御装置およびポルタメント制御処理プログラム
JP2010117419A (ja) 電子楽器
JP4645282B2 (ja) 電子楽器
JP3039311B2 (ja) 電子楽器
JP6410345B2 (ja) サウンドプレビュー装置及びプログラム
JP5265941B2 (ja) 電子楽器
JP5692275B2 (ja) 電子楽器
JP6210356B2 (ja) 演奏装置、演奏方法およびプログラム
JP2001209382A (ja) 電子楽器の連打処理装置
JP6439225B2 (ja) 楽音発生装置、電子楽器、楽音発生方法およびプログラム
JP5564921B2 (ja) 電子楽器
JP2007187949A (ja) 楽音発生装置および楽音発生処理のプログラム
JP4186855B2 (ja) 楽音制御装置及びプログラム
JP3543159B2 (ja) 自動伴奏装置
JP3669066B2 (ja) 電子楽器
JPH07152372A (ja) 演奏装置
JP2739244B2 (ja) 電子楽器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100716

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120416

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

R150 Certificate of patent or registration of utility model

Ref document number: 5030016

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120617

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150706

Year of fee payment: 3