以下、本発明の実施の形態を図面に基づいて詳細に説明する。
図1は、本発明の一実施の形態に係る電子音楽装置を適用したアルペジオ生成装置(アルペジエータ)の概略構成を示すブロック図である。
同図に示すように、本実施の形態のアルペジエータは、鍵盤等の演奏操作子および各種スイッチ等の設定操作子からなる操作子群1と、該操作子群1の各操作子の操作状態を検出する検出回路2と、装置全体の制御を司るCPU3と、該CPU3が実行する制御プログラムや各種テーブルデータ等を記憶するROM4と、前記演奏操作子から入力された演奏情報、アルペジオパターンデータ、各種入力情報および演算結果等を一時的に記憶するRAM5と、前記制御プログラムを含む各種アプリケーションプログラムや各種アルペジオパターンデータ、各種データ等を記憶する記憶装置6と、各種情報等を表示する、たとえばLCD(liquid crystal display)およびLED(light emitting diode)等を備えた表示装置7と、外部MIDI(musical instrument digital interface)機器等の外部機器100を接続し、この外部機器100とデータの送受信を行う通信インターフェース(I/F)8と、前記演奏操作子から入力された演奏情報および前記RAM5に記憶されたアルペジオパターンデータに基づいて生成したアルペジオ発音データ等を楽音信号に変換する音源回路9と、該音源回路9からの楽音信号に各種効果を付与するための効果回路10と、該効果回路10からの楽音信号を音響に変換する、たとえば、DAC(digital-to-analog converter)やアンプ、スピーカ等のサウンドシステム11とにより構成されている。
上記構成要素2〜10は、バス12を介して相互に接続され、通信I/F8には外部機器100が接続され、音源回路9には効果回路10が接続され、効果回路10にはサウンドシステム11が接続されている。
記憶装置6は、たとえば、フレキシブルディスク(FD)、ハードディスク(HD)、CD−ROM、DVD(digital versatile disc)、光磁気ディスク(MO)および半導体メモリなどの記憶媒体とその駆動装置である。記憶媒体は駆動装置から着脱可能であってもよいし、記憶装置6自体が本実施の形態のアルペジエータから着脱可能であってもよい。あるいは、記憶媒体も記憶装置6も着脱不可能であってもよい。なお記憶装置6(の記憶媒体)には、前述のように、CPU3が実行する制御プログラムも記憶でき、ROM4に制御プログラムが記憶されていない場合には、この記憶装置6に制御プログラムを記憶させておき、それをRAM5に読み込むことにより、ROM4に制御プログラムを記憶している場合と同様の動作をCPU3にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
また記憶装置6は、前述のように各種アルペジオパターンデータを予め記憶している(後述する図7参照)。各アルペジオパターンデータはそれぞれ、ヘッダデータと発音パターンデータを含んでいる。ヘッダデータは、アルペジオパターンデータに関する情報、具体的には、バンク、カテゴリ、サブカテゴリ、アルペジオナンバ(=アルペジオタイプ)、アルペジオ名称、拍子、(当該アルペジオパターンデータの)長さ(小節数)、(オリジナル)テンポおよび(当該アルペジオパターンデータを利用するために最適な)ボイスデータ(を特定する情報)などを含んでいる。なお発音パターンデータの詳細については、図8を用いて後述する。さらに各種アルペジオパターンデータは、本実施の形態ではアルペジエータ(の記憶装置6)内に予め記憶されているとしたが、これに限らず、たとえば外部機器100に記憶されているものを、通信I/F8を介して取り込んで使用するようにしてもよい。
通信I/F8には、図示例では外部機器100が接続されているが、これに限られず、たとえばLAN(local area network)やインターネット、電話回線等の通信ネットワークを介して、サーバコンピュータが接続されるようにしてもよい。この場合、記憶装置6に上記各プログラムや各種パラメータが記憶されていなければ、通信I/F8はサーバコンピュータからプログラムやパラメータをダウンロードするために用いられる。クライアントとなるアルペジエータは、通信I/F8および通信ネットワークを介してサーバコンピュータへとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワークを介してアルペジエータへと配信し、アルペジエータが通信I/F8を介して、これらプログラムやパラメータを受信して記憶装置6に蓄積することにより、ダウンロードが完了する。
なお本実施の形態のアルペジエータは、上述の構成から分かるように電子鍵盤楽器上に構築されたものであるが、これに限らず、鍵盤を外部接続した汎用的なパーソナルコンピュータ上に構築してもよい。
本実施の形態のアルペジエータは、動作モードとしてボイスモードおよびパフォーマンスモードを備えている。
図2は、ボイスモードが選択されたときに前記表示装置7のLCD上に表示される画面の一例を示す図であり、同図(a)は、ボイスモードが選択されたときに最初に表示される画面(以下、「ボイスモードメイン画面」という)7aを示し、同図(b)は、ボイスモードメイン画面7a内のアルペジオ設定ボタン7a6が操作されたときに表示される画面(以下、「ボイスモードアルペジオ設定画面」という)7bを示している。なおLCD上に表示される画面内の各ボタンは、ユーザが操作子群1に含まれる複数のスイッチのうち、対応する位置にあるスイッチを押下することによって操作される。しかし説明を簡単にするために、あたかもユーザが画面内のボタンを直接押下操作するような表現、つまり「ボタンを操作する」という表現を用いることにする。もちろん、LCDとしてタッチパネル方式のものを採用し、画面内のボタンを直接押下操作するようにしてもよい。この事情は、以下、図面が変わっても同様である。
図2(a)に示すように、ボイスモードメイン画面7aには、現在設定されているボイスデータに関する情報、具体的には、当該ボイスデータを特定するボイスバンク(“PRE1”)およびボイスナンバ(“001”)、当該ボイスデータの属するメインカテゴリ(“Piano1”)および当該ボイスデータのボイスネーム(“Full Concert Grand”)と、当該ボイスデータに対応付けて、最大5つのアルペジオパターンデータを登録できる5つのアルペジオボタン7a1〜7a5と、前記アルペジオ設定ボタン7a6と、その他詳細設定ボタン7a7とが表示されている。
図4(a)は、ボイスデータとアルペジオパターンデータを対応付ける第1の対応付けデータの構造の一例を示す図である。この第1の対応付けデータは、後述する(5)ボイスデータ保存処理(図5のステップS9)によって記憶装置6内に記憶されたものである。第1の対応付けデータは、図4(a)に示すように、ボイスデータを特定するボイスバンクおよびボイスナンバと、アルペジオボタン7a1〜7a5のそれぞれを特定するボタン名称“ARP1”〜“ARP5”と、アルペジオボタン7a1〜7a5に登録されたアルペジオパターンデータに関する情報(バンク(Bank)、カテゴリ(Category)、サブカテゴリ(SubCategory)、アルペジオタイプ(Type)、アルペジオ名称(ArpName)、テンポ(Tempo)および表示名)とを含んでいる。なお、アルペジオボタン7a1〜7a5のうち、アルペジオパターンデータが登録されていないものについては、そのアルペジオパターンデータに関する情報の欄には、登録されていないことを示すデータ、たとえば“−”が格納される。ここで、第1の対応付けデータに登録されるアルペジオパターンデータに関する情報は、「表示名」を除き、当該アルペジオパターンデータのヘッダデータに含まれる情報の一部を読み出したものである。もちろん、一部として読み出す情報は、アルペジエータの仕様などに応じて適宜取捨選択される。したがって第1の対応付けデータには、たとえば「テンポ」に代えて「長さ(小節数)」を登録するようにしてもよい。
この第1の対応付けデータに基づいて、ボイスモードメイン画面7aには、アルペジオボタン7a1〜7a3の各ボタン名称“ARP1”〜“ARP3”の右横に“♪”が表示されるとともに、アルペジオボタン7a1〜7a3上に「表示名」が表示される(前記図2(a)参照)。なお“♪”は、アルペジオボタン7a1〜7a3上に「表示名」(の、たとえば、右横)に隣接させて表示するようにしてもよい。
前記図2(b)に示すように、ボイスモードアルペジオ設定画面7bには、アルペジオボタン7a1〜7a5のうち、選択された1つ(図示例では、アルペジオボタン7a1)に登録されたアルペジオパターンデータに関する情報(ただし、操作されたアルペジオボタンにアルペジオパターンデータが未登録の場合には、アルペジオパターンデータに関する情報の各項目は未登録を示す表示(たとえば、“―”)がなされる)と、アルペジオボタン7a1〜7a5と、その他パラメータ設定部7b1とが表示されている。なお、表示中のアルペジオパターンデータに関する情報がいずれのアルペジオボタンに登録されたものであるかが分かるように、当該アルペジオボタンの表示態様を他のアルペジオボタンの表示態様から変更している。図示例では、表示態様の変更を「斜線」で表現している。もちろん、表示態様は「斜線」に限らず、表示色やボタンデザインなど、他の態様であってもよい。
図3は、パフォーマンスモードが選択されたときに前記表示装置7のLCD上に表示される画面の一例を示す図であり、同図(a)は、パフォーマンスモードが選択されたときに最初に表示される画面(以下、「パフォーマンスモードメイン画面」という)7cを示し、同図(b)は、パフォーマンスモードメイン画面7c内のアルペジオ設定ボタン7c6が操作されたときに表示される画面(以下、「パフォーマンスモードアルペジオ設定画面」という)7dを示している。
図3(a)に示すように、パフォーマンスモードメイン画面7cには、現在設定されているパフォーマンスデータに関する情報、具体的には、当該パフォーマンスデータを特定するパフォーマンスバンク(“USR1”)およびパフォーマンスナンバ(“001”)、当該パフォーマンスデータの属するカテゴリ(“○○○”)および当該パフォーマンスデータのパフォーマンスネーム(“○△□”)と、当該パフォーマンスデータを構成する4つのパートのそれぞれに設定されたボイスデータのボイス名(ボイスバンク(Bank)、ボイスナンバ(No.))と、該各ボイスデータに対応付けて、最大5組のアルペジオパターンデータ組を登録できる5つのアルペジオボタン7c1〜7c5と、前記アルペジオ設定ボタン7c6と、その他詳細設定ボタン7c7と、上記ボイスデータを設定するためのボイス設定ボタン7c8とが表示されている。
図4(b)は、パフォーマンスデータとアルペジオパターンデータを対応付ける第2の対応付けデータの構造の一例を示す図である。この第2の対応付けデータも、前記第1の対応付けデータと同様に、後述する(5)ボイスデータ保存処理によって記憶装置6内に記憶されたものである。第2の対応付けデータは、図4(b)に示すように、パフォーマンスデータを特定するパフォーマンスバンクおよびパフォーマンスナンバと、当該パフォーマンスデータの各パートに設定されたボイスデータを特定するボイスバンクおよびボイスナンバと、アルペジオボタン7c1〜7c5に登録されたアルペジオパターンデータに関する情報(バンク(Bank)、カテゴリ(Category)、サブカテゴリ(SubCategory)、アルペジオタイプ(Type)、アルペジオ名称(ArpName)、テンポ(Tempo))と、アルペジオボタン7c1〜7c5のそれぞれの表示名とを含んでいる。なお図示例では、アルペジオボタン7c1〜7c5のすべてにアルペジオパターンデータ組が登録されているが、アルペジオボタン7c1〜7c5内にアルペジオパターンデータ組が登録されていないものがある場合には、そのアルペジオパターンデータに関する情報の欄には、前記図4(a)の第1の対応付けデータと同様に、登録されていないことを示すデータ、たとえば“−”が格納される。
この第2の対応付けデータに基づいて、パフォーマンスモードメイン画面7cには、アルペジオボタン7c1〜7c5の各ボタン名称“ARP1”〜“ARP5”の右横に“♪”が表示されるとともに、アルペジオボタン7c1〜7c5上に「表示名」が表示される(前記図3(a)参照)。
前記図3(b)に示すように、パフォーマンスモードアルペジオ設定画面7dには、アルペジオボタン7c1〜7c5のうち、選択された1つ(図示例では、アルペジオボタン7c1)に登録されたパート毎のアルペジオパターンデータ(図示例では前述のように、アルペジオボタン7c1〜7c5にはすべて、アルペジオパターンデータ組が登録されている)に関する情報と、アルペジオボタン7c1〜7c5と、その他パラメータ設定部7d1とが表示されている。なお、アルペジオボタン7c1に施された「斜線」の意味は、前記図2(b)のアルペジオボタン7a1に施された「斜線」の意味と同様である。
このようにパフォーマンスモードアルペジオ設定画面7dでは、アルペジオボタン7c1〜7c5のいずれにも、4パート分のアルペジオパターンデータを組にして登録することができる。さらに、あるアルペジオボタンに登録したアルペジオパターンデータの組を、そのままコピーして他のアルペジオボタンに登録することができるようになっている。
なおアルペジオボタン7a1〜7a5および7c1〜7c5の個数は、本実施の形態では、それぞれ5つとしたが、これに限られず、他の個数を採用してもよい。さらにアルペジオボタンの個数は、本実施の形態では、動作モードに拘わらず同数としたが、動作モード毎に異なった数を採用してもよい。また、アルペジオボタン7a1〜7a5および7c1〜7c5のうち、アルペジオパターンデータが登録されていないものの上には、本実施の形態では、何も表示しないようにしたが、これに限らず、「未登録」を表示するようにしてもよい。
以上のように構成されたアルペジエータが実行する制御処理を、まずその概要を説明し、次に図5および図6を参照して詳細に説明する。
本実施の形態のアルペジエータは、前記従来のアルペジエータに対して、ボイスモードが選択されたときに前記表示装置7のLCD上に表示される画面内のアルペジオボタン7a1〜7a5にアルペジオパターンデータが登録された場合に、あるいはパフォーマンスモードが選択されたときに前記表示装置7のLCD上に表示される画面内のアルペジオボタン7c1〜7c5にアルペジオパターンデータ組が登録された場合に、当該アルペジオパターンデータあるいはアルペジオパターンデータ組の登録されたアルペジオボタンのボタン名称“ARP1”〜“ARP5”の近傍に“♪”を表示する点で共通するものの、当該アルペジオパターンデータあるいはアルペジオパターンデータ組の登録されたアルペジオボタン上に、そのアルペジオボタンに予め固定的に決められているボタン名称、つまり“ARP1”〜“ARP5”とは異なった表示用の名称、つまり前記第1および第2の対応付けデータ内の「表示名」を生成して表示できるようにした点が異なっている。そして「表示名」は、
1.ユーザが編集作業によりマニュアル入力
2.ユーザが名前リストから選択して入力
3.自動生成
のうち、ユーザによって選択された方法に従って生成するようにしている。さらに本実施の形態のアルペジエータでは、「表示名」を付けたくないユーザを考慮して、「表示名」を生成しないという選択肢(4.キャンセル)も選択できるように構成されている。
このように本実施の形態では、ボイスモードあるいはパフォーマンスモードが選択されたときに表示装置7のLCD上に表示される画面内のアルペジオボタンにアルペジオパターンデータあるいはアルペジオパターンデータ組が登録された場合に、当該アルペジオパターンデータあるいはアルペジオパターンデータ組の登録されたアルペジオボタン上に、そのアルペジオボタンに予め固定的に決められているボタン名称とは異なった表示用の名称を生成して表示できるようにしたので、その表示用の名称として、当該アルペジオパターンデータあるいはアルペジオパターンデータ組の、たとえばジャンル種類やセクション種類といった演奏シーンや使用目的に関連する情報を生成するようにしておけば、ユーザは、当該アルペジオパターンデータあるいはアルペジオパターンデータ組の登録後、当該アルペジオパターンデータあるいはアルペジオパターンデータ組に適する演奏シーンや使用目的が分からない場合であっても、当該アルペジオパターンデータあるいはアルペジオパターンデータ組を再生して確認することなく、その表示用の名称を見るだけで直ちに当該アルペジオパターンデータあるいはアルペジオパターンデータ組に適する演奏シーンや使用目的を確認することができる。これにより、ユーザはアルペジオパターンデータやパートの詳細な設定画面を開くなどの作業をする必要がなくなる。さらにユーザが、アルペジオパターンデータあるいはアルペジオパターンデータ組を実際に登録した人ではない場合でも、目的のアルペジオパターンデータあるいはアルペジオパターンデータ組を効率的に選択することができる。
また、表示用の名称を生成する際に「自動生成」を選択すれば、ユーザはアルペジオボタンに好みのアルペジオパターンデータあるいはアルペジオパターンデータ組を登録するだけで、そのアルペジオボタン上に表示用の名称が自動的に生成されて表示されるので、マニュアル入力によって表示用の名称を付けたくないユーザにとっては、使い勝手が向上する。なお「自動生成」を選択した場合、たとえばセクション種類やジャンル種類、速さなどの使用目的の種類情報を与えるようにするとさらに効果的な表示用の名称を得ることができる。
次に、この制御処理を詳細に説明する。
本実施の形態のアルペジエータは、上記制御処理を、ボイスモードが選択されたときに実行されるボイスモード時制御処理とパフォーマンスモードが選択されたときに実行されるパフォーマンスモード時制御処理とに分け、いずれか一方の動作モードが選択されると、その動作モードに対応する制御処理を実行するようにしている。ここで、ボイスモード時制御処理とパフォーマンスモード時制御処理とは共通する部分が多く、一方の制御処理の内容を適宜変更すれば、他方の制御処理は簡単に実現できる。このため本実施の形態では、ボイスモード時制御処理についてはフローチャートを用いて詳細に説明し、パフォーマンスモード時制御処理については、フローチャートを用いずにボイスモード時制御処理との相違点のみ(ただし一部処理、具体的には後述する(4)アルペジオボタンに対する名前作成&表示処理についてはフローチャートを用いて詳細に)説明することにする。
図5は、本実施の形態のアルペジエータ、特にCPU3が実行するボイスモード時制御処理の手順を示すフローチャートである。
本ボイスモード時制御処理は、主として
(1)メイン画面表示処理(ステップS1)
(2)別のボイスデータのメイン画面表示処理(ステップS3)
(3)アルペジオ設定画面表示処理(ステップS5)
(4)アルペジオボタンに対する名前作成&表示処理(ステップS7)
(5)ボイスデータ保存処理(ステップS9)
によって構成されている。本ボイスモード時制御処理は、ユーザが前記ボイスモードを選択したときに起動される。起動後、前記(1)のメイン画面表示処理が1回実行され、これに続いて、前記(2)〜(5)の各処理が順次(ただし、所定の条件に合致したときのみ)実行される。そして(5)の処理が終了すると、(2)の処理に戻って、(2)〜(5)の処理が、ユーザによってボイスモードの終了が指示されるまで(ステップS10)繰り返し実行される。
前記(1)のメイン画面表示処理では、CPU3は、前記図2(a)に示すように前記表示装置7のLCD上に、表示対象になっているボイスデータに関する情報を、当該ボイスデータに付随して記憶されているデータ(たとえば、ヘッダデータ)から読み出して表示するとともに、当該ボイスデータの前記第1の対応付けデータ(前記図4(a)参照)に基づいて、アルペジオボタン7a1〜7a5に登録されているアルペジオパターンデータを検出し、アルペジオパターンデータの登録されているアルペジオボタンの近傍(本実施の形態では前述のように、ボタン名称の右横)に“♪”を表示し、さらに第1の対応付けデータ内の「表示名」に有効な名前が登録されているときには、当該アルペジオボタン上に「表示名」に相当する名前を表示する。なお、この(1)メイン画面表示処理が開始されたときに、いずれのボイスデータを表示対象にするかの問題があるが、たとえば、最初に表示対象にするボイスデータが固定的に決まっていてもよいし、ボイスモードを終了する際に表示対象になっているボイスデータの情報を記憶しておき、次にボイスモードが選択されて、この(1)メイン画面表示処理が開始されたときに、記憶しておいた情報によって特定されるボイスデータを表示対象にしてもよい。あるいは、この(1)メイン画面表示処理が開始されたときには、表示対象にするボイスデータは決まっておらず、ユーザが表示対象にするボイスデータを選択して初めて、選択されたボイスデータについてのメイン画面を表示するようにしてもよい。
次に、ユーザが別のボイスデータを選択すると、CPU3は処理を前記(2)の別のボイスデータのメイン画面表示処理に進める(ステップS2→S3)。この(2)別のボイスデータのメイン画面表示処理では、CPU3は、前記(1)メイン画面表示処理と同様の処理により、選択されたボイスデータについてのメイン画面を前記LCD上に表示する。なお、別のボイスデータを選択する方法としては、たとえば、前記図2(a)のボイスモードメイン画面7a内の「ボイスバンク」あるいは「ボイスナンバ」を直接書き換える方法や、「メインカテゴリ」にカーソル(図示せず)を合わせて、前記操作子群1に含まれるENTERスイッチ(図示せず)を押下することで、ボイスデータリスト(たとえば、各メインカテゴリと該各カテゴリに属するボイスデータ群とを対応付けたリスト)を表示させ、その中からいずれかのボイスデータを選択する方法などが考えられる。もちろんこれに限らず、別のボイスデータを選択できる方法であれば、どのような方法を採用してもよい。
一方、ユーザが別のボイスデータを選択しない場合には、当然ながらこの(2)別のボイスデータのメイン画面表示処理は実行されない(ステップS2→S4)。
次に、ユーザが前記アルペジオ設定ボタン7a6を操作すると、CPU3は処理を前記(3)のアルペジオ設定画面表示処理に進める(ステップS4→S5)。この(3)アルペジオ設定画面表示処理では、CPU3は、当該ボイスデータの第1の対応付けデータに登録されているアルペジオパターンデータに関する情報のうち、表示対象になっているアルペジオパターンデータに関する情報を読み出し、読み出した情報に基づいてアルペジオ設定画面を前記LCD上に表示する。これにより、前記図2(b)に示すようなアルペジオ設定画面7bが表示される。なお、この(3)アルペジオ設定画面表示処理でも、前記(1)メイン画面表示処理と同様に、いずれのアルペジオパターンデータ(ただし(1)メイン画面表示処理では、ボイスデータ)を表示対象にするかの問題があるが、(1)メイン画面表示処理で説明した手法を類推適用すればよい。
次に、ユーザがアルペジオ設定画面7b内のアルペジオボタン7a1〜7a5のうち、アルペジオパターンデータの登録されていないものにアルペジオパターンデータを登録したとき、あるいは、既に登録されているアルペジオパターンデータを他のアルペジオパターンデータに変更したときには、CPU3は処理を前記(4)のアルペジオボタンに対する名前作成&表示処理に進める(ステップS6→S7)。なお、この(4)アルペジオボタンに対する名前作成&表示処理の詳細は、図6aおよび図6bを用いて後述する。
一方、ユーザがアルペジオパターンデータの新規登録あるいは変更を行わない場合には、この(4)アルペジオボタンに対する名前作成&表示処理は実行されない(ステップS6→S8)。
さらに、ユーザがアルペジオ設定ボタン7a6を操作しない場合には、前記(3)アルペジオ設定画面表示処理および(4)アルペジオボタンに対する名前作成&表示処理は実行されない(ステップS4→S8)。
次に、ユーザがボイスデータの保存を指示すると、CPU3は処理を前記(5)のボイスデータ保存処理に進める(ステップS8→S9)。この(5)ボイスデータ保存処理では、CPU3は、現在の設定内容でボイスデータを前記記憶装置6内に保存する。
一方、ユーザがボイスデータの保存を指示しないときには、CPU3は処理を前記ステップS10に進める。
パフォーマンスモード時制御処理は、上記ボイスモード時制御処理に対して、図5のフローチャート内のステップS2,S3,S8,S9およびS10の「ボイス」を「パフォーマンス」に変更することで実現することができる。このようにフローチャート内の文言だけを変更しても、実際の制御処理はそれ以上の変更を要するが、ボイスモード時制御処理の前記(1)〜(5)の各処理を変更してパフォーマンスモード時制御処理を実現するに当たり、特に説明の必要な処理は前記(4)のアルペジオボタンに対する名前作成&表示処理だけであり、その他の処理については、いわゆる当業者であれば簡単に変更して、パフォーマンスモード時制御処理の対応する処理を実現することができる。したがって、その他の処理について、具体的にどこをどう変更するかの説明は、ここでは行わない。
図6aおよび図6bは、前記ステップS7の名前作成&表示処理の詳細な手順を示すフローチャートである。本名前作成&表示処理は、主として
(11)名前生成方法選択処理(ステップS12)
(12)名前生成方法として前記1.の方法が選択されたときに実行される第1の名前生成処理(ステップS14〜S16)
(13)名前生成方法として前記2.の方法が選択されたときに実行される第2の名前生成処理(ステップS23〜S25)
(14)名前生成方法として前記3.の方法が選択されたときに実行される第3の名前生成処理(ステップS27〜S31)
(15)上記(12)〜(14)のいずれかの名前生成処理によって生成された名前を対象のアルペジオボタン上に表示する名前表示処理(ステップS17〜S21)
によって構成されている。なお本名前作成&表示処理は、ボイスモード時制御処理からだけではなく、パフォーマンスモード時制御処理からも呼び出されるサブルーチンとなっている。つまり、本名前作成&表示処理1つで、ボイスモードでの名前作成&表示処理とパフォーマンスモードでの名前作成&表示処理を兼用している。
本名前作成&表示処理が起動されると、まずCPU3は、名前を作成して表示する対象となるアルペジオボタン(以下、「対象のアルペジオボタン」という)を決定する(ステップS11)。ここで、対象のアルペジオボタンは、本名前作成&表示処理が起動される直前の前記図5のステップS6において、ユーザが、たとえば前記図2(b)のアルペジオ設定画面7b内のアルペジオボタン7a1〜7a5(あるいは、前記図3(b)のパフォーマンスモードアルペジオ設定画面7d内のアルペジオボタン7c1〜7c5)のうちのいずれかを操作することで特定されているものとする。
次にCPU3は、処理を前記(11)の名前生成方法選択処理に進める。この(11)名前生成方法選択処理では、CPU3は、名前生成方法として前記1.〜4.の選択肢を前記LCD上に表示する。その中からユーザが1.の方法、つまり、ユーザ自身が編集作業によりマニュアル入力する方法を選択すると、CPU3は、処理を前記(12)の第1の名前生成処理に進める(ステップS13→S14)。
この(12)第1の名前生成処理では、CPU3は、LCD上に名前入力画面(たとえば、文字入力用キーボード画像、カーソルおよび名前入力欄を含むもの)を開き、ユーザがその名前入力画面に対して入力した名前を受け付ける(ステップS14)。そして、ユーザが自分で入力した名前について確定(“OK”)を指示すると、CPU3は、入力された名前(入力内容)を表示名として、前記RAM5の所定位置に確保された名前記憶領域(図示せず)に一時記憶した後、表示中の名前入力画面を閉じる(ステップS15→S16)。一方、ユーザが自分で入力した名前を気に入らず、再度前記(11)の名前生成方法選択処理からやり直したいときには、CPU3は処理を前記ステップS12に戻す(ステップS15→S12)。
また、ユーザが名前生成方法として前記2.の方法、つまり、ユーザ自身が名前リストから選択して入力する方法を選択すると、CPU3は、処理を前記(13)の第2の名前生成処理に進める(ステップS13→S22→図6bのS23)。この(13)第2の名前生成処理では、CPU3は、LCD上に各種名前を記載した名前リストを表示し、ユーザがその名前リストの中からいずれかの名前を選択すると、その選択した名前を受け付ける(ステップS23)。そして、いずれかの名前が選択されると、CPU3は、選択された名前(選択内容)を表示名として、前記名前記憶領域に一時記憶した後、表示中の名前リストの表示を消去する(ステップS24→S25)。一方、ユーザが名前リストに記載された名前を気に入らず、再度前記(11)名前生成方法選択処理からやり直したいときには、CPU3は処理を前記ステップS12に戻す(ステップS24→図6aのS12)。ここで、名前リストに記載される名前は、対象のアルペジオボタンに登録される(登録されている)アルペジオパターンデータの使用目的に関連するものであり、ユーザがその名前を見て直ちに、そこに登録されるアルペジオパターンデータがどのような演奏シーンあるいは目的で使用されるか分かるようなものである。
さらに、ユーザが名前生成方法として前記3.の方法、つまり、名前を自動的に生成する方法を選択すると、CPU3は、処理を前記(14)の第3の名前生成処理に進める(ステップS13→S22→S26→S27)。この(13)第3の名前生成処理では、CPU3は、名前を自動生成する際のルールを複数種類、LCD上に表示する(ステップS27)。ここで、ルールの具体例としては、
a.既存の名前を活用
b.セクション種類を推測
c.ジャンル種類を推測
などを挙げることができる。この表示された複数種類のルールからユーザがいずれかのルールを選択すると、CPU3は、選択したルールに応じて表示名を抽出する(ステップS28→S29)。以下、上記a.〜c.のルールのそれぞれが選択されたときに、CPU3は選択されたルールを用いてどのようにして表示名を抽出するかについて、具体的に説明する。
ボイスモードが選択されているときに、前記a.のルールが選択された場合、CPU3は、次のようにして表示名を抽出する。すなわち、
(a1)前記RAM5の所定位置に確保された表示名候補リスト(図示せず)を初期化する
(a2)対象のアルペジオボタンに対応付けられているアルペジオパターンデータを特定することができる情報(本実施の形態では「アルペジオタイプ」でよいが、アルペジエータの機種によっては、「バンク」、「カテゴリ」、「サブカテゴリ」、「アルペジオタイプ」などの組み合わせで特定する)を当該第1の対応付けデータから取得する
(a3)当該第1の対応付けデータ以外の第1の対応付けデータであって、既存のボイスデータとアルペジオパターンデータとを対応付ける第1の対応付けデータを検索し、上記(a2)で取得した情報と同じ情報を持つアルペジオパターンデータがあったときには、その第1の対応付けデータ内で、そのアルペジオパターンデータが登録されているアルペジオボタンに対応する「表示名」(“Main1”や“Fill1”など)を表示名候補リストに追加する
(a4)上記(a3)の処理がなされた後でも表示名候補リストが空の場合には、既存のパフォーマンスデータとアルペジオパターンデータを対応付ける第2の対応付けデータを検索し、上記(a2)で取得した情報と同じ情報を持つアルペジオパターンデータがあったときには、その第2の対応付けデータ内で、そのアルペジオパターンデータが登録されているアルペジオボタンに対応する「表示名」(“Main1”や“Fill1”など)を表示名候補リストに追加する
(a5)上記(a4)の処理がなされた後でも表示名候補リストが空の場合には、デフォルトの名前に決定する
(a6)上記(a3)および(a4)の処理がなされた後、表示名候補リストが空でなくなった場合には、表示名候補リストの中から、たとえばユーザ選択、多数決、最初に追加されたものなどに応じて絞り込んで、表示名を決定する。
一方、パフォーマンスモードが選択されているときに、前記a.のルールが選択された場合、CPU3は、次のようにして表示名を抽出する。すなわち、
(a1′)前記表示名候補リストを初期化する
(a2′)対象のアルペジオボタンに対応付けられているアルペジオパターンデータを特定することができる情報を当該第2の対応付けデータから取得する(この場合、アルペジオパターンデータを特定することができる情報は、パート数分取得される)
(a3′)当該第2の対応付けデータ以外の第2の対応付けデータであって、既存のパフォーマンスデータと(各パートの)アルペジオパターンデータとを対応付ける第2の対応付けデータを検索し、上記(a2′)で取得した情報と同じ情報を持つアルペジオパターンデータがあったときには、その第2の対応付けデータ内で、そのアルペジオパターンデータが登録されているアルペジオボタンに対応する「表示名」を表示名候補リストに追加する
(a4′)上記(a3′)の処理がなされた後でも表示名候補リストが空の場合には、既存のボイスデータとアルペジオパターンデータを対応付ける第1の対応付けデータを検索し、上記(a2′)で取得した情報と同じ情報を持つアルペジオパターンデータがあったときには、その第1の対応付けデータ内で、そのアルペジオパターンデータが登録されているアルペジオボタンに対応する「表示名」を表示名候補リストに追加する
(a5′)上記(a4′)の処理がなされた後でも表示名候補リストが空の場合には、デフォルトの名前に決定する
(a6′)上記(a3′)および(a4′)の処理がされた後、表示名候補リストが空でなくなった場合には、表示名候補リストの中から、たとえばユーザ選択、多数決、最初に追加されたものなどに応じて絞り込んで、表示名を決定する。
前記b.のルールが選択された場合、CPU3は、次のようにして表示名を抽出する。すなわち、
(b1)前記表示名候補リストを初期化する
(b2)対象のアルペジオボタンに対応付けられているアルペジオパターンデータ(パフォーマンスモード時はパート数分)について当該第1の対応付けデータ(ボイスモード時)または当該第2の対応付けデータ(パフォーマンスモード時)を参照して、アルペジオ名情報を取得し、取得したアルペジオ名情報からセクション種類を抽出し、表示名候補リストに追加する(たとえば、アルペジオ名が“MA”で始まれば“Main1”、“MB”で始まれば“Main2”、“FA”で始まれば“Fill1”、“FB”で始まれば“Fill2”、“B…”で始まれば“Break…”、“I…”で始まれば“Intro…”、“E…”で始まれば“Ending…”などである。なお、文字数調整を行うようにしてもよい。)
(b3)表示名候補リストの中から、たとえばユーザ選択、多数決、最初に追加されたものなどに応じて絞り込んで、表示名を決定する。ただし、表示名候補リストが空の場合には、所定の名前(たとえば“Main”)をデフォルトで決定する。
なお、上記セクション種類の抽出処理で抽出した“Main1”や“Fill2”は、あくまでも例示に過ぎず、それぞれ“MainA”や“FillB”あるいは「メイン」や「フィル」としてもよい。また、抽出後の文字数には上限を設けるようにしてもよいし、設けなくてもよい。
前記c.のルールが選択された場合、CPU3は、次のようにして表示名を抽出する。すなわち、
(c1)前記表示名候補リストを初期化する
(c2)対象のアルペジオボタンに対応付けられているアルペジオパターンデータ(パフォーマンスモード時はパート数分)について当該第1の対応付けデータ(ボイスモード時)または当該第2の対応付けデータ(パフォーマンスモード時)を参照して、サブカテゴリ情報を取得し、取得したサブカテゴリ情報からジャンル種類を抽出し、表示名候補リストに追加する(たとえば、“Rock”,“R&B”,“World”などである。なお、文字数調整を行うようにしてもよい。)
(c3)表示名候補リストの中から、たとえばユーザ選択、多数決、最初の追加されたものなどに応じて絞り込んで、表示名を決定する。ただし、表示名候補リストが空の場合には、たとえば「その他」などにしておく。
なお、上記ジャンル種類の抽出処理では、ジャンル種類を常に抽出できるように記載されているが、対象のアルペジオボタンに対応付けられているアルペジオパターンデータに、ジャンル種類を推測できる情報が含まれていない場合には、ジャンル種類を抽出できない旨をユーザに提示するようにしてもよい。
このようにして表示名が自動的に抽出されて仮決定されると、CPU3は、その表示名を前記LCD上に表示してユーザに提示する。これに応じてユーザが、その表示名について“OK”を指示すると、その表示名を前記名前記憶領域に一時記憶する(ステップS30→S31)。一方、ユーザが提示された名前を気に入らず、再度前記(11)名前生成方法選択処理からやり直したいときには、CPU3は処理を前記ステップS12に戻す(ステップS30→S12)。また前記ステップS28で、ユーザがルールを選択しなかったときも、CPU3は処理を前記ステップS12に戻す(ステップS28→S12)。
なお本実施の形態では、名前を自動生成する際のルールとして、前記a.〜c.の3種類を例示したが、ルールはこれに限らないことは言うまでもない。この3種類のルールに「テンポを活用」を加えてもよい。この「テンポを活用」では、たとえば、対象のアルペジオボタンに対応付けられているアルペジオパターンデータが持つ「(オリジナル)テンポ」情報を取得し、取得した「テンポ」が、110〜140の範囲内にあれば「普通」、140以上であれば「速い」、110以下であれば「ゆっくり」などを抽出する。
また本実施の形態では、現在設定対象となっている1つのパフォーマンスデータもしくはボイスデータについて登録されているアルペジオパターンデータが登録されている各アルペジオボタンに対して「表示名」を自動生成するようにしたが、これに限らず、複数のパフォーマンスデータやボイスデータをまとめて得られたデータ群内の各データの各アルペジオボタンに対して「表示名」を自動生成するようにしてもよい。
さらに、いくつかのボイスデータもしくはパフォーマンスデータのアルペジオボタンについての名前付けを手作業(編集)で行った後に、新たに別のボイスデータもしくはパフォーマンスデータのアルペジオボタンについての名前付けを「既存の名前を活用する」方法で自動生成してもよい。これにより、名前付けの作業を効率的に行うことができる。
また表示名の自動生成では、各アルペジオパターンデータの持つ情報から推測するような例を挙げたが、各アルペジオパターンデータに含まれる発音パターンデータ(後述する図7参照)を分析して推測するようなルールを組み込むことも考えられる。たとえば、発音パターンデータ内の発音タイミングが規則的であれば“Main”、1小節長で発音数が単音で密度が高ければ“Fill”などが考えられる。
次にCPU3は、処理を前記(15)の名前表示処理に進める。この(15)名前表示処理では、CPU3は、ボイスモードが選択されているときとパフォーマンスモードが選択されているときとで処理を分岐させる(図6bのステップS17)。ボイスモードが選択されているときには、CPU3は、当該ボイスデータに対応する第1の対応付けデータ内の対象のアルペジオボタンについての「表示名」を前記名前記憶領域に一時記憶した表示名に設定した(ステップS18)後、対象のアルペジオボタン上に、設定した「表示名」を表示する(ステップS19)。一方、パフォーマンスモードが選択されているときには、CPU3は、当該パフォーマンスデータに対応する第2の対応付けデータ内の対象のアルペジオボタンについての「表示名」を前記名前記憶領域に一時記憶した表示名に設定した(ステップS20)後、対象のアルペジオボタン上に、設定した「表示名」を表示する(ステップS21)。
さらに、ユーザが名前生成方法として前記4.の方法、つまり、名前を付けないでキャンセルする方法を選択すると、CPU3は、本名前作成&表示処理を終了する(ステップS13→S22→S26→リターン)。
次に、本実施の形態のアルペジエータが実行するアルペジオ生成処理を説明する。
アルペジオ生成処理は、ボイスモードが選択されているときには、前記図2のボイスモードメイン画面7a内のアルペジオボタン7a1〜7a5のうち、アルペジオパターンデータが登録されたもののいずれかが押下された後、パフォーマンスモードが選択されているときには、前記図3のパフォーマンスモードメイン画面7c内のアルペジオボタン7c1〜7c5のうち、アルペジオパターンデータ組が登録されたもののいずれかが押下された後、前記鍵盤のいずれかの鍵が押鍵されたときに開始される。パフォーマンスモード時のアルペジオ生成処理は、各パートについてボイスモード時のアルペジオ生成処理を適用して実現することができるので、以下、ボイスモード時のアルペジオ生成処理についてのみ説明する。
本実施の形態のアルペジエータは、主として
(A)ユーザの押鍵操作によって入力された演奏情報(本実施の形態では、音高)およびユーザによって選択されたアルペジオパターンデータに基づいて発音データリストを生成する発音データリスト生成処理
(B)上記(A)の発音データリスト生成処理によって生成された発音データリストを再生する発音データリスト再生処理
(C)ユーザの押鍵/離鍵操作に応じてノートオン/ノートオフイベントを生成して前記音源回路9に出力することで、押鍵音の発音/離鍵音の消音を行う発音/消音処理
を行う。
図7は、本実施の形態のアルペジエータが実行するアルペジオ生成処理、すなわち上記(A)〜(C)の処理の制御構成を示すブロック図であり、図8は、アルペジオパターンデータに含まれる発音パターンデータのフォーマットの一例と、その発音パターンデータとユーザの押鍵操作によって入力された押鍵音の音高に基づいて生成した発音データリストを示す図である。
発音パターンデータは、図8に示すように、発音タイミング(Timing)、ゲートタイム(Gate)、キーナンバ(Key)、オクターブ(Oct)およびベロシティ(Vel)を1組のデータとする複数組のデータによって構成されている。ここで、発音タイミングは、対応する(つまり、同じ組に属する)キーナンバの押鍵音を発音するタイミングをクロック数で表したものであり、本実施の形態では、1拍分の時間を480クロックで表している。ゲートタイムは、上記発音タイミングで発音が開始された押鍵音の発音継続時間(つまり音長)をクロック数で表したものである。キーナンバは、ユーザが複数の鍵を同時に押したとき(押鍵開始タイミングは、同時でもよいし、ずれていてもよく、要は複数鍵が同時に押されている期間があればよい。以下、同様)に入力される押鍵音に対して、音高の低い順に番号付けしたものである。オクターブは、対応するキーナンバの押鍵音をどれだけオクターブシフトするかを示したものである。ベロシティは、対応するキーナンバの押鍵音を発音する際のベロシティの値を示したものである。
今、ボイスモードが選択されて、表示装置7のLCD上には前記図2(a)のボイスモードメイン画面7aが表示されているとし、ユーザが、たとえば“Main1”と表示されたアルペジオボタン7a1を操作すると、アルペジオボタン7a1に登録されたアルペジオパターンデータが、記憶装置6から読み出されて、前記RAM5の所定位置に確保されたアルペジオパターンデータ格納領域(図示せず)に格納される。図7には、アルペジオパターンデータ群から選択されたアルペジオパターンデータNに基づいてアルペジオ発音データを生成する様子が示されている。
次に、ユーザが前記鍵盤に対して押鍵操作を行うと、本実施の形態のアルペジエータは前記(A)の処理を開始する。図8には、ユーザの押鍵により3つの音高“C3”,“E3”および“G3”が同時に入力されたときに、発音パターンデータを用いて生成した発音データリストが記載されている。
押鍵音“C3”,“E3”および“G3”には、前記ルールに従ってそれぞれ“1”,“2”および“3”のキーナンバが付与されるので、発音データリストの、たとえば先頭(“1:1:000”)から第2拍の末尾(“1:2:479”)までのノートナンバ(Note)は、次のように生成される。すなわち、
タイミング“1:1:000”:C4(発音パターンデータの発音タイミング“1:1:000”におけるキーナンバ“1”の押鍵音の音高(“C3”)を“1”オクターブシフトしたもの)
タイミング“1:1:240”:G3(発音パターンデータの発音タイミング“1:1:240”におけるキーナンバ“3”の押鍵音の音高(“G3”)を“0”オクターブシフトしたもの)
タイミング“1:2:000”:E3(発音パターンデータの発音タイミング“1:2:000”におけるキーナンバ“2”の押鍵音の音高(“E3”)を“0”オクターブシフトしたもの)
タイミング“1:2:240”:C3(発音パターンデータの発音タイミング“1:2:240”におけるキーナンバ“1”の押鍵音の音高(“C3”)を“0”オクターブシフトしたもの)
他の拍の各タイミングのノートナンバも、同様にして生成される。
なお本実施の形態では、発音パターンデータとして4小節長(図8の例では、4/4拍子)のものを採用しているが、発音データリストの生成は、後述するようにユーザの押鍵操作で開始された後、その離鍵操作があるまで停止されないので、ユーザの押鍵操作から離鍵操作に至るまでの時間が4小節長を超えると、発音データリストは4小節長を超えて生成される。したがって、押鍵音が変更されないまま、発音データリストが4小節長を超えて生成されたときには、第5小節目以降のノートナンバは、第1〜第4小節で生成されたノートナンバが繰り返し生成される。ただし、発音データリストに登録される第5小節目以降の発音データのタイミングは、発音パターンデータ中の対応する発音タイミングをそのまま使うことができず、新発音パターンデータをループして使用する回数(以下、「ループ回数」と言う)×新発音パターンデータの時間長分、当該発音タイミングを時間的に遅く(後ろ)にシフトする必要がある。たとえば、ループ回数が2回目の先頭の発音データのタイミングは、図8に示すように、新発音パターンデータ中の対応する発音タイミング“1:1:000”に対して4小節分後ろにシフトされ、“5:1:000”となっている。ここで、ループ回数は“0”を初期値としているので、図8の「ループ2回目」とは、ループ回数=1のことである。
図7に戻り、ユーザが押鍵操作によって、少なくとも1つ以上の押鍵音を入力する(ブロック1a)と、入力された押鍵音(少なくともキーコードおよびベロシティを含む)は、前記RAM5の所定位置に確保されたキーオンバッファ(図示せず)に格納される。前記CPU3は、キーオンバッファの状態を常にチェックし、キーオンバッファに押鍵音が格納されると、その押鍵音に対応するノートオンイベントを生成して、前記音源回路9に出力する。これに応じて、音源回路9は、入力されたノートオンイベントに対応する楽音信号を生成して、前記効果回路10に出力する。これにより、サウンドシステム11から押鍵音が発音される。
次にCPU3は、アルペジオパターンデータN中の発音パターンデータと、キーオンバッファに格納された押鍵音の音高(キーコード)に基づいて、前述のようにして発音データリストを生成する(ブロック3a)。このようにして生成された(あるいは生成中の)発音データリストは、図示しないタイマ割り込み処理内に埋め込まれた前記(C)の発音データリスト再生処理によって再生される。この(C)発音データリスト再生処理は、具体的には、次のようにして実現される。すなわち、タイマ割り込み処理は、たとえば前記クロックの1周期毎に起動されるとして、
(i)RAM5の所定位置に設けたフリーランカウンタ(図示せず)を、タイマ割り込み処理が起動される度にカウントアップする
(ii)フリーランカウンタのカウント値と発音データリスト中の発音タイミングとを比較し、その結果、両者が一致すると、発音データリストから、その発音タイミングのノートナンバおよびベロシティを読み出し、このノートナンバおよびベロシティを含むノートオンイベントを生成して、音源回路9へ出力する
(iii)上記(ii)でノートオンイベントを生成した場合、フリーランカウンタが、その生成時点を起点として現時点までカウントした値を検出し、その検出値と、生成したノートオンイベントに対応するゲートタイムとを比較し、その結果、両者が一致すると、生成したノートオンイベントに対応するノートオフイベントを生成して、音源回路9に出力する。
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。