以下、本発明の実施の形態を図面に基づいて詳細に説明する。
図1は、本発明の一実施の形態に係る音響効果データ生成装置の概略構成を示すブロック図である。
同図に示すように、本実施の形態の音響効果データ生成装置は、ユーザの演奏操作に応じた演奏情報(音声情報も含む)を入力する演奏入力部1と、各種情報を入力するための複数のスイッチを含む設定操作子2と、各種UI(user interface)を表示するとともに、ユーザが表示された各種UIを、たとえば指で触れることで各種情報を入力するタッチパネルディスプレイ(以下、「タッチパネル」と略して言う)3と、演奏入力部1から入力された演奏情報を電気信号に変換して装置内に取り込む入力インターフェース(I/F)4と、設定操作子2の操作状態を検出する検出回路5と、ユーザによるタッチパネル3上の操作位置や操作圧力などの押圧操作を検出する検出回路6と、上記各種UIをタッチパネル2上に表示させる表示回路7と、装置全体の制御を司るCPU(central processing unit)8と、該CPU8が実行する制御プログラムや各種テーブルデータ等を記憶するROM(read only memory)9と、演奏データ、各種入力情報および演算結果等を一時的に記憶するRAM(random access memory)10と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ11と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ(ソングデータ)、各種データ等を記憶する記憶装置12と、外部記憶装置100を接続し、この外部記憶装置100から各種楽曲データ等を参照したり、取得したりするための通信インターフェース(I/F)13と、演奏入力部1から入力された演奏データや、CPU8がシーケンサプログラムを実行することによって実現されるシーケンサ(図示せず)が楽曲データを再生して出力した演奏データ等を楽音信号に変換する音源回路14と、音源回路14からの楽音信号に各種効果を付与するための効果回路15と、該効果回路15からの楽音信号を音響に変換する、たとえば、DAC(digital-to-analog converter)やアンプ、スピーカ等のサウンドシステム16とにより構成されている。
上記構成要素4〜15は、バス17を介して相互に接続され、CPU8にはタイマ11が接続され、通信I/F13には外部記憶装置100が接続され、音源回路14には効果回路15が接続され、効果回路15にはサウンドシステム16が接続されている。
演奏入力部1は、ユーザの押離鍵操作に応じて音高情報および強度情報を含む押離鍵情報を入力する鍵盤や、ユーザが発した音声を集音してアナログ音声信号に変換するマイクロフォン(以下、「マイク」と略して言う)等によって構成されている。
入力I/F4は、鍵盤から入力された押離鍵情報を演奏データ、たとえばMIDI(musical instrument digital interface)データ(イベントデータ)に変換して、イベントデータを一時的に保存するためのイベントバッファ(図示せず)に格納したり、マイクから入力されたアナログ音声信号をデジタル音声信号(音声データ)に変換して、音声データを一時的に保存するための音声データバッファ(図示せず)に格納したりする。
記憶装置12は、たとえば、フレキシブルディスク(FD)、ハードディスク(HD)、CD−ROM、DVD(digital versatile disc)、光磁気ディスク(MO)および半導体メモリなどの記憶媒体とその駆動装置である。記憶媒体は駆動装置から着脱可能であってもよいし、記憶装置12自体が本実施の形態の音響効果データ生成装置から着脱可能であってもよい。あるいは、記憶媒体も記憶装置12も着脱不可能であってもよい。なお記憶装置12(の記憶媒体)には、前述のように、CPU8が実行する制御プログラムも記憶でき、ROM9に制御プログラムが記憶されていない場合には、この記憶装置12に制御プログラムを記憶させておき、それをRAM10に読み込むことにより、ROM9に制御プログラムを記憶している場合と同様の動作をCPU8にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
通信I/F13としては、たとえば、USB(universal serial bus)やIEEE1394などの汎用近距離有線I/F、Ethernet(登録商標)などの汎用ネットワークI/F、無線LAN(local area network)やBluetooth(登録商標)などの汎用近距離無線I/Fを挙げることができる。本実施の形態では、通信I/F13としてEthernetを採用し、通信I/F13には、インターネット上の外部記憶装置100、たとえば、サーバコンピュータに接続された外部記憶装置100が接続されている。サーバコンピュータ(の外部記憶装置100)は、本実施の形態では、各種楽曲データの供給元として機能するが、これに加えて、記憶装置12に前記各プログラムや各種パラメータが記憶されていなければ、その供給元として機能させてもよい。この場合、クライアントとなる音響効果データ生成装置は、通信I/F13およびインターネットを介してサーバコンピュータへとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやパラメータを、インターネットを介して音響効果データ生成装置へと配信し、音響効果データ生成装置が通信I/F13を介して、これらプログラムやパラメータを受信して記憶装置12に蓄積することにより、ダウンロードが完了する。
音源回路14は、波形メモリ方式、FM(frequency modulation)方式、物理モデル方式、高調波合成方式、フォルマント合成方式、VCO(voltage controlled oscillator)+VCF(voltage controlled filter)+VCA(voltage controlled amplifier)のアナログシンセサイザ方式、アナログシミュレーション方式など、どのような方式のものでもよい。また、専用のハードウェアを用いて音源回路を構成してもよいし、DSP(digital signal processor)+マイクロプログラムを用いて音源(回路)を構成してもよいし、CPU8+ソフトウェアのプログラムで音源(回路)を構成してもよいし、さらに、これらの組み合わせでもよい。
効果回路15は、音響効果パラメータ毎に当該パラメータ値を格納するレジスタを備え、各レジスタに格納されたパラメータ値に基づいて、音源回路14から供給された楽音信号に所定の効果を付与する。
なお、本実施の形態の音響効果データ生成装置は、上述の構成から分かるように電子鍵盤楽器上に構築されたものであるが、これに限らず、鍵盤を外部接続した汎用的なパーソナルコンピュータ(PC)上に構築してもよい。また、鍵盤を必須の構成とせずに本発明を実現できるので、弦楽器タイプや管楽器タイプ等の形態を採用するようにしてもよい。さらに電子楽器に限らず、(鍵盤も外部接続されていない)汎用的なPCやスマートデバイス(smart device)、ゲーム機器などの電子機器にも本発明を適用することができる。
図2は、制御対象として選択可能な音響効果タイプと音響効果パラメータの一例を示す図であり、音響効果タイプ(と音響効果パラメータ)を設定する際に、タッチパネル3上に表示される音響効果タイプ設定画面31を示している。
同図に示すように、複数のタイプの音響効果が用意され、その中からユーザによって選択された1つの音響効果タイプが制御対象となる。各音響効果タイプには、複数の音響効果パラメータが含まれ、その中からユーザによって選択された一部(本実施の形態では、2つ)のパラメータが制御対象となる。
制御対象となっている音響効果パラメータ、つまりパラメータ1と2は、パラメータ1が割り当てられたX軸と、パラメータ2が割り当てられたY軸を直交軸とする2次元座標平面上の点によって制御される。ここで、2次元座標平面を採用したのは、説明の簡単化と図面の画き易さのためであり、それ以上の理由はないので、制御したいパラメータ数をもう1つ増やして、パラメータ1〜3の3つとし、パラメータ3をZ軸に割り当てて、3次元座標平面を採用するようにしてもよい。このように、パラメータ3まで増やすことができるものの、本実施の形態では、パラメータ2までに限定していることが分かるように、パラメータ3はカッコ書きされている。なお、パラメータ1と2をX軸とY軸にどのように割り当て、2次元座標平面上の点に基づいて、パラメータ1,2の各値をどのように制御(決定)するかについては、図4を用いて後述する。
音響効果タイプ設定画面31で、音響効果タイプを選択設定する場合、ユーザは、設定したい音響効果タイプの名称をタッチする。このとき、設定されたことが分かるように、タッチされた名称(の欄)はハイライト表示される。本実施の形態では、音響効果タイプ“Delay”が設定されている(図4参照)ので、“Delay”の記載された欄には斜線が施されている。この「斜線」は、ハイライト表示の一例であり、図面の描き易さを考慮して採用したものであるので、白黒反転や文字色の変更、その欄の背景色の変更など、どのようなハイライト表示の態様を採用してもよい。
音響効果タイプを設定する前あるいは後に、各音響効果タイプで制御対象になっている2つの音響効果パラメータ、つまりパラメータ1と2に割り当てられている音響効果パラメータを変更することができる。音響効果タイプによって異なるが、各音響効果タイプに属する音響効果パラメータは通常、3つ以上ある。しかし本実施の形態では、3つ以上(3次元座標を採用した場合には、4つ以上)の音響効果パラメータを制御対象にできないので、その場合には、いずれかを選択して制御対象にするようにしている。このため、パラメータ1,2(,3)の各「名前」欄には“▼”が表示され、ユーザが“▼”をタッチすると、たとえば、選択可能な音響効果パラメータの名前が記載されたドロップダウンリストが表示され、その中からユーザはいずれかの音響効果パラメータを選択できるようになっている。音響効果パラメータが選択されると、その音響効果パラメータの設定可能なパラメータ値の範囲が「レンジ」欄に表示される。
なお、本発明の特徴は、音響効果データの基になる各音響効果パラメータの値をどのようにして生成するかにあり、音響効果データの基になる各音響効果パラメータの内容にある訳ではないので、音響効果データの基になる各音響効果パラメータの内容についての説明は省略する。
図3は、音響効果データの生成時に必要となる設定情報の選択候補の一例を示す図であり、当該設定情報を設定する際に、タッチパネル3上に表示される音響効果生成時必要情報設定画面32を示している。音響効果生成時必要情報設定画面32には、設定情報のうち、主なものが4種類例示されている。以下、この4種類の設定情報の内容については、図4の音響効果生成画面33を参照して具体的に説明する。
「始点から終点までの区間幅」は、始点SPから終点EPまでの区間幅、つまり時間長をどれくらいにするかを設定するものである。図示例では、選択肢として音符長の倍数が挙げられ、「4分音符×4」が選択されているが、小節単位で指定できるようにしてもよい。なお選択状態は、「楕円」で設定内容を囲むことによって表現されている。
「音響効果データ生成間隔」は、どのくらいの時間間隔で、音響効果データを生成するかを設定するものである。図示例では、選択肢として最大4分音符(長)から半分ずつ短い音符(長)が挙げられ、「8分音符」が選択されているが、その他、2分音符、全音符、付点4分音符などを指定できるようにしてもよい。
「始点と終点を結ぶ線のタイプ」は、始点SPと終点EPとをどのような形状の線で結ぶかを設定するものである。図示例では、選択肢として直線と形状が異なる複数の曲線が挙げられ、「直線」が選択されている。なお、選択された「直線」は、右上がり、つまり単調増加になっているが、増加/減少は、始点と終点との位置関係によって決まり、たとえば、X座標では始点より終点の方が大きくても、Y座標では始点の方が終点より大きく設定された場合には、図3の右上がりの「直線」が選択されていたとしても、右下がりの「直線」になる。この事情は、他の「曲線」が選択された場合についても同様である。
「効果終了タイミング」は、音響効果データの生成を終了するタイミングを設定するものである。図示例では、「解除された折り返し点(始点/終点)に到達するとき」が選択されている。
以上のように構成された音響効果データ生成装置が実行する制御処理を、まず図4を参照してその概要を説明し、次に図5〜図8を参照して詳細に説明する。
図4は、音響効果データの生成時にタッチパネル3上に表示された音響効果生成画面33の一例を示す図である。同図には、音響効果タイプとして名称“Delay”の音響効果が選択され、再生対象の楽曲データとして楽曲名“ABCDE”のデータが選択され、再生テンポとして“120”が選択された場合が示されている。
この選択状態における音響効果生成画面33の初期画面には、音響効果、再生楽曲および再生テンポの各表示欄33a〜33cにそれぞれ“Delay”,“ABCDE”および“120”が表示され、再生スタート/ストップボタン33dが表示され、パラメータ1,2が割り当てられたX軸(横軸)とY軸(縦軸)からなる2次元座標平面(以下、「座標平面」と略していう)33eが表示される。つまり、初期状態の座標平面33eは、図4の座標平面33eから線分LSと線分LS′を消去したものである。
パラメータ1と2には、前述のように音響効果パラメータ“Delay Time”と“Feedback”が設定されている(図2参照)ので、座標平面33eのX軸とY軸にはそれぞれ、音響効果パラメータ“Delay Time”と“Feedback”が自動的に割り当てられ、各軸の最小値および最大値に各音響効果パラメータのパラメータ値の「レンジ」の最小値および最大値が自動的に割り当てられる。したがって、X軸の左端と右端には“Delay Time”の最小値“1ms”と最大値“5000ms”が割り当てられ、Y軸の下端と上端には“Feedback”の最小値“0%”と最大値“100%”が割り当てられる。
このような初期状態の座標平面33e内のある1点をユーザが、たとえばある指でタッチすると、そのタッチ位置が始点SPに設定される。次に、ユーザがその指をタッチさせたまま、他の指で座標平面33e内の他のもう1点をタッチすると、そのタッチ位置が終点EPに設定される。本実施の形態では、始点SPと終点EPの両方の設定状態を維持するには、両指のタッチ状態を継続しておく必要があるものとする。なお終点EP′は、終点EPを移動した場合を示し、始点SPから終点EPまでの線分LSと、始点SPから終点EP′までの線分LS′とが同時に表示されることはない。現在は、始点SPから終点EPまでの線分LSのみが表示されている。
線分LSの時間的な長さ(時間長)は、前記図3の音響効果生成時必要情報設定画面32内の「始点から終点までの区間幅」で設定された「4分音符×4」であり、この時間長内で、音響効果データは、同画面32内の「音響効果データ生成間隔」で設定された「8分音符」間隔で生成される。線分LS上には、ユーザがその生成間隔を一目で分かるように、音響効果データの生成タイミングの位置に小さい“●”が表示される。大きい“●”は、再生楽曲(図示例では、楽曲名“ABCDE”の楽曲データ)の現在の再生位置(以下、「現在位置」と略していう)CPを示しており、現時点では、現在位置CPは表示されていない。
この状態で、ユーザが再生スタート/ストップボタン3dをタッチすると、再生がスタートし、現在位置CPは、「8分音符」に相当する時間が経過する度に、始点SPの位置から終点EPの方向に向かって、小さい“●”を1つずつ進んで行く。図4の音響効果生成画面33(ただし、線分LS′は表示されていない)は、再生をスタートさせてから「8分音符」3つ分に相当する時間が経過した状態を示している。
現在位置CPが小さい“●”を1つ進む度に、その“●”の座標が読み出され、読み出された座標に基づいて“Delay Time”のパラメータ値および“Feedback”のパラメータ値がそれぞれ決定され、決定された各パラメータ値に基づいて音響効果データが生成される。ただし本実施の形態では、各パラメータ値を決定することが音響効果データを生成することである(後述する図8のステップS73の説明を参照)。生成された音響効果データ、つまり、決定された各パラメータ値は、効果回路15に供給されて、効果回路15内の対応するレジスタに格納される。効果回路15は、各レジスタ内に格納されているパラメータに基づいて、音源回路14から供給される楽音信号、ここでは楽曲名“ABCDE”の楽曲データを再生して得られた楽音信号に所定の効果を付与し、サウンドシステム16に出力する。各“●”の座標はそれぞれ異なるため、各“●”の座標が読み出されたときに決定される各パラメータ値も異なる。したがって、現在位置CPが小さい“●”を1つ進む度に、付与される効果は、同種の効果であっても聴感上異なったものとなる。
現在位置CPが終点EPに到達すると、現在位置CPは、進行方向を逆に変えて、つまり折り返して、始点SPに向かって進んで行く。そして現在位置CPは、始点SPに到達すると、同様に折り返して、終点EPに向かって進んで行き、始点SPと終点EPとの間の往復を繰り返す。
このように、現在位置CPが始点SPと終点EPとの間を往復している間に、ユーザが始点SPまたは終点EPの一方のタッチを離すと、離した方の端点の表示が消え、あるいはその表示状態が変わり、当該端点が解除状態になる。ここで「効果終了タイミング」は、音響効果生成時必要情報設定画面32で「解除された折り返し点(始点/終点)に到達するとき」が設定されているので、現在位置CPが当該端点(折り返し点)に到達すると、音響効果データの生成が終了する。
一方、再生をスタートさせる前、あるいは再生中に、ユーザが終点EPを終点EP′に移動させると、線分LSが線分LS′に変わる。線分LS′を線分LSと比較すると、線分LS′は、線分LSより短く、傾きも、線分LSが緩い右下がりであるのに対して、線分LS′は急な右上がりである。線分の長さが短くなることは、傾きが同じであるとすると、当該各パラメータの変化幅が小さくなることを意味する。傾きが急になることは、線分の長さが同じであるとすると、“Delay Time”の変化量に対する“Feedback”の変化量がより増加/減少することを意味し、傾きが右下がりは、“Feedback”が減少して行くことを意味し、傾きが右上がりは、“Feedback”が増加して行くことを意味する。ただし、傾きが右下がり/右上がりは、現在位置CPが始点SPから終点EP(終点EP′)に向かって移動している場合のことであり、現在位置CPがその逆に移動している場合には、それぞれ左上がり/左下がりになる。
このように本実施の形態の音響効果データ生成装置では、タッチパネル3(の座標平面33e)上に2点を入力するだけで、楽曲データを再生して得られた楽音信号に、変化し続ける音響効果をかけることができる。
また、再生する楽曲(あるいはリズム)に合わせて音響効果が変化するので、ユーザは効果を継続的に変化させるための操作をしなくてよい。
さらに、実際に効果をかけたいパラメータ値の範囲と、急な増加や緩やかな減少といった変化傾向を、制御対象となる複数のパラメータについて独立かつ容易に設定することができる。そして、この設定は楽曲データの再生中にも行うことができるので、ユーザは、再生音に実際に効果をかけて、その音響効果を確認しながら、容易にパラメータ値の範囲や変化傾向を変更することができる。
また、タッチパネル3上に入力された2点の位置関係により、効果のかかるパラメータ値の範囲および変化傾向がパラメータごとに独立に算出されるので、ユーザにとって直観的な操作で効果を得ることができ、多数の組合せを容易に試すことができる。そして、対象となる音響効果の中の複数のパラメータを同時に変化させることができるので、聴感上変化の大きい効果を容易に得ることができる。
次に、この制御処理を詳細に説明する。
図5は、本実施の形態の音響効果データ生成装置、特にCPU8が実行する音響効果制御処理の手順を示すフローチャートである。
本音響効果制御処理は、主として、
(1)起動時処理(ステップS1,S2);
(2)再生開始時処理(ステップS4);
(3)始点・終点関連操作検出時処理(ステップS6,S7);
(4)現在位置更新処理(ステップS14);
(5)音響効果生成処理(ステップS15);
(6)音響効果リセット処理(ステップS16,S17);
(7)再生終了時処理(ステップS9,S10);
によって構成されている。
本音響効果制御処理は、ユーザによる起動指示に応じて起動される。起動指示は、具体的には、タッチパネル3上に表示された所定のボタンのタッチ操作や、前記設定操作子2に含まれる所定のスイッチのオン操作などが考えられる。
本音響効果制御処理が起動されると、CPU8は、上記(1)の起動時処理を1回実行した後、再生開始の指示があるまで、始点・終点に関する操作が検出されたかどうかをチェックする(ステップS5→S8→S11→S3→S5)。このとき、始点・終点に関する操作が検出されると、CPU8は、上記(3)の始点・終点関連操作検出時処理を実行する(ステップS5→S6→S7)。なお再生開始の指示がない状態では、ステップS5のチェックの他に、再生終了の指示が受け付けられたかどうかのチェックもなされている(ステップS8)が、ユーザが再生開始を指示していないのに、再生終了を指示することはあまり考えられないので、この状態におけるステップS8についての説明は省略する。ただし本音響効果制御処理では、再生終了の指示以外で、本音響効果制御処理を終了することはできないので、本音響効果制御処理を終了する指示を行えるようにし、この終了指示が受け付けられたかどうかをチェックする処理を追加し、終了指示が受け付けられると、所定の終了処理を実行した後、本音響効果制御処理を終了するようにしてもよい。
一方、ユーザが再生開始を指示すると、CPU8は、上記(2)の再生開始時処理を実行し(ステップS3→S4)、ステップS5とS8の各チェックをした後、再生中かどうかを判定する(ステップS11)。再生中かどうかの判定は、後述するRUNフラグがセット(“1”)されているかどうかを判定することによって行う。このとき、RUNフラグは、上記(2)再生開始時処理(その処理の詳細は後述する)によってセットされているので、CPU8は、処理をステップS11からステップS12に進め、音響効果をリセットすべきかどうかを判定する。この判定は、後述する効果フラグの状態に基づいてなされる。つまりCPU8は、効果フラグがリセット(“0”)状態のときに音響効果をリセットすべきと判定し、効果フラグがセット(“1”)状態のときに音響効果をリセットすべきでないと判定する。ステップS12の判定の結果、音響効果をリセットすべきときには、CPU8は、上記(6)の音響効果リセット処理を実行した後、処理を前記ステップS5のチェックに戻す一方、音響効果をリセットすべきでないときには、CPU8は、音響効果の生成間隔に合うタイミングの到来を待って(ステップS13)、上記(4)の現在位置更新処理と上記(5)の音響効果生成処理を順次実行した(ステップS14,S15)後、処理を前記ステップS5のチェックに戻す。
再生中に、始点・終点に関する操作が検出されると、CPU8は、再生中でないときと同様に、上記(3)の始点・終点関連操作検出時処理を実行する(ステップS5→S6→S7)。また再生中に、再生終了の指示が受け付けられると、CPU8は、上記(7)の再生終了時処理を実行した(ステップS8→S9→S10)後、本音響効果制御処理を終了する(ステップS10→終了)。
(1)起動時処理では、まずCPU8は、初期化処理(ステップS1)を実行する。この初期化処理では、CPU8は、前記RAM10上に次の各領域および各フラグを確保して初期化する。すなわち、
始点位置(Sx,Sy):前記図4の座標平面33e上の始点(SP)の座標を格納するための領域である;
終点位置(Ex,Ey):座標平面33e上の終点(EP)の座標を格納するための領域である;
現在位置(Cx,Cy):座標平面33e上の現在位置(CP)の座標を格納するための領域である;
前回位置(Px,Py):現在の音響効果の生成タイミングより1回前のタイミングにおける現在位置(CP)の座標を格納するための領域である;
分割数格納領域:始点(SP)から終点(EP)までの区間幅(前記図3の設定情報選択画面32の第1行を参照)を音響効果データ生成間隔(設定情報選択画面32の第2行を参照)で分割したときの分割数を格納するための領域であり、以下「分割数」とは、この領域に格納された分割数を意味する;
楽曲データ格納領域:再生する楽曲データを格納するための領域である;
テンポ情報格納領域:楽曲データを再生する際のテンポ値を格納するための領域である;
の各領域を確保して初期化するとともに、
RUNフラグ:楽曲データの再生中にセット(“1”)され、それ以外にリセット(“0”)されるフラグである;
始点フラグ:座標平面33e内に始点が入力されたときにセットされ、始点が解除されたときにリセットされるフラグである;
終点フラグ:座標平面33e内に終点が入力されたときにセットされ、終点が解除されたときにリセットされるフラグである;
効果フラグ:音響効果データを生成可能な状態のときにセットされ、生成不能な状態のときにリセットされるフラグである;
現在位置更新フラグ:前記(3)始点・終点関連操作検出時処理に含まれる始点・終点設定処理(その詳細は、図6Aおよび図6Bに基づいて後述する)中で、現在位置(Cx,Cy)が更新されたときにセットされ、前記(4)現在位置更新処理の実質的な実行を回避する機能を営み、当該(4)現在位置更新処理内でリセットされるフラグである;
の各フラグをリセットする。
なお、始点位置(Sx,Sy)、終点位置(Ex,Ey)、現在位置(Cx,Cy)および前回位置(Px,Py)の初期化とは、それぞれの座標を、たとえば(−,−)に設定することである。ここで“−”は「未定」を意味する。
さらに初期化処理では、CPU8は、タッチパネル3上にトップ画面を表示する。ここで、トップ画面とは、たとえば、他画面への移行を指示するためのボタンが複数個並んで表示されている画面である。この複数個のボタンには、次に説明する各種情報設定処理において選択可能な複数の情報の種類(カテゴリ)がそれぞれ割り当てられたボタンや、前記図4の音響効果生成画面33の表示を指示するボタンが含まれる。なお本実施の形態では、複数の情報の種類には、再生楽曲、音響効果タイプおよび音響効果生成時必要情報が含まれる。
次にCPU8は、各種情報設定処理を実行する(ステップS2)。各種情報設定処理では、ユーザが情報の種類を1つずつ選択しながら、当該情報の種類に属する複数の情報からユーザがいずれか1つを選択すると、その情報を順に設定して行く。具体的には、「再生楽曲」の割り当てられたボタン(図示せず)がタッチされた場合、CPU8は、たとえば、前記記憶装置12に記憶された各種楽曲データの(名称の)一覧をタッチパネル3上に表示する。ユーザがその一覧の中からいずれかを選択すると、CPU8は、選択された楽曲データを記憶装置12から読み出して、前記楽曲データ格納領域に格納する。このとき、当該楽曲データを再生する際のテンポ値が当該楽曲データに対応して記憶されていれば、CPU8は、そのテンポ値を前記テンポ情報格納領域に格納する一方、記憶されていなければ、CPU8は、たとえば、タッチパネル3上にテンポ値を入力するための入力枠を表示して、ユーザにテンポ値を入力するように促し、ユーザがその入力枠にテンポ値を入力すると、そのテンポ値をテンポ情報格納領域に格納する。
また「音響効果タイプ」が割り当てられたボタン(図示せず)がタッチされた場合、CPU8は、たとえば、前記図2の音響効果タイプ設定画面31をタッチパネル3上に表示する。この音響効果タイプ設定画面31での音響効果タイプと当該音響効果タイプ内のパラメータ(本実施の形態では、パラメータ1,2の2種類)の選択方法は、制御処理の概要で説明したので、ここでは繰り返さない。
また「音響効果生成時必要情報」が割り当てられたボタン(図示せず)がタッチされた場合、CPU8は、たとえば、前記図3の音響効果生成時必要情報設定画面32をタッチパネル3上に表示する。音響効果生成時必要情報設定画面32で選択される情報の種類とその内容も、制御処理の概要で説明したので、ここでは繰り返さない。
さらに「音響効果生成画面の表示」が割り当てられたボタン(図示せず)がタッチされた場合、CPU8は、たとえば、前記図4の音響効果生成画面33をタッチパネル3上に表示する。音響効果生成画面33でも、音響効果タイプ、再生楽曲および再生テンポの各情報を変更設定することができる。たとえば、音響効果タイプを変更したい場合には、ユーザは、表示欄33aをタッチする。これに応じて、設定可能な音響効果タイプの名称が記載されたドロップダウンリストが表示されるので、その中からユーザはいずれかの音響効果タイプを選択する。再生楽曲と再生テンポについての変更方法も、同様である。
前記(2)再生開始時処理では、CPU8は、
(2a)RUNフラグをセット(“1”);
(2b)前記タイマ11に対する計時の開始を指示;
(2c)始点フラグ=1&(かつ)終点フラグ=1&効果フラグ=1&(現在位置(Cx,Cy)が初期値(−,−))の場合:後述する図6BのステップS29,S31と同様の処理、つまり現在位置(Cx,Cy)に始点位置(Sx,Sy)を記憶し、現在位置更新フラグをセット(“1”);
の各処理を行う。
上記(2b)の計時の開始の指示には、タイマ割込み信号を発生する周期、つまりタイマ割込み処理を起動する時間間隔の指定も含まれる。この時間間隔は、本実施の形態では、設定されたテンポ値に応じた時間(1ティックの時間)とするので、CPU8は、前記テンポ情報格納領域に格納されているテンポ値に応じた時間間隔(分解能、つまりタイムベースによって異なるが、1ティックの時間(秒)=60/テンポ値/タイムベース)を算出し、タイマ11に出力する。これに応じてタイマ11は、供給された時間間隔を計時する度に、タイマ割込み信号を発生し、これに応じてCPU8は、処理をタイマ割込み処理に移す。タイマ割込み処理では、CPU8は、前記楽曲データ格納領域に格納されている楽曲データを再生する。楽曲データは、本実施の形態ではSMF(standard MIDI file)形式のものを採用しているので、デルタタイムとイベントを1組とした複数組からなる列によって構成される。したがってタイマ割込み処理では、CPU8は、当該楽曲データに含まれるデルタタイムを先頭のものから1つずつ対象にして、デクリメントして行き、“0”になると、そのデルタタイムの直後に配置されているイベントを読み出し、そのイベントの内容に応じた処理を行うことで、再生を行うようにしている。もちろん、他のフォーマットのMIDIデータを採用するようにしてもよいし、MIDIのフォーマットを採らない他のフォーマット、たとえばOSC(Open Sound Control)などの演奏情報であってもよい。また、オーディオトラック(パート)を含むようにしてもよいし、楽曲データ全体をオーディオトラックのみで構成してもよい。
上記(2c)の処理は、再生開始が指示される前に始点位置(Sx,Sy)と終点位置(Ex,Ey)が設定され、その後、再生開始が指示された場合に、音響効果データを正しく生成するためのものである。
前記(3)始点・終点関連操作検出時処理では、CPU8は、始点・終点設定処理を実行した(ステップS6)後、表示画面の描画を更新する(ステップS7)。この(3)始点・終点関連操作検出時処理についての以下の説明では、音響効果タイプおよびパラメータ1,2として、前記図2の音響効果タイプ設定画面31に示されるもの(斜線が付与された音響効果タイプ“Delay”)が設定され、音響効果生成時必要情報として、前記図3の音響効果生成時必要情報設定画面32に示されるものが設定されているとして、具体的に説明する。
図6Aおよび図6Bは、上記始点・終点設定処理の詳細な手順を示すフローチャートである。
本始点・終点設定処理を説明するに当たり、次のように場合分けする。すなわち、
(31)前記図4の音響効果生成画面33が初期画面のときに、その座標平面33e内のある1点がタッチされ、そのタッチ状態が継続している場合;
(32)上記(31)の場合に続いて、座標平面33e内の他のもう1点がタッチされ、そのタッチ状態が継続している場合;
(33)始点位置(Sx,Sy)の解除が指示された場合;
(34)終点位置(Ex,Ey)の解除が指示された場合;
(35a)非再生中(RUN=0)に上記(33)の場合から、座標平面33e内の終点位置(Ex,Ey)以外の1点が再度タッチされた場合;
(35b)再生中(RUN=1)に上記(33)の場合から、座標平面33e内の終点位置(Ex,Ey)以外の1点が再度タッチされた場合;
(36a)非再生中に上記(34)の場合から、座標平面33e内の始点位置(Sx,Sy)以外の1点が再度タッチされた場合;
(36b)再生中に上記(34)の場合から、座標平面33e内の始点位置(Sx,Sy)以外の1点が再度タッチされた場合;
(37a)非再生中に始点位置(Sx,Sy)の移動が指示された場合;
(37b)再生中に始点位置(Sx,Sy)の移動が指示された場合;
(38a)非再生中に終点位置(Ex,Ey)の移動が指示された場合;
(38b)再生中に終点位置(Ex,Ey)の移動が指示された場合;
の各場合である。
上記(31)の場合、座標平面33e内のある1点がタッチされたので、入力操作が検出され、始点フラグ=0(前記図5のステップS1の初期化処理による)であるので、CPU8は、入力操作で検出された座標、つまり、前記検出回路6から検出された操作位置を始点位置(Sx,Sy)に記憶し、始点フラグをセット(“1”)する(ステップS21→S22→S23)。このとき、終点フラグ=0であり、効果フラグ=0である(いずれも、上記ステップS1の初期化処理による)ので、CPU8は、本始点・終点設定処理を終了する(ステップS24→S26→リターン)。その後、CPU8が表示画面の描画を更新する(図5のステップS7)と、座標平面33eは、初期状態(座標平面33eのX軸とY軸のそれぞれに、選択された音響効果タイプ(“Delay”)のパラメータ1(“Delay Time”)とパラメータ2(“Feedback”)が割り当てられ、座標平面33e内には何も記載されていない状態)から、始点SPが表示された状態に更新される。
上記(32)の場合、座標平面33e内の他の1点がタッチされたので、入力操作が検出され、始点フラグ=1(上記ステップS23の処理による)であり、終点フラグ=0(上記ステップS1の初期化処理による)であるので、CPU8は、入力操作で検出された座標を終点位置(Ex,Ey)に記憶し、終点フラグをセット(“1”)する(ステップS21→S22→S32→S33)。そしてCPU8は、効果フラグをセット(“1”)する(ステップS25)。このとき、効果フラグ=1であり、RUN=0(上記ステップS1の初期化処理による)であるので、CPU8は、本始点・終点設定処理を終了する(ステップS26→S27→リターン)。その後、CPU8が表示画面の描画を更新する(図5のステップS7)と、座標平面33eには、始点SPに加えて終点EPが表示され、始点SPと終点EPとの間が「始点と終点を結ぶ線のタイプ」として選択されたタイプの線(ここでは「直線」)で結ばれ、始点SPから終点EPまでの区間幅が「始点から終点までの区間幅」として選択された幅(ここでは「4分音符×4」)に設定され、この始点SPから終点EPまでの区間が「音響効果データ生成間隔」として選択された間隔(ここでは「8分音符」)で区切られ、各区切りに小さい“●”が表示される。したがって座標平面33eには、線分LSが表示される。ただし図4の線分LSには、現在位置CPが大きい“●”で表示されているが、このときは、大きい“●”に代えて、小さい“●”が表示される。つまり、現在位置CPは表示されない。
上記(33)の場合、始点位置(Sx,Sy)の解除操作(たとえば、座標平面33e内の始点SPを指でタッチし続けている状態から、その指を離す操作)がなされたので、CPU8は、始点フラグをリセット(“0”)した(ステップS21→S34→S35→S36)後、本始点・終点設定処理を終了する(リターン)。その後、CPU8が表示画面の描画を更新する(図5のステップS7)と、座標平面33e上に表示された線分LSから始点SPが消去される。解除の表示態様は、このような「消去」に限らず、点滅や色の変更などであってもよい(次の終点EPの解除についても、同様)。
上記(34)の場合、終点位置(Ex,Ey)の解除操作(解除操作の仕方は、始点SPの解除操作の仕方と同様)がなされたので、CPU8は、終点フラグをリセット(“0”)した(ステップS21→S34→S35→S37)後、本始点・終点設定処理を終了する(リターン)。その後、CPU8が表示画面の描画を更新する(図5のステップS7)と、座標平面33e上に表示された線分LSから終点EPが消去される。
上記(35a)の場合、始点位置(Sx,Sy)が解除された状態で、座標平面33e内の終点位置(Ex,Ey)と異なる他の1点がタッチされた(本実施の形態では、解除が指示された始点位置(Sx,Sy)と異なる位置がタッチされるとするが、もちろん、同じ位置がタッチされてもよい)ので、入力操作が検出され、このとき、始点フラグ=0(前記ステップS36の処理による)であるので、CPU8は、入力操作で検出された座標を始点位置(Sx,Sy)に記憶し、始点フラグをセット(“1”)する(ステップS21→S22→S23)。そしてこのとき、終点フラグ=1(前記ステップS33の処理による)であるので、CPU8は、効果フラグをセット(“1”)する(ステップS25)。したがってこのとき、効果フラグ=1であり、RUN=0(前記ステップS1の初期化処理による)であるので、CPU8は、本始点・終点設定処理を終了する(ステップS26→S27→リターン)。その後、CPU8が表示画面の描画を更新する(図5のステップS7)と、座標平面33eには、解除された始点SPと異なる位置に新たな始点SP′(図示せず)が表示され、この始点SP′と終点EPとを結ぶ線分LS″(小さい“●”が付いたもの)が表示される。
上記(35b)の場合、上記(35a)の場合の処理とステップS27の判定までは同じであるが、ステップS27の判定の結果、RUN=1であるので、CPU8は、現在位置(Cx,Cy)が初期値(−,−)であるかどうか判定する(ステップS28)。現在位置(Cx,Cy)が初期値であるとは、再生中に効果フラグがリセットされて現在位置(Cx,Cy)が初期化された場合(後述する図5のステップS17参照)である。ステップS28の判定の結果、現在位置(Cx,Cy)が初期値のときには、CPU8は、現在位置(Cx,Cy)に始点位置(Sx,Sy)を記憶し(ステップS29)、現在位置更新フラグをセット(“1”)した(ステップS31)後、本始点・終点設定処理を終了する(リターン)。一方、ステップS28の判定の結果、現在位置(Cx,Cy)が初期値でないときには、CPU8は、現在位置(Cx,Cy)を前回位置(Px,Py)、始点位置(Sx,Sy)および終点位置(Ex,Ey)に基づいて更新し(ステップS30)、現在位置更新フラグをセット(“1”)した(ステップS31)後、本始点・終点設定処理を終了する(リターン)。その後、CPU8が表示画面の描画を更新する(図5のステップS7)と、座標平面33e内に前記線分LS″が表示されている場合、現在位置(Cx,Cy)が初期値のときには、現在位置CPを示す大きい“●”が始点SP′の位置に表示される一方、現在位置(Cx,Cy)が初期値でないときには、線分LS″上、更新前の現在位置と前回位置の位置関係と同じ位置関係の位置に更新後の現在位置CPを示す大きい“●”が表示される。
上記(36a)の場合、終点位置(Ex,Ey)が解除された状態で、座標平面33e内の始点位置(Sx,Sy)と異なる他の1点がタッチされた(本実施の形態では、解除が指示された終点位置(Ex,Ey)と異なる位置がタッチされるとするが、もちろん、同じ位置がタッチされてもよい)ので、入力操作が検出され、このとき、終点フラグ=0(前記ステップS37の処理による)であるので、CPU8は、入力操作で検出された座標を終点位置(Ex,Ey)に記憶し、終点フラグをセット(“1”)する(ステップS21→S22→S32→S33)。そしてCPU8は、効果フラグをセット(“1”)する(ステップS25)。このとき、効果フラグ=1であり、RUN=0(前記ステップS1の初期化処理による)であるので、CPU8は、本始点・終点設定処理を終了する(ステップS26→S27→リターン)。その後、CPU8が表示画面の描画を更新する(図5のステップS7)と、座標平面33eには、解除された終点EPと異なる位置に新たな終点EP′が表示され、この終点EP′と始点SPとを結ぶ線分LS′(小さい“●”が付いたもの)が表示される。図4の線分LS′は、後述する(38b)の場合に描画が更新されたときのものであり、(36a)の場合のものではないが、終点EPが解除された状態で、終点EP′の位置がタッチされれば、図4の線分LS′と同様の線分が座標平面33e上に表示される。ただしこの場合、現在位置CP′を示す大きい“●”は表示されず、音響効果データを生成するタイミングを示す小さい“●”のみが表示される。
上記(36b)の場合、上記(36a)の場合の処理とステップS27の判定までは同じであるが、ステップS27の判定の結果、RUN=1であるので、CPU8は、処理をステップS28に進める。ステップS28からリターンに至るまでの処理は、上記(35b)の場合の処理で詳述したので、ここでは繰り返さない。その後、CPU8が表示画面の描画を更新する(図5のステップS7)と、座標平面33e内に線分LS′が表示されている場合、現在位置(Cx,Cy)が初期値のときには、現在位置CP′を示す大きい“●”が始点SPの位置に表示される一方、現在位置(Cx,Cy)が初期値でないときには、線分LS′上、更新前の現在位置と前回位置の位置関係と同じ位置関係の位置に更新後の現在位置CP′を示す大きい“●”が表示される。ただし、線分LS′上の現在位置CP′は、線分LS上の現在位置CPに対して、小さい“●”を1つ分終点EP′の方向へ進んだ状態を示している。つまり線分LS′は、線分LSの終点EPのみを終点EP′に変更したものではなく、小さい“●”1つ分の時間が経過したときに、終点がEP′に変わった状態を示している。
前記(37a)の場合、始点位置(Sx,Sy)の移動操作(たとえば、座標平面33e内の始点SPをタッチしたまま、他の位置まで移動させて停止させる操作)がなされたので、CPU8は、始点位置(Sx,Sy)を移動先の位置で更新する(ステップS21→S34→S38→S39→S40)。このとき、終点位置(Ex,Ey)が初期値(−,−)であれば、CPU8は、本始点・終点設定処理を終了する(ステップS41→リターン)一方、終点位置(Ex,Ey)が初期値(−,−)でなければ、CPU8は、RUN=1であるかどうかを判定する(ステップS42)。この(37a)の場合、RUN=0であるので、CPU8は、本始点・終点設定処理を終了する(ステップS42→リターン)。その後、CPU8が表示画面の描画を更新する(図5のステップS7)と、座標平面33e上、始点SPが移動先SP′(図示せず)に移動する。このとき、終点位置(Ex,Ey)が初期値(−,−)の場合と、初期値(−,−)でない場合があるが、前者の場合は、座標平面33e内に、始点位置(Sx,Sy)のみが入力され、終点位置(Ex,Ey)がまだ入力されていない場合であるので、始点SPだけが移動先SP′に移動する。一方、後者の場合は、座標平面33e内に、始点位置(Sx,Sy)も終点位置(Ex,Ey)も入力されている場合であるので、始点SPが移動先SP′に移動し、これにより、移動先SP′を新たな始点SP′とし、この始点SP′と終点EPを結ぶ線分(前記線分LS″と同様)が形成されて、表示される。
前記(37b)の場合、上記前記(37a)の場合の処理とステップS42の判定までは同じであるが、ステップS42の判定の結果、RUN=1であるので、CPU8は、現在位置(Cx,Cy)を前回位置(Px,Py)、始点位置(Sx,Sy)および終点位置(Ex,Ey)に基づいて更新し(ステップS43)、現在位置更新フラグをセット(“1”)した(ステップS44)後、本始点・終点設定処理を終了する(リターン)。なお、ステップS43,S44の処理はそれぞれ、前記ステップS30,S31の処理と同様であるので、ここでは繰り返さない。その後、CPU8が表示画面の描画を更新する(図5のステップS7)と、座標平面33e内に線分LS″が表示されている場合、このとき終点位置(Ex,Ey)は初期値ではないので、線分LS″上、更新前の現在位置と前回位置の位置関係と同じ位置関係の位置に更新後の現在位置CP″を示す大きい“●”が表示される。
前記(38a)の場合、終点位置(Ex,Ey)の移動操作(移動操作の仕方は、始点SPの移動操作の仕方と同様)がなされたので、CPU8は、終点位置(Ex,Ey)を移動先の位置で更新する(ステップS21→S34→S38→S39→S45)。そしてCPU8は、RUN=1であるかどうかを判定する(ステップS42)。この(38a)の場合、RUN=0であるので、CPU8は、本始点・終点設定処理を終了する(ステップS42→リターン)。その後、CPU8が表示画面の描画を更新する(図5のステップS7)と、座標平面33e上、終点EPが移動先EP′に移動する。このとき、座標平面33e内に、始点位置(Sx,Sy)も終点位置(Ex,Ey)も入力されているので、終点EPが移動先EP′に移動し、これにより、移動先EP′を新たな終点EP′とし、この終点EP′と始点SPを結ぶ線分LS′が形成されて、表示される。
前記(38b)の場合、上記前記(38a)の場合の処理とステップS42の判定までは同じであるが、ステップS42の判定の結果、RUN=1であるので、CPU8は、処理をステップS43に進める。ステップS43からリターンに至るまでの処理は、上記(37b)の場合の処理で詳述したので、ここでは繰り返さない。その後、CPU8が表示画面の描画を更新する(図5のステップS7)と、座標平面33e内に線分LS′が表示されている場合、線分LS′上、更新前の現在位置と前回位置の位置関係と同じ位置関係の位置に更新後の現在位置CP′を示す大きい“●”が表示される。
なお本始点・終点設定処理では、非再生中あるいは再生中に始点位置(Sx,Sy)と終点位置(Ex,Ey)の同時移動が指示された場合については考慮されていないが、この場合も考慮して、正しく動作させるには、たとえば、図6BのステップS38とステップS39との間に、「始点と終点の同時移動が指示された?」という判定を挿入する。そして、この判定結果が“NO”の場合にはステップS39に進むようにし、“YES”の場合には「始点位置および終点位置をそれぞれの移動先に更新」を実行させた後、ステップS42に進むようにすればよい。
図5に戻り、前記(4)現在位置更新処理は、前述のように、音響効果データの生成タイミングが到来する度に起動され、現在位置(Cx,Cy)を更新するものである。
図7は、この(4)現在位置更新処理の詳細な手順を示すフローチャートであり、本現在位置更新処理は、主として、
(41)現在位置が始点位置にあるときの更新処理(ステップS54,S63〜S65);
(42)現在位置が終点位置にあるときの更新処理(ステップS56,S63〜S65);
(43)現在位置が始点位置にも終点位置にもないときの更新処理(ステップS57〜65);
によって構成されている。なお現在位置の更新が、本現在位置更新処理が起動される前に既になされている場合(つまり、現在位置更新フラグがセットされている場合)があるが、この場合には、本現在位置更新処理で現在位置の更新を行う必要はない。したがって、現在位置更新フラグ=1の場合には、本現在位置更新処理では、現在位置更新フラグのリセットだけ行って(ステップS52)、本現在位置更新処理を実質的に回避するようにしている。以下、本現在位置更新処理の説明では、現在位置更新フラグ=0であるものとする。
今、現在位置(Cx,Cy)=始点位置(Sx,Sy)であるとすると、CPU8は、処理を前記(41)の更新処理に進める(ステップS53→S54)。ここで、現在位置(Cx,Cy)=始点位置(Sx,Sy)の場合とは、再生開始が指示されて、現在位置(Cx,Cy)が始点位置(Sx,Sy)に設定されてから、次の音響効果データの生成タイミングが到来した場合の他、再生中に、現在位置(Cx,Cy)が終点位置(Ex,Ey)から折り返し、再度現在位置(Cx,Cy)に戻ってきた場合も含んでいる。
(41)の更新処理では、まずCPU8は、更新すべき次の現在位置が何番目の分割点に相当するかを示すために前記RAM10上に確保された領域Nextに“1”を設定する(ステップS54)。
次にCPU8は、前回位置(Px,Py)を現在位置(Cx,Cy)で更新し(ステップS63)、始点位置(Sx,Sy)から終点位置(Ex,Ey)を結ぶ線を分割数で等分したとき、Next番目の分割点の位置を算出し、現在位置(Cx,Cy)に記憶する(ステップS64)。さらにCPU8は、表示画面内で、更新前の現在位置に表示されている大きい“●”を更新後の現在位置(Cx,Cy)に表示させることで、現在位置“●”の描画を更新する(ステップS65)。
たとえば、座標平面33e内に線分LSが表示され、現在位置CPが始点SPの位置にある状態で、本現在位置更新処理が実行されると、現在位置CPは、始点SPの右隣にある小さい“●”の位置に移動する。
一方、現在位置(Cx,Cy)=終点位置(Ex,Ey)であるとすると、CPU8は、処理を前記(42)の更新処理に進める(ステップS53→S55→S56)。ここで、現在位置(Cx,Cy)=終点位置(Ex,Ey)の場合とは、再生中に、現在位置(Cx,Cy)が始点位置(Sx,Sy)から終点位置(Ex,Ey)に至った場合である。
(42)の更新処理では、まずCPU8は、領域Nextに“分割数−1”を設定した(ステップS56)後、ステップS63に進む。ステップS63からリターンに至るまでの処理は、上記(41)の更新処理で詳述したので、ここでは繰り返さない。
たとえば、座標平面33e内に線分LSが表示され、現在位置CPが終点EPの位置にある状態で、本現在位置更新処理が実行されると、現在位置CPは、終点EPの左隣にある小さい“●”の位置に移動する。
さらに、(現在位置(Cx,Cy)≠始点位置(Sx,Sy))&(現在位置(Cx,Cy)≠終点位置(Ex,Ey))であるとすると、CPU8は、処理を前記(43)の更新処理に進める(ステップS53→S55→S57)。
(43)の更新処理では、まずCPU8は、前回位置(Px,Py)が、始点位置(Sx,Sy)から終点位置(Ex,Ey)を結ぶ線を分割数で等分したときに、何番目の分割点に当たるかを検出し、その検出値を、RAM10上に確保された領域Positionに設定する(ステップS57)。次にCPU8は、領域Positionに設定された値に応じて、次のように処理を異ならせる。すなわち、
(431)Position=0の場合(つまり、前回位置(Px,Py)=始点位置(Sx,Sy)の場合):Position+2の演算結果を領域Nextに設定した(ステップS58→S62)後、処理をステップS63に進める;
(432)Position=分割数の場合(つまり、前回位置(Px,Py)=終点位置(Ex,Ey)の場合):Position−2の演算結果を領域Nextに設定した(ステップS58→S59→S61)後、処理をステップS63に進める;
(433)(Position≠0)&(Position≠分割数)の場合:
(433a)現在位置(Cx,Cy)が前回位置(Px,Py)より終点位置(Ex,Ey)に近い場合(つまり、現在位置(Cx,Cy)の左隣に前回位置(Px,Py)がある場合、さらに換言すると、現在位置(Cx,Cy)が始点位置(Sx,Sy)から終点位置(Ex,Ey)に向かって移動している場合):上記(431)の場合の処理と同様の処理を実行する;
(433b)現在位置(Cx,Cy)が前回位置(Px,Py)より始点位置(Sx,Sy)に近い場合(つまり、現在位置(Cx,Cy)の右隣に前回位置(Px,Py)がある場合、さらに換言すると、現在位置(Cx,Cy)が終点位置(Ex,Ey)から始点位置(Sx,Sy)に向かって移動している場合):上記(432)の場合の処理と同様の処理を実行する。
ステップS63からリターンに至るまでの処理は、上記(41)の更新処理で詳述したので、ここでは繰り返さない。
たとえば、座標平面33e内に線分LSが表示され、現在位置CPが、図4の例のようにNext=3の位置にあり、現在位置CPが終点EPに向かって移動している状態で、本現在位置更新処理が実行されると、現在位置CPは、右隣にある小さい“●”の位置に移動する。一方、この状態と同様の状態であるが、現在位置CPが始点SPに向かって移動している点のみ異なる状態で、本現在位置更新処理が実行されると、現在位置CPは、左隣にある小さい“●”の位置に移動する。
図5に戻り、前記(5)音響効果生成処理は、前述のように、音響効果データの生成タイミングが到来する度に、上記(41)の更新処理の終了後に起動され、音響効果データを生成して、効果回路15に出力するものである。
図8は、この(5)音響効果生成処理の詳細な手順を示すフローチャートである。同図に示すように、まずCPU8は、選択されている音響効果タイプのパラメータ1の上限値が座標平面33eのX軸の最大値、下限値が当該X軸の最小値としたときに、現在位置(Cx,Cy)のX座標“Cx”に該当する値(パラメータ値)を算出し、RAM10上に確保された領域Value1に設定する(ステップS71)。
次にCPU8は、選択されている音響効果タイプのパラメータ2の上限値が座標平面33eのY軸の最大値、下限値が当該Y軸の最小値としたときに、現在位置(Cx,Cy)のY座標“Cy”に該当する値(パラメータ値)を算出し、RAM10上に確保された領域Value2に設定する(ステップS72)。
本実施の形態では、現在位置は、始点位置と終点位置を結ぶ線分上を移動しているので、対象となる複数のパラメータ(ここでは、パラメータ1と2)それぞれの上限値と下限値は、始点位置と終点位置によって決まる。
さらにCPU8は、選択されている音響効果タイプの音響効果データを、上記領域Value1とValue2にそれぞれ設定された各パラメータ値に基づいて生成し、効果回路15に出力する(ステップS73)。ここで生成する音響効果データの態様は、出力先の効果回路の構成に適合させる必要がある。本実施の形態の音響効果データ生成装置で採用した効果回路15は、前述のように、音響効果パラメータ毎に当該パラメータ値を格納するレジスタを備え、各レジスタに格納されたパラメータ値に基づいて、楽音信号に所定の効果を付与するものである。つまり、効果回路15に出力する音響効果データは、パラメータ値の決定された音響効果パラメータそのものでよく、これらの音響効果パラメータに基づいて新たに生成した(あるいは変換した)ものである必要はない。これとは逆に、音響効果パラメータそのものを受け付けない種の効果回路もあり得る。このため、ステップS73では、パラメータ値の決定された音響効果パラメータに基づいて音響効果データを生成するとしている。
次にCPU8は、次のように各場合に応じて処理を異ならせる。すなわち、
(51)(現在位置(Cx,Cy)=始点位置(Sx,Sy))&(始点フラグ=0)の場合(たとえば、座標平面33e内に線分LSが表示され、その始点SPが解除された状態で、現在位置CPがその始点SPに到達した場合):効果フラグをリセットした(ステップS74→S76)後、本音響効果生成処理を終了(リターン);
(52)(現在位置(Cx,Cy)=終点位置(Ex,Ey))&(終点フラグ=0)の場合(たとえば、座標平面33e内に線分LSが表示され、その終点EPが解除された状態で、現在位置CPがその終点EPに到達した場合):効果フラグをリセットした(ステップS74→S75→S76)後、本音響効果生成処理を終了(リターン);
(53)上記(51)の場合でも上記(52)の場合でもない場合:本音響効果生成処理を終了(ステップS74→S75→リターン)。
図5に戻り、前記(6)音響効果リセット処理は、前述のように、再生中(RUN=1)に効果フラグがリセットされたとき(前記図8のステップS74〜S76参照)、具体的には、「効果終了タイミング」として「解除された折り返し点(始点/終点)に到達するとき」(図3参照)が設定され、たとえば、座標平面33e内に線分LSが表示された状態で、始点SP/終点EPが解除され、現在位置CPが当該解除された始点SP/終点EPに到達したときに実行され、音響効果をリセットするものである。
(6)音響効果リセット処理では、CPU8は、現在有効に作用している音響効果があれば、その効果を無効にする指示を効果回路15に出力し(ステップS16)、始点位置(Sx,Sy)、終点位置(Ex,Ey)、前回位置(Px,Py)および現在位置(Cx,Cy)を初期化する、つまり初期値(−,−)に設定する(ステップS17)。この(6)音響効果リセット処理が終了すると、CPU8は、処理を前記ステップS5に戻す。
前記(7)再生終了時処理は、前述のように、ユーザによる再生終了の指示がなされたときに実行され、本音響効果制御処理を終了する前に行うものである。
(7)再生終了時処理では、CPU8は、
(7a)RUNフラグをリセット(“0”)(ステップS9);
(7b)前記タイマ11に対する計時の終了を指示(ステップS9);
(7c)消音処理(ステップS10);
の各処理を行う。
なお本音響効果制御処理では、座標平面33e内の座標であっても常に、位置座標として取り扱い、効果回路15に音響効果データを出力する段階になって初めて、位置座標から音響効果パラメータのパラメータ値に変換するようにした。したがって、座標平面33e内の各点の座標は、本来は位置座標であるはずであるが、図4ではその座標として、位置座標をパラメータ1,2の値に変換したもの(たとえば、SP(417ms,25%)など)が記載されている。これは、各点の位置座標を実際に出力されるパラメータ値に変換すればどれくらいかが分かるようにしたものであり、それ以上の理由はない。もちろん、これに限らず、座標平面33eのX軸とY軸にパラメータ1と2が割り当てられた時点で、座標平面33e内の座標をパラメータ1,2の値に変換して取り扱うようにしてもよい。この場合、パラメータ1,2の値に変換して取り扱いたい位置は、始点位置(Sx,Sy)、終点位置(Ex,Ey)および現在位置(Cx,Cy)を含む少数であるので、必要な位置だけ、パラメータ1,2の値に変換して取り扱うようにしてもよい。
また本音響効果制御処理では、テンポは(1)起動時処理で設定された後、変更できず、変更するためには、本音響効果制御処理を一旦終了してから、再度本音響効果制御処理を起動して(1)起動時処理で設定する必要があるが、これは本音響効果制御処理を簡単化するためであるので、本音響効果制御処理中にテンポ変更のための処理を挿入し、処置の途中で、テンポを変更できるようにしてもよい。
さらに本音響効果制御処理では、「効果終了タイミング」として「解除された折り返し点(始点/終点)に到達するとき」が設定された場合についてのみ考慮され、「終了指示があったとき(始点と終点の両方の解除時を含む)」または「効果開始後、所定時間(たとえば1分)経過したとき」が設定された場合については考慮されていない。前者のタイミングが設定された場合には、図8のステップS75と「リターン」との間に、「(始点フラグ=0)&(終点フラグ=0)?」の判定を挿入し、その判定結果が“YES”の場合にはステップS76に進み、“NO”の場合にはリターンに進むようにすればよい。一方、後者のタイミングが設定された場合には、図5のステップS12とS13の間に、「効果フラグが“0”から“1”に切り替わった?」の判定を挿入し、その判定結果が“YES”の場合には「タイマ11に対する所定時間の計時の開始を指示」を実行させた後ステップS13に進み、“NO”の場合には直ちにステップS13に進むようにし、さらに、図8のステップS75と「リターン」との間に、「タイマ11が所定時間の計時を完了した?」の判定を挿入し、その判定結果が“YES”の場合にはステップS76に進み、“NO”の場合にはリターンに進むようにすればよい。
なお本実施の形態では、前記図3に示したように「始点と終点を結ぶ線のタイプ」の選択肢としては、複数パターンの線のテンプレートが用意され、ユーザがいずれかを選択するようにしたが、これに限らず、始点と終点を座標平面33e内に入力する際に、ユーザが描いた線を記憶し、これを用いるようにしてもよい。あるいは、ユーザに3点以上を入力させるようにして、始点と終点以外に通過点を設定し、音響効果データを生成する際に当該通過点を通るように制御してもよい。
また「効果終了タイミング」の選択肢は、図3に示したものの他、「2点間(始点と終点の2点でなくてもよい)を所定の回数往復したら終了」や「入力の変化がなくなってから所定の時間(たとえば1分など)経過したら終了」、「2点をタッチしている間、効果を持続させ、2点のタッチを止めたら直ちに終了」、「残り1点のみのタッチになったら、その1点までパラメータ値が変化して終了」などが考えられる。さらに、効果終了を指示するためのボタン(ソフトウェアで実現)や操作子(ハードウェアで実現)を設け、これらに対するユーザ操作に応じて効果が終了するようにしてもよい。
また本実施の形態では、位置情報の入力はXY座標の2次元の値であり、制御対象となるパラメータは2種類であるが、タッチパネル3は圧力も検出できるので、位置情報に圧力を含めて3次元の値を採るようにし、3種類のパラメータを制御対象としてもよい。
始点や終点の持つ情報は、XY座標が最も考え易いが、たとえば%などの比率の組合せでもよい。座標平面33eの左端/右端をあるパラメータの下限値/上限値とし、座標平面33eの上端/下端を別のパラメータの上限値/下限値として、始点や終点の持つ各位置情報をそれぞれのパラメータの値に対応付けるとよい。たとえば、0〜10のレンジを持つパラメータに対して「少ない方と多い方を7:3に分ける位置」が指定された場合、“7”を対応付けることができる。また位置情報として、たとえば0〜1000の間の数値が指定される場合、“0”を対応するパラメータの下限値、“1000”を対応するパラメータの上限値と考え、実際に指定された数値から、対応するパラメータ値を算出すればよい。パラメータ値が±の値を採り得る場合には、位置情報として採り得る数値の中間値を“0”に合わせるようにすればよい。いずれにしても、それぞれの数値(数量)が、対応付けられているパラメータの値に変換することができればよい。
なお本実施の形態では、タッチパネル3を採用し、ユーザ操作の入力と表示を兼用するようにしたが、これに限らず、ユーザ操作の入力と表示を別体で構成してもよい。たとえば、ノートPCのように、位置情報の入力をパッドで行い、入力した位置情報の表示をLCD(liquid crystal display)で行う構成が考えられる。あるいは、電子楽器に入力操作子としてパッドが付いている場合には、表示しないことも考えられる。この場合、表示画面が小さいことも考えられるので、座標上の位置や経路を表示する代わりに、有効となった効果の(2種類の)パラメータ値の範囲を文字や数値で表示するようにしてもよい。
また本実施の形態では、再生楽曲のテンポに合わせて音響効果を変化させながら付与するようにしたが、再生対象は楽曲に限らず、リズムであってもよい。音響効果を変化させる間隔は、本実施の形態では、複数の選択肢(たとえば、1小節毎、2拍毎、1拍毎、4分音符毎、8分音符毎、…)が用意されているものの、固定値であったが、これに限らず、ユーザが任意に設定できるようにしてもよい。あるいは、テンポの段階によって、変化の間隔が設定されていてもよいし、テンポに拘わらずデフォルトの間隔が決まっており、ユーザが変更できるようにしてもよい。
本実施の形態で挙げた音響効果の種類や音響効果パラメータの種類は、一例に過ぎず、どのようなものを採用してもよい。また、音響効果の種類や音響効果パラメータの種類の選択設定方法も、一例に過ぎず、変更できる仕組みであれば、どのような方法を採用してもよい。
また本実施の形態では、座標平面33e内に始点と終点を入力する場合、先に入力した方を始点とし、後に入力した方を終点としたが、これに限らず、その逆も考えられる。さらに、始点あるいは終点を座標平面33e上で固定したまま、他方を移動させ、効果のパラメータ値の範囲を変化させることも考えられる。また、始点と終点をそれぞれ座標平面33e上で摺動操作することで、連続的に効果を変化させつつ、パラメータ値の範囲も変化させ続けることも考えられる。
始点や終点を画面上に表示している場合は、タッチし続けている間、その始点や終点が有効という仕組みでもよいし、たとえば、始点と終点の表示エリアの近くにそれぞれの解除ボタンを配置し、始点や終点のタッチ後、指をタッチパネルから放しても、対応する解除ボタン押すまで有効、という仕組みにしてもよい。あるいは、始点や終点をタッチパネル上でタッチして入力後、指をタッチパネルから放しても始点や終点は有効で、その後、たとえば、解除したい始点もしくは終点の上を小さい輪を描いたり、ダブルクリック的なタッチをした場合に解除するようにしてもよい。
なお本実施の形態では、図4に示すように座標平面33e上、終点と始点を結ぶ線(一点鎖線で表示)と、音響効果データの再生タイミングを示す小さい“●”を表示するようにしたが、現在位置が分かればよいので、これらを表示しないようにして、大きい“●”のみ表示するようにしてもよい。
音響効果データの生成は、再生する楽曲やリズムのテンポに合わせるが、再生開始と同時に始点から音響効果データの生成を開始してもよいし、再生開始を指示した直後に来る小節頭に合わせて、始点から音響効果データの生成を開始するようにしてもよい。あるいは、開始する小節位置をユーザが設定する仕組みでもよい。楽曲やリズムの再生の有無に拘わらず、有効なテンポ情報が(たとえデフォルトでも)あるとして、タッチパネル上への始点と終点の入力がそろった時点で音響効果生成を始点から開始するようにしてもよい。あるいは、始点と終点を結ぶ線の途中位置(中間位置など)から開始してもよい。
また本実施の形態では、始点と終点を結ぶ線上を等間隔に分割したが、これに限らず、たとえば、始点から始まり、線上を1/8→3/8→1/8→1/4→1/8と進む位置を順に特定し、終点からは折り返す、というように、等間隔でない位置を特定できるようにしてもよい。
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。