以下、本発明の実施の形態を図面に基づいて詳細に説明する。
図1は、本発明の一実施の形態に係る電子音楽装置の概略構成を示すブロック図である。
同図に示すように、本実施の形態の電子音楽装置は、音高情報を含む演奏データを入力するための鍵盤を含む演奏操作子1と、各種情報を入力するための複数のスイッチ、ノブ、スライダおよびダイヤルを含む設定操作子2と、演奏操作子1の操作状態を検出する検出回路3と、設定操作子2の操作状態を検出する検出回路4と、装置全体の制御を司るCPU5と、該CPU5が実行する制御プログラム、各種テーブルデータ、各種波形データおよび各種楽音パラメータ等を記憶するROM6と、演奏データ、各種入力情報および演算結果等を一時的に記憶するRAM7と、各種情報等を表示する、たとえば小型の液晶ディスプレイ(LCD)および発光ダイオード(LED)等を備えた表示器8と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する記憶装置9と、図示しない外部機器を接続し、この外部機器とデータの送受信を行う通信インターフェース(I/F)10と、演奏操作子1から入力された演奏データや、前記記憶装置9に記憶されたいずれかの楽曲データを再生して得られた演奏データ等を楽音信号に変換するとともに、その楽音信号に各種効果を付与するための音源・効果回路11と、該音源・効果回路11からの楽音信号を音響に変換する、たとえば、DAC(digital-to-analog converter)やアンプ、スピーカ等のサウンドシステム12とにより構成されている。
上記構成要素3〜11は、バス13を介して相互に接続され、音源・効果回路11にはサウンドシステム12が接続されている。
記憶装置9は、たとえば、フレキシブルディスク(FD)、ハードディスク(HD)、CD−ROM、DVD(digital versatile disc)、光磁気ディスク(MO)および半導体メモリなどの記憶媒体とその駆動装置である。記憶媒体は、駆動装置から着脱可能であってもよいし、記憶装置9自体が、本実施の形態の電子音楽装置から着脱可能であってもよい。あるいは、記憶媒体も記憶装置9も着脱不可能であってもよい。なお記憶装置9(の記憶媒体)には、前述のようにCPU5が実行する制御プログラムも記憶でき、ROM6に制御プログラムが記憶されていない場合には、この記憶装置9に制御プログラムを記憶させておき、それをRAM7に読み込むことにより、ROM6に制御プログラムを記憶している場合と同様の動作をCPU5にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
通信I/F10としては、たとえば、MIDI(musical instrument digital interface)信号などの音楽信号を専用に送受信する音楽専用有線I/F、USB(universal serial bus)やIEEE1394などの汎用近距離有線I/F、Ethernet(登録商標)などの汎用ネットワークI/F、無線LAN(local area network)やBluetooth(登録商標)などの汎用近距離無線I/Fを挙げることができる。本実施の形態では、通信I/F10としてUSBを採用しているが、これに代えて他の種類のI/Fを採用してもよいし、これに他の種類のI/Fを加えるようにしてもよい。
図2は、設定操作子2のうち、本発明に関係する1つの操作子の形態の一例を示す図である。同図(a)〜(d)には、4つの操作子21〜24が例示されているが、本発明に関係する操作子は1つだけ(同図(a)のスライダ21とする)であり、他の3つの操作子22〜24は操作子21に代えて採用可能なものを示している。
図2(a)に示すように、スライダ21は、“Mono”または“Poly”のいずれかの項目を選択可能に構成されている。ここで、“Mono”がモノモードを示し、“Poly”がポリモードを示している。そして“Mono”側では、つまり“Mono”が選択されている場合には、スライダ21(のツマミ21a)によって、付与するポルタメント効果の程度を“0”〜“10”の11段階(“0”は、ポルタメント効果を付与しないことを意味する)で設定することができる。なお、各項目及び程度の選択が感触で分かるように、項目が切り替わる度に節度感のある感触を受け得る感触付与構造を設けるようにした方がよい。具体的には、カチカチ音を立てて切り替わるようにする。また、“Mono”と“Poly”の切り替えと、ポルタメント効果の程度の設定とを感触が異なるようにすることも考えられる。これにより、不用意な機器設定を防止することができる。ポルタメント設定は、変位が小さい段階的(略連続的)な切り替えで行うものであり、一方、ポリモード/モノモードの切り替えは、演奏機能上大きな違いがあるものであるからである。この事情は、他の操作子22〜24についても同様である。
図2(b)は、図2(a)と同様に、スライダ式SW(スイッチ)のスライダ22を採用した例を示している。但しスライダ22では、複音(図2(a)での“Poly”)側でも、付与するポルタメント効果の程度を“0”〜“10”の11段階で設定することができる点が異なっている。
図2(c)は、スライダ式SWに代えて、ダイヤル式SW23を採用した例を示している。このダイヤル式SW23は、円盤状の回転操作子23aを回転させ、回転操作子23a上の矢印表示を、パネル面に表示された「単音」と「単音」側のポルタメント効果の程度あるいは「複音」と「複音」側のポルタメント効果の程度のいずれかに合わせることで、その項目及び程度を選択可能に構成されている。なお回転操作子22aは、一定の位置までしか回転しないように構成されている。具体的には、時計方向には「単音」側のポルタメント効果の程度“10”の位置までしか回転せず、反時計方向には「複音」側のポルタメント効果の程度“10”の位置までしか回転しない。もちろん、これに限らず、エンドレスに回せるようにしてもよい。この場合には、「単音」側のポルタメント効果の程度“10”から「複音」側のポルタメント効果の程度“10”への移動とその逆の移動が可能となる。
図2(d)は、アップ(上)/ダウン(下)SW24と前記表示器8の表示画面8aを採用した例を示している。アップ/ダウンSW24は、アップSW24aとダウンSW24bからなる。表示画面8aには選択項目が表示され、ユーザは、アップSW24aまたはダウンSW24bを操作することで、カーソルCを上/下して項目及び程度を選択する。図示例では、項目及び程度は、“Mono”で3段階、“Poly”で2段階の選択が可能である。なお、カーソルCは、“Mono−2”より上には移動せず、“Poly−1”より下には移動しない。もちろん、これに限らず、カーソルCが“Mono−2”の位置にある状態でアップSW24aを操作すると、カーソルCは“Poly−1”の位置に移動し、その逆に、カーソルCが“Poly−1”の位置にある状態でダウンSW24bを操作すると、カーソルCは“Mono−2”の位置に移動するようにしてもよい。
以上のように構成された電子音楽装置が実行する制御処理を、図3〜図6を参照して詳細に説明する。
図3は、本電子音楽装置、特にCPU5が実行するメインルーチンの手順を示すフローチャートである。
本メインルーチンは、主として、初期化処理(ステップS1)、操作子入力受付処理(ステップS2)、発音設定処理(ステップS3)及び発音処理(ステップS4)によって構成される。本メインルーチンは、本電子音楽装置の電源がオンされたときに起動され、初期化処理が1回実行された後、電源がオフされるまで、操作子入力受付処理と発音設定処理と発音処理が繰り返し実行される。
初期化処理では、CPU5は、RAM7をクリアしたり、各種パラメータの値をデフォルト値に設定したり、タイマ(例えば、CPU5に内蔵されたもの)の計時を開始させたり、タイマ割込処理を起動させるために、タイマに対して割込信号の発生を許可したりする。
図4は、操作子入力受付処理の詳細な手順を示すフローチャートである。本操作子入力受付処理は、設定操作子2(を構成するいずれかの操作子)が操作されたときに実行される設定操作子関連処理(ステップS12〜S18)と、演奏操作子1(を構成するいずれかの操作子)が操作されたときに実行される演奏操作子関連処理(ステップS20〜S24)によって構成される。
そして、設定操作子関連処理は、スライダ21(のツマミ21a)による“Poly”/“Mono”/ポルタメントの切り替え操作がなされたときに実行されるスライダ21操作処理(ステップS13〜S17)と、それ以外の設定がなされたとき実行されるその他設定処理(ステップS18)によって構成される。なお、その他設定処理としては、具体的には、音量調整、音色設定、自動演奏設定及び効果設定等を挙げることができる。その他設定処理は、本発明の特徴ではないので、これ以上の説明は行わない。
ユーザがスライダ21を“Mono”に合わせると、CPU5は、モノモードフラグ(mono)をセット(“1”)する(ステップS14)。その後CPU5は、本設定操作子関連処理を終了する(リターン)。モノモードフラグは、モノモードに切り替えられたときセットされ、ポリモードに切り替えられたときリセットされるものである。
ユーザがスライダ21を“Poly”に合わせると、CPU5は、モノモードフラグをリセット(“0”)する(ステップS16)。その後CPU5は、本設定操作子関連処理を終了する(リターン)。
ユーザがスライダ21をポルタメント効果の程度に合わせると、CPU5は、ポルタメント値を当該程度に設定する(ステップS17)。具体的には、当該程度を、ポルタメント値を格納するためにRAM7上に確保したポルタメント値格納領域po(以下、この領域に格納されたポルタメント値を「ポルタメント値po」という)に格納する。その後CPU5は、本設定操作子関連処理を終了する(リターン)。なお本実施の形態では、ポルタメント値poは、0〜10のいずれかの整数値である。
前記演奏操作子関連処理は、キーオン入力処理(ステップS21)と、キーオフ入力処理(ステップS23)と、その他入力処理(ステップS24)によって構成される。
キーオン(押鍵)入力処理では、CPU5は、当該鍵に対応して設けられたキーオンフラグknをセットする。
キーオフ(離鍵)入力処理では、CPU5は、当該鍵に対応して設けられたキーオンフラグknをリセットする。
キーオンフラグknは、鍵盤を構成する各鍵に対応して設けられている。各鍵には、“1”から順に整数値が割り当てられており、キーオンフラグknの“n”が各鍵に割り当てられた整数値に対応する。つまり“n”は、整数値を取る変数である。
その他入力処理の「その他」のものとしては、演奏操作子1として、鍵盤以外に、例えばペダルやホイール等が含まれていれば、その操作によって出力されたイベントが含まれる。
図5は、前記ステップS3の発音設定処理の詳細な手順を示すフローチャートである。本発音設定処理は、発音指示時の発音設定処理(ステップS32〜S37)と、発音停止指示時の発音設定処理(ステップS39〜S44)によって構成される。さらに、発音指示時の発音設定処理は、モノモード時の処理(ステップS33〜S36)と、ポリモード時の処理(ステップS37)によって構成される。一方、発音停止指示時の発音設定処理は、ポルタメントが有効であるとき(ポルタメント値po≠0)の処理(ステップS40〜S43)と、ポルタメントが無効であるとき(ポルタメント値po=0)の処理(ステップS44)によって構成される。なお、発音指示時の発音設定処理も発音停止指示時の発音設定処理も、鍵毎に実行される。但し、図5のフローチャートでは、記載を簡単化するために鍵毎に実行されることが明記されていない。
図5において、CPU5は、キーオンフラグknの状態を常時監視し、リセット状態からセット状態に変化したキーオンフラグknがあるかどうか判定する(ステップS31)。この判定の結果、当該状態のキーオンフラグknがあれば、CPU5は発音指示時の発音設定処理を実行する。
一方、当該状態のキーオンフラグknがどの鍵についてもなければ、CPU5はセット状態からリセット状態に変化したキーオンフラグknがあるかどうか判定する(ステップS38)。この判定の結果、当該キーオンフラグknがあれば、CPU5は発音停止指示時の発音設定処理を実行する。
なお、ステップS31,S38のいずれの判定でも、否定的な結果(“NO”)であれば、CPU5は本発音設定処理を終了する(リターン)。
発音指示時の発音設定処理では、まずCPU5は、モノモードフラグの状態を判定する(ステップS32)。この判定の結果、セット状態、つまりmono=“1”であって、モノモードであるときには、CPU5は、モノモード時の発音指示時の発音設定処理を実行する一方、mono=“0”であって、ポリモードであるときには、CPU5は、ポリモード時の発音指示時の発音設定処理を実行する。
モノモード時の発音指示時の発音設定処理では、CPU5は、他の楽音が発音されているかどうか判定し(ステップS33)、発音中であれば、現音高値、つまり発音中の楽音の音高値を音高起算値に設定する(ステップS34)と共に、当該楽音の発音停止を指示する(ステップS35)。その後、CPU5は、処理をステップS36に進める。
一方、発音中でなければ、CPU5は、ステップS34,S35をスキップして、処理をステップS36に進める。
ステップS36では、CPU5は、音高変動設定を行う。具体的には、音高起点値OKを取得し、ポルタメント設定値POを取得し、当該新規押鍵についての音高指定値OSを取得する。なお、これらの値OK,PO,OSは、図6を用いて後述する発音処理中で使用するものであり、各値の意味については、後述する。
ポリモード時の発音指示時の発音設定処理では、CPU5は、音高設定を行う(ステップS37)。具体的には、音高起点値OKを“−”に設定し、ポルタメント設定値POを“−”に設定し、当該新規押鍵についての音高指定値OSを取得する。このように値OK,POを“−”に設定する、つまり「無効」に設定するのは、本実施の形態では、ポリモード時には、ポルタメント効果を付与しないこととしているからである。しかし、ポリモード時にもポルタメント効果を付与できるSW、つまり前記図2(b)〜(d)のSW22〜24を採用したときには、ポリモード時でもモノモード時と同様に、ポルタメント効果を付与できるようにしなければならない。但し、本発明の特徴は、ポルタメント効果を付与する方法にある訳ではなく、さらにポルタメント効果を付与する方法は既に公知のものがあり、本実施の形態でも、その公知の方法を採用してポルタメント効果を付与するようにすればよいので、ポリモード時にポルタメント効果を付与する方法についての説明は、省略する。
発音停止指示時の発音設定処理では、まずCPU5は、ポルタメント値poを判定する(ステップS39)。この判定の結果、ポルタメント値po≠0、つまり、ポルタメントが有効であって、ポルタメント効果を付与するときには、CPU5は、ポルタメント有効時の発音停止指示時の発音設定処理を実行する一方、ポルタメント値po=0、つまり、ポルタメントが無効であって、ポルタメント効果を付与しないときには、CPU5は、ポルタメント無効時の発音停止指示時の発音設定処理を実行する。
ポルタメント有効時の発音停止指示時の発音設定処理では、まずCPU5は、現音高値を音高起算値OKに設定する(ステップS40)。次にCPU5は、キーオン状態の音高指定があるかどうかを判定し(ステップS41)、当該音高指定があれば、当該楽音の発音停止を指示し(ステップS42)、さらに音高制御設定を行う(ステップS43)。音高制御設定は、前記ステップS36の音高変動設定と、処理内容はほとんど異ならない。ただ、取得する音高指定値が、音高変動設定では、新規押鍵についてのものであるのに対して、音高制御設定では、押鍵中のものである点が異なっている。
ポルタメント無効時の発音停止指示時の発音設定処理では、CPU5は、上記ステップS42の処理と同様に、当該押鍵中の楽音の発音停止を指示する(ステップS44)。
図6は、前記ステップS4の発音処理の詳細な手順を示すフローチャートである。本発音処理の実質的な処理は、発音指示データがあるときになされる。発音指示データがないときには、そのままリターン(ステップS51→リターン)されるからである。但し、発音指示データは複数ある場合があるので、本発音処理は、すべての発音指示データについての処理が終了するまで、発音指示データを変更しながら繰り返し実行される(ステップS54→S51)。なお発音指示データとは、前記図5の発音設定処理で説明した、値OK,PO,OS(但し、有効な値)が設定されたデータである。
今、有効な値を持つ発音指示データが1つ以上あるとすると、まずCPU5は、音高現在値OGが音高指定値OSと等しいかどうかを判定する(ステップS52)。音高現在値OGとは、現在発音中の、あるいは今発音しようとしている楽音の音高である。ポルタメントが設定されていなければ、実質、押鍵鍵に割り当てられた音高であり、ポルタメントが設定されていれば、押鍵鍵に割り当てられた音高に向かって変動する音高である。音高指定値OSとは、押鍵鍵に割り当てられた音高である。
ステップS52の判定は、音高を変えて発音する必要があるかどうかを判定するものである。この判定の結果、音高現在値OG≠音高指定値OSであるとき、つまり、音高を変えて発音する必要があるときには、CPU5は、その音高を増大させる方向に変更するのか、減少させる方向に変更するのかを判定する(ステップS55)。この判定は、音高指定値OSと音高起点値OKとの大小を比較することで行う。つまり、音高指定値OS>音高起点値OKのときには、増大させる方向に変更すると判定する一方、音高指定値OS<音高起点値OKのときには、減少させる方向に変更すると判定する。
ステップS55の判定の結果、音高指定値OS>音高起点値OKのときには、CPU5は、音高現在値OGにポルタメント設定値POを加算した値で、音高現在値OGを更新する(OG←OG+PO)。一方、音高指定値OS<音高起点値OKのときには、CPU5は、音高現在値OGからポルタメント設定値POを減算した値で、音高現在値OGを更新する(OG←OG−PO)。ここで、ポルタメント設定値POは、前記ポルタメント値poと同一のものではなく、ポルタメント値poに基づいて取得(算出)したものである。本実施の形態では、ポルタメント値poが最大値、つまり“10”の場合、略1sec/octで音高が変化するようになっている。この音高変化となるように、ポルタメント設定値POは、ポルタメント値poに基づいて算出される。
そしてCPU5は、音高現在値OGの音高で発音を指示する(ステップS53)。このステップS53の処理に進む場合は、ステップS56,S57から進む場合の他、ステップS52から進む場合がある。ステップS52から進む場合は、ポルタメントが設定されずに(したがって、ポリモード時も含まれる)押鍵された場合である。
さらにCPU5は、次の発音指示データをセットした(ステップS54)後、処理を前記ステップS51に戻す。なお、次の発音指示データがない場合もあるが、その場合には、例えば、無効なデータをセットしておけばよい。これにより、ステップS51の判定で、発音指示データがないと判定されるので、CPU5は、本発音処理をそのまま終了する。
このように本実施の形態では、モノモード、ポリモード及びポルタメントの3つの機能の指定を1つの操作子、つまりスライダ21によって行うことができるので、操作子の数を減少させなければならない場合でも、機能の減少を抑制することが可能となる。また、機能毎に設けられていた操作子を1つにまとめたことにより、関連ある機能を操作する場合にユーザの視認性が向上する。
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。