JP5256764B2 - 演奏制御装置及び演奏制御処理のプログラム - Google Patents
演奏制御装置及び演奏制御処理のプログラム Download PDFInfo
- Publication number
- JP5256764B2 JP5256764B2 JP2008031206A JP2008031206A JP5256764B2 JP 5256764 B2 JP5256764 B2 JP 5256764B2 JP 2008031206 A JP2008031206 A JP 2008031206A JP 2008031206 A JP2008031206 A JP 2008031206A JP 5256764 B2 JP5256764 B2 JP 5256764B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- pressed
- previous
- range
- octave
- 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
Links
- 239000011295 pitch Substances 0.000 claims description 31
- 238000001514 detection method Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 description 62
- 238000006243 chemical reaction Methods 0.000 description 9
- 230000000994 depressogenic effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000030279 gene silencing Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
この連奏機能を有する楽器においては、夫々の演奏者が同じ音域で演奏できるように、鍵域毎に別々にオクターブ変換している。
例えば、特許文献1においては、鍵盤を鍵番号SPをスプリット位置として低鍵域と高鍵域とに分割し、低鍵域においては、押鍵により指定される楽音の音高を通常より2オクターブアップし、高鍵域においては、2オクターブダウンする構成が開示されている。
さらに特許文献3には、鍵盤を2つの鍵域に分割した際、第1の鍵域の中央に位置する鍵の本来のオクターブ値と、第1の鍵域に設定された音色の基準音域のオクターブ値とに基づいてオクターブシフト量を算出することにより、音色毎の基準音域が各鍵域の略中央に配置される構成が開示されている。
本発明は、このような事情に鑑みてなされたものであり、鍵域をまたいで演奏した場合でも、演奏者の意に反した音高の楽音が発生しないようにすることを目的とする。
図1は、本発明を適用した電子鍵盤楽器の外観図である。
楽器本体には、ノーマルモードとデュエットモードとのいずれかを指定するデュエットスイッチ1と鍵盤2とを有する。鍵盤2は88個の鍵を有しており、ノーマルモードにおいては、各鍵に対して、左側(低鍵域側)から順次鍵番号(MIDI NOTE番号)21(音高 A0)〜108(音高 C8)が割り当てられる。
図2は、図1の電子鍵盤楽器の構成を示すブロック図である。
CPU10は、この楽器本体の処理全体を実行するものであり、プログラムROM11にストアされたプログラムに基づいてその処理動作を実行する。ワークRAM12は、この処理により生成されるデータを一時的にストアするエリアを有するものである。そして音源13は、鍵盤2対しての押鍵・離鍵動作に対応してCPU10にて生成されたノートオン・ノートオフイベントを受信して楽音を生成する回路である。
以上の構成を有することにより、この電子鍵盤楽器は、デュエットスイッチ1の操作によりデュエットモード又はノーマルモードとなり、夫々のモードにおいて各鍵に割り当てられる鍵番号が図1に示されるように変更になる。
そしてデュエットモードにおいて、分割された鍵域の一方で隣接しあう鍵を他方の鍵域に向かって連続して押鍵がなされた後、それに続く押鍵がたまたま他方の鍵域に及んでしまった場合、各押鍵間の時間がほぼ同一である場合は、この他方の鍵域での押鍵を一方の鍵域で押鍵したように鍵番号を変更するように動作する。
まず、電源(図示せず)がオンされるとイニシャライズ処理(ステップA1)が実行され、続いてSW処理(ステップA2)、鍵盤処理(ステップA3)、そしてその他の処理(ステップA4)の順で処理が実行される。このステップA2〜A4の処理は、電源がオフされるまで繰り返し実行される。
まず、鍵盤2のスプリット位置に対応する鍵番号を記憶するレジスタSPNOTEに初期値「60」をストアする(ステップB1)。次いで、押鍵された鍵の鍵番号をストアする各種レジスタCNOTE、FNOTE1及びFNOTE2の値をクリアする(ステップB2)。その後各押鍵間の時間をストアするレジスタCTIME、FTIME1及びFTIME2をクリアする(ステップB3)。
まずデュエットスイッチ1がオン操作されたか否か判別する(ステップC1)。ここでもしオン操作されたと判別されたならば、レジスタDFにストアされたデュエットフラグを反転させる(ステップC2)。そしてこのデュエットフラグが「1」かどうか判断し(ステップC3)、デュエットモードであるならばタイマインタラプト禁止を解除し(ステップC4)、デュエットフラグが「0」、つまりノーマルモードであるなら、タイマインタラプトを開始する(ステップC5)。
このタイマインタラプトの禁止が解除されると、タイマがカウントを開始し、タイマインタラプト禁止になると、タイマのカウントを停止してその値をクリアするように構成される。この後その他のスイッチの処理(ステップC6)に移り、この処理が終了するとイニシャライズ処理も終了する。
まず、鍵盤2を走査し(ステップD1)、鍵の状態が変化したか否か判別する(ステップD2)。ここで変化なしと判断された場合は、この鍵盤処理を終了する。
一方、オフ状態からオン状態に変化、つまり押鍵された鍵があったと判別された場合は、ステップD3に進み、レジスタDFのデュエットフラグが「1」、デュエットモードであるか否か判別する。ここでデュエットモードでなくノーマルモードである、と判別された場合は、音高設定処理(1)(ステップD4)、続いて発音処理(1)(ステップD5)の処理を実行して鍵盤処理を終了させる。また、デュエットモードであると判別された場合は、音高設定処理(2)(ステップD6)、音高変換処理(ステップD7)、そして発音処理(2)(ステップD8)の順で処理を実行し、鍵盤処理を終了する。
図9は、図6の音高設定処理(2)(ステップD6)の詳細なフローチャートである。押鍵された鍵の鍵番号は、レジスタNOTEにストアされる(ステップG1)。そしてレジスタCNOTEにストアされた値をレジスタFNOTE1にストアし(ステップG2)、そしてレジスタNOTEにストアされた値をレジスタCNOTEにストアする(ステップG3)。
続いて、レジスタFTIME1にストアされた値をレジスタFTIME2にストアし(ステップG4)、レジスタCTIMEにストアされた値をレジスタFTIME1にストアする(ステップG5)。そしてタイマにてカウントされた値をレジスタCTIMEにストアして(ステップG6)、この処理を終了する。
音高設定処理(2)において以上のような処理を行なうことにより、押鍵がある毎に、押鍵された鍵番号がCNOTE→FNOTE1へとシフトしてストアされる。これにより、押鍵があると、その押鍵による鍵番号はレジスタCNOTEにストアされ、その前の押鍵の鍵番号はレジスタFNOTE1にストアされることになる。
図10は、図6の音高変換処理(ステップD7)の詳細なフローチャートである。
まず、FNOTE1にストアされた鍵番号がレジスタSPNOTEにストアされているスプリット位置に対応する鍵番号より小さいか否か判別する(ステップH1)。ここで小さい、つまりYesと判断されると、前の押鍵が低鍵域の方で行なわれたことを意味し、ステップH2に進み、レジスタCNOTEにストアされている最後の押鍵による鍵番号もスプリット位置より低鍵域のものであるか否か判別する。ここで最後の押鍵も低鍵域のものである、と判別された場合は、レジスタNOTEにストアされている鍵番号を2オクターブアップし(ステップH3)、レジスタOCTにオクターブシフト数である「+2」をストアする(ステップH4)。
ところが、ステップH2でNoと判別された場合、つまり前回の押鍵が低鍵域で、最後の押鍵が高鍵域で行なわれた場合は、鍵域をまたいで押鍵された場合である。この場合はステップH8に進み、レジスタFTIME1にストアされた押鍵タイミング時間からレジスタFIME2にストアされた押鍵タイミング時間を減算した値をレジスタt1にストアする。このレジスタt1の値は、前回、前々回の押鍵の時間差を表わす。次いでレジスタCTIMEにストアされた押鍵タイミング時間からレジスタFIME1にストアされた押鍵タイミング時間を減算した値をレジスタt2にストアする(ステップH9)。このレジスタt2の値は、前回と最後の押鍵の時間差を表わす。そしてステップH10にて、この時間差t1、t2との差が所定時間α以内かどうか判断し、所定時間以内であれば、ステップH3に進み、所定時間を越えていればステップH6に進む。
ステップH5にてNoと判別、つまり前回の押鍵が高鍵域で、最後の押鍵が低鍵域で行なわれた場合も同様である。この後に実行されるべきステップH11〜H13の処理は、前述のステップH8〜H10と同様である。ステップH13でYesと判別された場合はステップH6に進み、Noと判断された場合にはステップH3に進むという点のみ異なる。これは前回が高鍵域、最後が低鍵域での押鍵というように、鍵域が逆になっていることに起因する。
図11は、図6の発音処理(2)(ステップD8)の詳細なフローチャートである。
レジスタnの値を「0」とする(ステップI1)。続いて、このレジスタnの値を引数として予め用意されているレジスタNOTE(n)が空いているか否か判別する(ステップI2)。ここでもし空いていないと判別されたなら、レジスタnの値をインクリメントする(ステップI3)。このレジスタnの値が最大値、つまり予め用意されたレジスタNOTE(n)の数を越えているか判別し(ステップI4)、超えているならこの処理を終了する。そして、超えていないなら、再びステップI2の処理に戻る。
このように、この発音処理(2)においては、前述の音高変換処理にてオクターブシフトされた鍵番号に基づく発音を指示する。
図12は、図6の消音処理(1)(ステップD12)の詳細なフローチャートである。
このように、本実施形態によれば、ノーマルモードにおいて、離鍵が検知されれば、離鍵した鍵の鍵番号そのままに対応するノートオフイベントが生成されて発生している楽音が消音される。
図13は、図6の消音処理(2)(ステップD11)の詳細なフローチャートである。
まず、レジスタNOTEに離鍵された鍵の鍵番号がストアされる(ステップK1)。続いてレジスタnの値を「0」とし(ステップK2)、このレジスタnを引数とするレジスタNOTE(n)にストアされた鍵番号とレジスタNOTEにストアされた離鍵された鍵の鍵番号とが同一であるか否か判別される(ステップK3)。
このステップK3において、同一と判断されたなら、ステップK6に進み、レジスタNOTEの鍵番号をOCT(n)にストアされていたオクターブシフト数分シフトする。つまり発音された楽音の音高に対応する鍵番号は、前述の音高変換処理にてオクターブシフトされており、押鍵に用いた鍵を離鍵して得られる鍵番号そのままの値とは異なっている。そのためここにおいては、オクターブシフトした際のオクターブシフト数を用いて離鍵された鍵番号もオクターブシフトさせることにより、発音された楽音の音高に対応する鍵番号と一致させているのである。
そして、NOTE(n)及びOCT(n)をクリアし(ステップK9)、この処理を終了する。
以上のように、本実施形態においては、最後になされた押鍵のみが前回の押鍵と異なる鍵域となってしまった場合、前回と最後の押鍵間隔が、前回と前々回の押鍵間隔とほぼ同じであるならば、前回と同じ鍵域で行なったものとすることができる。
また、本実施形態において、押鍵間隔を前回と前々回との押鍵間隔のみとの比較で行なっているが、さらに前の押鍵間隔を比較の対象としてもよく、これら以前の押鍵間隔を複数抽出して、その平均値と比較するようにしてもよい。
2 鍵盤
10 CPU
11 プログラムROM
12 ワークRAM
13 音源
Claims (3)
- 夫々発音すべき楽音の音高を指定するための鍵番号が順次割り当てられた複数の鍵を有する鍵盤と、
この鍵盤のいずれかの鍵が押鍵された場合に、押鍵された鍵が属する鍵域に対応して予め設定されたオクターブ分、押鍵された鍵の鍵番号を変更するオクターブ変更手段と、
このオクターブ変更手段により変更された鍵番号に対応する音高の楽音の発生を指示する楽音発生指示手段と、
前記鍵盤を押鍵した際に、当該押鍵が行われた鍵域と前回の押鍵が行なわれた鍵域とが異なるか否か判別する判別手段と、
この判別手段により鍵域が異なると判別された場合に、前記押鍵のタイミングと前回の押鍵タイミングとの時間差と、当該前回の押鍵以前の押鍵に基づくタイミングの時間差とを検出する検出手段と、
この検出手段により検出された両時間差の差分が所定時間以内の場合に、前記押鍵により指定される鍵番号を前記前回の押鍵に対して行なわれる鍵番号の変更と同一の変更を行なうように前記オクターブ変更手段を制御する変更制御手段と、
を有する演奏制御装置。 - 前記検出手段は、前回の押鍵以前の押鍵に基づくタイミングの時間差として、前回の押鍵タイミングと前々回の押鍵タイミングとの時間差を検出することを特徴とする請求項1記載の演奏制御装置。
- 夫々発音すべき楽音の音高を指定するための鍵番号が順次割り当てられた複数の鍵を有する鍵盤を有する演奏制御装置に適用されるコンピュータに、
この鍵盤のいずれかの鍵が押鍵された場合に、押鍵された鍵が属する鍵域に対応して予め設定されたオクターブ分、押鍵された鍵の鍵番号を変更するオクターブ変更ステップと、
この変更された鍵番号に対応する音高の楽音の発生を指示する楽音発生指示ステップと、
前記鍵盤を押鍵した際に、当該押鍵が行われた鍵域と前回の押鍵が行なわれた鍵域とが異なるか否か判別する判別ステップと、
鍵域が異なると判別された場合に、前記押鍵のタイミングと前回の押鍵タイミングとの時間差と、当該前回の押鍵以前の押鍵に基づくタイミングの時間差とを検出する検出ステップと、
この検出された両時間差の差分が所定時間以内の場合に、前記押鍵により指定される鍵番号を前記前回の押鍵に対して行なわれる鍵番号の変更と同一の変更を行なうように前記オクターブ変更手段を制御する変更制御ステップと、
を実行させる演奏制御処理のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008031206A JP5256764B2 (ja) | 2008-02-13 | 2008-02-13 | 演奏制御装置及び演奏制御処理のプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008031206A JP5256764B2 (ja) | 2008-02-13 | 2008-02-13 | 演奏制御装置及び演奏制御処理のプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009192642A JP2009192642A (ja) | 2009-08-27 |
JP5256764B2 true JP5256764B2 (ja) | 2013-08-07 |
Family
ID=41074737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008031206A Expired - Fee Related JP5256764B2 (ja) | 2008-02-13 | 2008-02-13 | 演奏制御装置及び演奏制御処理のプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5256764B2 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3156285B2 (ja) * | 1991-07-18 | 2001-04-16 | カシオ計算機株式会社 | 電子楽器 |
JP3399068B2 (ja) * | 1993-12-21 | 2003-04-21 | カシオ計算機株式会社 | 電子楽器 |
JP3405020B2 (ja) * | 1995-10-24 | 2003-05-12 | ヤマハ株式会社 | 電子楽器 |
JP3353579B2 (ja) * | 1995-12-07 | 2002-12-03 | ヤマハ株式会社 | 電子鍵盤楽器 |
-
2008
- 2008-02-13 JP JP2008031206A patent/JP5256764B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009192642A (ja) | 2009-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5041015B2 (ja) | 電子楽器および楽音生成プログラム | |
JP5168297B2 (ja) | 自動伴奏装置および自動伴奏プログラム | |
JP2012068548A (ja) | 調判定装置および調判定プログラム | |
JP6176480B2 (ja) | 楽音発生装置、楽音発生方法およびプログラム | |
JP5256764B2 (ja) | 演奏制御装置及び演奏制御処理のプログラム | |
WO2021044559A1 (ja) | アルペジエータおよびその機能を備えたプログラム | |
JP5347278B2 (ja) | 演奏制御装置及び演奏制御処理のプログラム | |
JP5640308B2 (ja) | 演奏装置及び演奏処理のプログラム | |
JP2010117419A (ja) | 電子楽器 | |
WO2021044560A1 (ja) | アルペジエータおよびその機能を備えたプログラム | |
JP5470728B2 (ja) | 演奏制御装置及び演奏制御処理のプログラム | |
JP3277616B2 (ja) | 楽音発生装置 | |
JP5347289B2 (ja) | 演奏装置及び演奏処理のプログラム | |
JP5560574B2 (ja) | 電子楽器および自動演奏プログラム | |
JP4492923B2 (ja) | 電子楽器の機能割当装置 | |
JP3057854B2 (ja) | 電子楽器 | |
JP5453966B2 (ja) | 楽音発生装置および楽音発生プログラム | |
JP5692275B2 (ja) | 電子楽器 | |
JP2601039B2 (ja) | 電子楽器 | |
JP2006292954A (ja) | 電子楽器 | |
JP3629860B2 (ja) | 自動演奏装置 | |
EP2645360A1 (en) | Method for controlling an automatic accompaniment in an electronic musical instrument equipped with a keyboard | |
JP2616533B2 (ja) | 電子楽器 | |
JP2024086022A (ja) | 電子鍵盤楽器、電子楽器システム、プログラム及び発音制御方法 | |
JP5463724B2 (ja) | 楽音発生装置および楽音発生プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110128 |
|
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: 20130326 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130408 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160502 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5256764 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |