IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ローランド株式会社の特許一覧

<>
  • 特許-楽音制御装置、及び楽音制御方法 図1
  • 特許-楽音制御装置、及び楽音制御方法 図2
  • 特許-楽音制御装置、及び楽音制御方法 図3
  • 特許-楽音制御装置、及び楽音制御方法 図4
  • 特許-楽音制御装置、及び楽音制御方法 図5
  • 特許-楽音制御装置、及び楽音制御方法 図6
  • 特許-楽音制御装置、及び楽音制御方法 図7
  • 特許-楽音制御装置、及び楽音制御方法 図8
  • 特許-楽音制御装置、及び楽音制御方法 図9
  • 特許-楽音制御装置、及び楽音制御方法 図10
  • 特許-楽音制御装置、及び楽音制御方法 図11
  • 特許-楽音制御装置、及び楽音制御方法 図12
  • 特許-楽音制御装置、及び楽音制御方法 図13
  • 特許-楽音制御装置、及び楽音制御方法 図14
  • 特許-楽音制御装置、及び楽音制御方法 図15
  • 特許-楽音制御装置、及び楽音制御方法 図16
  • 特許-楽音制御装置、及び楽音制御方法 図17
  • 特許-楽音制御装置、及び楽音制御方法 図18
  • 特許-楽音制御装置、及び楽音制御方法 図19
  • 特許-楽音制御装置、及び楽音制御方法 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-07
(45)【発行日】2024-02-16
(54)【発明の名称】楽音制御装置、及び楽音制御方法
(51)【国際特許分類】
   G10H 1/053 20060101AFI20240208BHJP
【FI】
G10H1/053 C
【請求項の数】 10
(21)【出願番号】P 2019219986
(22)【出願日】2019-12-04
(65)【公開番号】P2021089375
(43)【公開日】2021-06-10
【審査請求日】2022-11-29
(73)【特許権者】
【識別番号】000116068
【氏名又は名称】ローランド株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】甲斐 修一
(72)【発明者】
【氏名】重野 幸雄
【審査官】中村 天真
(56)【参考文献】
【文献】特開2007-101914(JP,A)
【文献】特開2017-129605(JP,A)
【文献】特開平10-260683(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10H 1/00-7/12
(57)【特許請求の範囲】
【請求項1】
複数の操作子と、
前記複数の操作子によって設定された制御情報に従って、複数のステップの夫々における楽音を制御する処理を繰り返す楽音処理部と、
所定条件が満たされた場合に、前記楽音処理部による前記複数のステップのすべてに対する楽音を制御する処理が一巡した場合に、前記楽音処理部の動作を停止させる制御部と、
を含み、
前記制御部は、前記制御情報が示す値のステップ内の時間的変化を示す複数の変化パターンから選択された変化パターンを、前記複数のステップの夫々に設定する
楽音制御装置。
【請求項2】
複数の操作子と、
前記複数の操作子によって設定された制御情報に従って、複数のステップの夫々における楽音を制御する処理を繰り返す楽音処理部と、
所定条件が満たされた場合に、前記楽音処理部による前記複数のステップのすべてに対する楽音を制御する処理が一巡した場合に、前記楽音処理部の動作を停止させる制御部と、
を含み、
前記楽音処理部は、前記制御情報が個別に設定され、並列に動作可能な第1の楽音処理部と第2の楽音処理部とからなり、
前記制御部は、前記第1の楽音処理部と前記第2の楽音処理部との同期が設定されている状態で、リトリガ指示を受けた場合に、前記第1の楽音処理部及び前記第2の楽音処理部の夫々に設定された複数のステップの最初のステップの処理を、タイミングを合わせて開始させ
音制御装置。
【請求項3】
前記所定条件は、前記楽音処理部の動作を一巡で停止させる値が設定されるとともに、前記複数のステップのすべてに対する楽音の制御が一巡したことを示すフラグが設定されていることである
請求項1又は2に記載の楽音制御装置。
【請求項4】
前記制御情報が示す値は、前記複数のステップの夫々に設定された変化パターンに従って、最小値から最大値の間を変化する
請求項1又は2に記載の楽音制御装置。
【請求項5】
前記制御情報が示す値は、前記複数のステップの夫々について生成する楽音のピッチを制御する設定値を含む
請求項4に記載の楽音制御装置。
【請求項6】
前記制御情報が示す値は、前記複数のステップの夫々について生成する楽音のカットオフ周波数を制御する設定値を含む
請求項4又は5に記載の楽音制御装置。
【請求項7】
前記制御情報は、前記複数のステップの夫々について生成する楽音の音量を制御する設定値を含む
請求項から5のいずれか一項に記載の楽音制御装置。
【請求項8】
数の操作子と、
前記複数の操作子によって設定された制御情報に従って、複数のステップの夫々における楽音を制御する処理を繰り返す楽音処理部と、
前記制御情報が示す値のステップ内の時間的変化を示す複数の変化パターンから選択された変化パターンを、前記複数のステップの夫々に設定する制御部と、
を含む楽音制御装置。
【請求項9】
楽音制御装置が、複数の操作子によって設定された制御情報に従って、複数のステップの夫々における楽音を制御することと、
前記楽音制御装置が、所定条件が満たされた場合に、前記楽音を生成する処理が一巡した場合に、前記楽音を制御する処理を停止させることと
前記楽音制御装置が、前記制御情報が示す値のステップ内の時間的変化を示す複数の変化パターンから選択された変化パターンを、前記複数のステップの夫々に設定することと、
を含む楽音制御方法。
【請求項10】
楽音制御装置が、
複数の操作子によって設定された制御情報に従って、複数のステップの夫々における楽音を制御することと、
前記楽音制御装置が、前記制御情報が示す値のステップ内の時間的変化を示す複数の変化パターンから選択された変化パターンを、前記複数のステップの夫々に設定することと、
を含む楽音制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、楽音制御装置、及び楽音制御方法に関する。
【背景技術】
【0002】
従来、ステップシーケンサと呼ばれる自動演奏装置がある。ステップシーケンサは、複数の音素片を所定数のステップに割り当て、所定の再生順で所定長時間ずつ再生する動作を繰り返す(例えば、特許文献1)。各ステップで再生される楽音に効果が付与される場合もある。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2002-23751号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来技術では、最終ステップに対する動作が終了すると、処理を最初のステップから繰り返すだけであった。また、ステップ毎に効果の度合いを時間的に変化させることは考えられていなかった。
【0005】
本発明は、興趣に富んだ楽音を提供することのできる楽音制御装置及び楽音制御方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の実施例の一つは、複数の操作子と、
前記複数の操作子によって設定された制御情報に従って、複数のステップの夫々における楽音を制御する処理を繰り返す楽音処理部と、
所定条件が満たされた場合に、前記楽音処理部による前記複数のステップのすべてに対する楽音を制御する処理が一巡した場合に、前記楽音処理部の動作を停止させる制御部と、
を含む楽音制御装置である。
【0007】
楽音制御装置において、前記所定条件は、楽音処理部の動作を一巡で停止させる値が設定されるとともに、前記複数のステップのすべてに対する楽音を制御する処理が一巡したことを示すフラグが設定されていることであるように構成してもよい。
【0008】
楽音制御装置において、前記制御部は、前記制御情報が示す値のステップ内の時間的変化を示す複数の変化パターンから選択された変化パターンを、前記複数のステップの夫々に設定するように構成してもよい。
【0009】
楽音制御装置において、前記制御情報が示す値は、前記複数のステップの夫々に設定された変化パターンに従って、最小値から最大値の間を変化するように構成してもよい。
【0010】
楽音制御装置において、前記制御情報が示す値は、前記複数のステップの夫々について生成する楽音のピッチを制御する設定値を含むように構成してもよい。
【0011】
また、楽音制御装置において、前記制御情報が示す値は、前記複数のステップの夫々について生成する楽音のカットオフ周波数を制御する設定値を含むように構成してもよい。
【0012】
また、楽音制御装置において、前記制御情報は、前記複数のステップの夫々について生成する楽音の音量を制御する設定値を含むように構成してもよい。
【0013】
楽音制御装置において、前記楽音処理部は、前記制御情報が個別に設定され、並列に動作可能な第1の楽音処理部と第2の楽音処理部とからなり、
前記制御部は、前記第1の楽音処理部と前記第2の楽音処理部との同期が設定されている状態で、リトリガ指示を受けた場合に、前記第1の楽音処理部及び前記第2の楽音処理部の夫々に設定された複数のステップの最初のステップの処理を、タイミングを合わせて開始させるように構成してもよい。
【0014】
本発明の実施例の一つは、前記複数の操作子と、
前記複数の操作子によって設定された制御情報に従って、複数のステップの夫々における楽音を制御する処理を繰り返す楽音処理部と、
前記制御情報が示す値のステップ内の時間的変化を示す複数の変化パターンから選択された変化パターンを、前記複数のステップの夫々に設定する制御部と、
を含む楽音制御装置である。
【0015】
また、本発明の実施例の一つは、楽音制御装置が、複数の操作子によって設定された制御情報に従って、複数のステップの夫々における楽音を制御することと、
前記楽音制御装置が、所定条件が満たされた場合に、前記楽音を制御する処理が一巡した場合に、前記楽音を制御する処理を停止させることと
を含む楽音制御方法である。
【0016】
また。本発明の実施例の一つは、楽音制御装置が、複数の操作子によって設定された制御情報に従って、複数のステップの夫々における楽音を制御することと、
前記楽音制御装置が、前記制御情報が示す値のステップ内の時間的変化を示す複数の変化パターン(CURVE)から選択された変化パターンを、前記複数のステップの夫々に設定
することと、
を含む楽音制御方法。
【図面の簡単な説明】
【0017】
図1図1は、楽音制御装置の一例の全体構成を示す。
図2図2は、楽音制御装置が備える操作子のパネルを示す図である。
図3図3は、楽音制御装置が備える操作子のパネルを示す図である。
図4図4A及びBは、記憶装置に記憶される情報を示す。
図5図5は、DSPの処理の説明図である。
図6図6は、CPUの周期処理の例を示す。
図7図7は、シーケンサの信号生成処理の例を示す。
図8図8は、シーケンサの信号生成処理の例を示す。
図9図9は、信号生成処理における変数phaseの波形の例を示す。
図10図10は、シーケンサのステップ歩進処理の例を示す。
図11図11は、CURVEの設定値に基づく波形加工処理の例を示す。
図12図12は、信号生成処理における変数 waveの波形の例を示す。
図13図13は、PITCH制御の例を示す。
図14図14は、パラメータ MIN, MAX の作用を示す。
図15図15は、CUTOFF制御の例を示す。
図16図16は、LEVEL制御の例を示す。
図17図17は、シーケンサのON/OFF処理の例を示す。
図18図18は、シーケンサのSTART処理の例を示す。
図19図19は、RETRIGGER処理の例を示す。
図20図20は、シンセサイザへの適用例を示す。
【発明を実施するための形態】
【0018】
以下、図面を参照して、実施形態について説明する。実施形態の構成は例示であり、実施形態の構成に限定されない。
【0019】
図1は、実施形態に係る楽音制御装置10の構成例を示す。楽音制御装置10は、楽音制御装置10の全体の動作を制御するCPU(Central Processing Unit)11を有する
。CPU11は、バス1を介して、RAM(Random Access Memory)12、ROM(Read
Only Memory)13、DSP(Digital Signal Processor)14、操作子15、及び表示器16と接続されている。
【0020】
RAM12は、CPU11の作業領域、プログラムやデータの記憶領域として使用される。ROM13は、プログラムやデータの記憶領域として使用される。RAM12及びROM13は、記憶装置(記憶媒体)の一例である。
【0021】
楽音制御装置10は、楽器の演奏により生じた楽音や再生による楽音が入力される音声入力端子を有する。音声入力端子から入力される楽音信号は、A/D変換器17でディジタル信号に変換され、DSP14に入力される。DSP14は、楽音信号に効果を付与し、効果が付与された楽音信号を出力する。楽音信号は、D/A18にてアナログ信号に変換され、音声出力端子から出力される。出力された楽音信号はアンプで増幅されスピーカから放音される。
【0022】
操作子15は、楽音制御装置のユーザ(オペレータ)によって操作される、つまみ、ボタン、スイッチなどである。表示器16は、ディスプレイ、ランプ(LEDなど)などであり、情報を表示するのに使用される。
【0023】
図2及び図3は、楽音制御装置10が備える操作子のパネルを示す図である。パネルは、複数の操作子15と表示器16とを含む。本実施形態では、二つの独立したステップシーケンサ(SEQ1、SEQ2)の夫々が、独立して(並列に)動作する。このため、パネルは、SEQ1用のパネルP1と、SEQ2用のパネルP2とを含む。図2では、パネルP1及びP2は模式的にタブとして示されている。両者は同じ構成を有する。タブ部に
設けられたシーケンサ選択ボタン(SEQ1、SEQ2)を操作することによりパネルP1またはP2を選択し、対応するステップシーケンサの設定を行うことができる。
【0024】
図2において、パネルP1の上側には、SEQ1とSEQ2とで共通の操作子が示されている。テンポの設定用の操作子として、BPMを調整するつまみと、設定したBPMを示す表示器が例示されている。その右側には、SEQ1及びSEQ2のそれぞれのオンオフボタンが設けられている。オンオフボタンは自照式のボタンであり、オンの場合に点灯する。その右側には、リトリガ(RETRIGGER)ボタンが設けられている。同期(SYNC)が
オンの状態でリトリガボタンが押されると、リトリガボタンの操作に同期してステップシーケンサの頭出しが行われる。SEQ1とSEQ2の双方において同期(SYNC)がオンの状態であれば、SEQ1とSEQ2の頭出しが同時に行われ、結果としてSEQ1とSEQ2の頭出しが同期される。
【0025】
パネルP1は、中央に、表示器16としてのLCDディスプレイ16aを有している。ディスプレイ16aの上側には、ステップを指定するための16個のボタン(ステップ選択ボタン)が一列に設けられている。本実施形態では、16を最大数として所定数のステップを選択することができる。各ボタンを押すことで、対応するステップを指定でき、ステップに対するパラメータ設定を行うことができる。
【0026】
また、パネルP1は、ステップ毎に、7つのパラメータ(CURVE、PITCH (MIN)、PITCH (MAX)、CUTOFF (MIN)、CUTOFF (MAX)、LEVEL (MIN)、LEVEL (MAX))を選択するためのパ
ラメータ選択ボタンを有する。パラメータ選択ボタンのそれぞれは、自照式のスイッチであり、押されると点灯し、そのパラメータが選択されていることを示す。
【0027】
具体的には、パネルP1の、ディスプレイの左側には、カーブ(CURVE)を設定するボ
タンが設けられている。カーブは、対応するステップにおいて付与される効果の度合いの時間的変化(エンベロープ)の態様を示す。また、カーブのボタンの下には、ピッチ(PITCH)の最大値(MAX)及び最小値(MIN)を選択するボタンと、カットオフ周波数を示す
カットオフ(CUTOFF)の最大値(MAX)及び最小値(MIN)を選択するボタンと、音量を示すレベル(LEVEL)の最大値(MAX)及び最小値(MIN)を選択するボタンとが設けられて
いる。
【0028】
ディスプレイ16aの下側には、ステップ数(LENGTH)を設定するつまみと、設定されたステップ数を表示する表示器とが設けられている。その右側には、1ステップの進行速度を定める音符(NOTE)を選択するためのボタンと、設定された音符が四分音符、八分音符、十六音符のいずれであるかを示す3つのLEDがあり、選択された音符に対応するLEDが点灯する。
【0029】
また、ワンショット(ONE-SHOT)及び同期(SYNC)の夫々のオンオフを示す自照式のボタンが設けられ、オンのときにボタンが備えるLEDが点灯する。同期(SYNC)のボタンは、オンオフによって、リトリガボタンの操作に同期する(オン)か、同期しない(オフ)かの状態を示す。
【0030】
ディスプレイ16aの右側には、(VALUE)を調整するつまみが設けられている。シ
ーケンサ選択ボタンでシーケンサを選択し、ステップ選択ボタンでステップを選択し、パラメータ選択ボタンでパラメータを選択する。すると、つまみが選択されたパラメータを増減するつまみとして動作する。ユーザはVALUEのつまみを用いて各パラメータの設定値
を定めることができる。
【0031】
ここに、ワンショットは、シーケンサの動作モードの一つである。ワンショットがオフ
の場合には、所定数のステップの最後のステップに対する処理が終了すると、処理が最初のステップに戻る。このようなループが繰り返される。これに対し、ワンショットがオンの場合では、所定数のステップのすべてに対する処理が一巡した場合にシーケンサが動作を停止する。このとき、楽音制御装置10の動作としては、シーケンサの動作停止時の動作が行われる。動作停止時にはそれまでステップシーケンサによってなされていたピッチ制御、カットオフ制御、レベル制御が停止され、手動の設定値に従って制御が行われるようになる。
【0032】
図3Aは、ピッチの制御元を、SEQ1、SEQ2、ユーザ(手動)から選択するための操作子を示す。操作子は、SEQ1及びSEQ2の夫々を選択する自照式のボタンと、ピッチを変更するつまみとからなる。SEQ1又はSEQ2のボタンがオンにされると、ピッチは、押されたボタンに対応するシーケンサについて設定されたピッチに係るパラメータを用いて、楽音(音声)に対する効果付与を行う。SEQ1及びSEQ2のボタンがオフの場合では、つまみの操作によって、手動でピッチシフト量を制御できる。このつまみを用いて、+/-2オクターブの範囲でピッチシフト量を設定することができる (+/-2オクターブは+/-24半音である)。
【0033】
図3Bは、カットオフ周波数の制御元を、SEQ1、SEQ2、及び手動から選択するための操作子を示す。操作子は、SEQ1及びSEQ2の夫々を選択するボタンと、カットオフ周波数を変更するつまみとからなる。SEQ1又はSEQ2のボタンが押されると、押されたボタンに対応するシーケンサについて設定されたカットオフ周波数に係るパラメータを用いて、楽音(音声)に対する効果付与を行う。これに対し、SEQ1及びSEQ2のボタンがオフの場合では、つまみの操作によって、手動でカットオフ周波数を制御できる。
【0034】
図3Cは、音量(レベル)の制御元をSEQ1、SEQ2、及びユーザから選択するための操作子を示す。操作子は、SEQ1及びSEQ2の夫々を選択するボタンと、レベルを変更するつまみとからなる。ピッチやカットオフ周波数と同様に、SEQ1又はSEQ2のボタンがオンのとき、押されたボタンに対応するシーケンサについて設定されたレベルに係るパラメータを用いて、楽音(音声)に対する効果付与が行われる。双方のボタンがオフの場合、つまみの操作によって手動で音量(レベル)を制御できる。
【0035】
図4A及びBは、記憶装置(メモリ:RAM12)に記憶される、楽音制御装置10の制御情報を示す。図4A及びBの各表において、 大文字で示される項目は、パネル操作
により設定される値(パラメータ)を示し、小文字で示される項目は、CPU11の処理に使われる変数である。以降のフローチャートでも同様である。これらのパラメータ及び変数(制御情報)は、パネルを用いた設定に応じて、CPU11がRAM12に記憶する。
【0036】
パネル操作により設定される値は、図2及び3に示した操作子を操作することにより設定される値である。CPU処理に使われる変数としては、以下のものがある。
【0037】
変数“control.pitch”は、楽音制御装置10によるピッチ制御の値である。この値に
応じてDSP14の ピッチに関する効果が設定される。変数“control.cutoff”は、楽
音制御装置10による カットオフ制御の値である。 この値に応じてDSP14のカットオフに関する効果が設定される。変数“control.level”は、楽音制御装置10による レベル制御の値である。この値に応じてDSP14のレベルに関する効果が設定される。
【0038】
変数“seq1.count”は、ステップの位置を示すカウンタである。例えば、LENGTH = 4であれば、以下のようにカウントする。
0, 1, 2, 3, 0, 1, 2, 3, ...
【0039】
変数“seq1.phase”は、1ステップの区間において0.0から1.0へ単調増加する位相値である。変数“seq1.wave”は、“seq1.phase”に対してCURVEに基づく波形加工を施した後の値である。変数“seq1.firstloop”は、初回のループか否かを示すフラグであり、初回のループであれば1、そうでなければ0を示す。ここに、ループとは LENGTH で指定される一連のステップを一巡することである。
【0040】
図5は、DSP14の処理の説明図である。図5において、DSP14は、ピッチシフト(PITCH SHIFT)141、フィルタ(FILTER)142、アンプ(AMP)143として、
A/D変換器17から入力される楽音の信号に対する効果の付与処理を行う。
【0041】
ピッチシフト141は、指定された値に応じて音声信号のピッチを変化させる処理 (ピッチシフト処理)を行う。ピッチシフト141では、CPU11によって設定される変数 “control.pitch”を参照し、この値に応じた特性で効果を付与する。
【0042】
フィルタ142は、例えば、楽音信号の周波数特性を変えるローパスフィルタである。フィルタ142は、指定された値(変数“control.cutoff”)に応じたカットオフ周波数に基づき、カットオフ周波数以下の周波数の成分を通過させることで音声信号の音色に変化を与える処理を行う。ローパスフィルタに代えて、ハイパスフィルタ、バンドパスフィルタ等を適用してもよい。AMP143は、指定された値(変数“control.level”)に
応じて楽音信号の振幅を変える処理である。
【0043】
図6は、CPU11によって実行される、周期処理の例を示すフローチャートである。周期処理は、タイマによって1msec周期で起動及び実行される。周期は1msecより長くても短くてもよい。周期処理によって、SEQ1及びSEQ2の制御信号生成と 、DSP
14の制御値の設定とが行われる。
【0044】
具体的には、ステップS01では、SEQ1に対する信号生成処理のサブルーチンを、CPU11は実行する。ステップS02では、CPU11は、SEQ2に対する信号生成処理のサブルーチンを実行する。ステップS03では、CPU11は、PITCH(ピッチ)制御のサブルーチンを実行する。ステップS04では、CPU11は、CUTOFF(カットオフ)制御のサブルーチンを実行する。ステップS05では、CPU11は、LEVEL(レベル)制御のサブルーチンを実行する。
【0045】
図7及び図8は、SEQ1の信号生成処理を示す。SEQ2の信号生成処理はSEQ1の信号生成処理と同じであるので、代表してSEQ1の信号生成処理について説明する。信号生成処理は、シーケンサ(SEQ1、SEQ2)のパラメータの設定に応じて、時間経過に伴い変化する制御信号 (seq1.wave)を生成する処理であり、CPU11の周期処理から呼ばれるサブルーチンである。
【0046】
図9は、信号生成処理における変数“phase(フェーズ)”の波形を示す。フェーズの
波形は、値が0.0から1.0になるまでの期間を1ステップとするノコギリ波であり、値が1.0に達する毎に、カウント値(count)がインクリメント(1加算)される。カ
ウント値の初期値は0であり、1,2,3,4・・・と増加する。
【0047】
図7に示すステップS001では、CPU11は、rate(レート)計算を行う。rate計算は、パラメータ“BPM”及び SEQ1の“NOTE”の設定値に基づいて計算され
る。rate計算は、上述した変数“phase”の、CPU11の周期処理1回分の増分を計算
する処理であり。以下の式を用いて計算される。
rate = BPM/ 60 * SEQ1.NOTE / 1000
【0048】
ここに、BPM(Beat Per Minute)はテンポを示し、1分間の拍数 (4分音符の数)を表す。BPM/60の計算により1秒当たりの拍数が計算される。1000による除算は、1msec周期の、すなわち1秒当たり1000回の周期処理が行われることに基づく。rate計算は、例えば、BPM=120であり、NOTE=1.0(4分音符)であれば、rate = 0.002となる。なお、本実施形態では、信号生成処理のサブルーチンが500回呼ばれると、変数“phase”の値(フェーズ値)が0.0から1.0まで増加する。
【0049】
ステップS002では、CPU11は、SEQ1のフェーズ値を、現在のフェーズ値にS001において算出したrateの値(レート値)を加えた数に変更する。これによって、SEQ1のフェーズの値がレート値だけ増加する。
【0050】
ステップS003では、CPU11は、関数“floor(seq1.phase)”の値が1.0以上
かを判定する。ここに、floor(x)は、x以下の最大整数を得る関数であり、例えば、floor(1.1) の値は1.0となる。ステップS003の処理は、フェーズ値が最大値である1
.0に達しているかを判定する処理である。floor(seq1.phase)の値が1.0以上の場合
は(S003のYES)、処理がS00に進み、そうでない場合には(S003のNO)、処理がS005に進む。
【0051】
ステップS004では、CPU11は、SEQ1に関するSTEP歩進処理のサブルーチンを実行する。歩進処理は、STEPの値(ステップ値)を進める処理、及びシーケンサのステップ数(LENGTH)の設定値に応じて ステップ値をリセットする処理である。
【0052】
図10は、STEP歩進処理の一例を示すフローチャートである。図10は、SEQ1に関する歩進処理を示すが、SEQ2についても同じ処理が行われる。ステップS101では、CPU11は、SEQ1のカウント値“seq1.count”の値をインクリメントする。これにより、カウント値が1加算された値になる。
【0053】
ステップS102では、CPU11は、現在のカウント値がSEQ1のステップ数(LENGTH)の設定値に達しているかを判定する。カウント値がLENGTHの設定値に達していると判定される場合は(S102のYES)、処理がステップS103に進み、そうでない場合には(S102のNO)、歩進処理が終了する(リターン)。
【0054】
ステップS103では、CPU11は、現在のカウント値を0に設定する。ステップS104では、CPU11は、ワンショットの制御用フラグである変数“seq1.firstloop”の値を0に設定する。変数“seq1.firstloop”は、LENGTH値のすべてのステップが一巡すると0となる値である。変数“seq1.firstloop”の値は、リトリガがかかったとき、シーケンサがオンになったときに1に設定される。ステップS104の処理が終了すると、歩進処理が終了する。
【0055】
図7に戻って、ステップS005では、CPU11は、フェーズ値を、現在のフェーズ値からfloor(seq1.phase)の値を減じた値に設定する。ステップS006では、現在のス
テップについて設定されたカーブ(CURVE)の種類を判定する。
【0056】
図11は、カーブ(エンベロープ:波形の時間的な変化パターン)の種類と、波形の時間的変化を示す。複数種類のカーブに対して、CURVEの値(カーブ値)が割り当てられて
いる。図11に示す例では、5種類のカーブに対して、カーブ値0~4が割り当てられている。カーブ値=0の場合、1ステップ間で、値が1.0で変化しない。カーブ値=1の場合、1ステップ間で、値が0.0から1.0にリニアに増加する。カーブ値=1の場合
、1ステップ間で、値が1.0から0.0にリニアに減少する。カーブ値=3の場合、1ステップ間で、値が0.0から1.0に曲線(放物線)を描いて増加する。カーブ値=4の場合、1ステップ間で、値が1.0から0.0に曲線(放物線)を描いて減少する。変化パターンの波形形状は、図11の例に限定されず、種類の数は5以上でも5より少なくてもよい。
【0057】
ステップS00では、パネルP1を用いて設定された、カーブ値が0~4のいずれであるかをCPU11は判定する。カーブ値が0であれば、CPU11は、波形がカーブ値0の波形となる処理を行う(ステップS007)。カーブ値が1であれば、CPU11は、波形がカーブ値1の波形となる処理を行う(ステップS008)。カーブ値が2であれば、CPU11は、波形がカーブ値2の波形となる処理を行う(ステップS009)。カーブ値が3であれば、CPU11は、波形がカーブ値3の波形となる処理を行う(ステップS010)。カーブ値が4であれば、CPU11は、波形がカーブ値4の波形となる処理を行う(ステップS011)。
【0058】
図12は、信号生成処理における変数 waveの波形(制御信号波形)の例を示す。図1
2の例では、LENGTHで設定されたステップ0~4の夫々に対して、カーブ値が0,1,1,2,4と設定されている場合における制御信号waveの波形を図示したものである。このように各ステップにカーブの設定値を設けることで、複雑な波形変化(エンベロープ)を生成することができる。
【0059】
図13は、ピッチ制御(ステップS03)の処理例を示すフローチャートである。ピッチ制御は、信号生成処理により得られる制御信号と以下のパラメータ及び変数を用いて行われる。
- SOURCE.PITCH
- MANUAL.PITCH
- SEQ1.STEP[count].PITCH.MIN, SEQ1.STEP[count].PITCH.MAX
- SEQ2.STEP[count].PITCH.MIN, SEQ2.STEP[count].PITCH.MAX
- SEQ1.ONOFF
- SEQ1.ONESHOT
- SEQ2.ONOFF
- SEQ2.ONESHOT
- seq1.firstloop
- seq2.firstloop
【0060】
ステップS111では、ピッチ制御の種類を示す、“SOURCE.PITCH”(ソースピッチ値)を判定する。ソースピッチ値は、図3Aに示したSEQ1、SEQ2のボタンがいずれも押されていない場合には “OFF”となり、SEQ1のボタンが押されている場合は “SEQ1”となり、SEQ2のボタンが押されている場合には“SEQ2”となる。
【0061】
ソースピッチ値が“OFF”と判定される場合には、処理がステップS112に進み、ソースピッチ値が“SEQ1”と判定される場合には、処理がステップS113に進み、ソースピッチ値が“SEQ2”と判定される場合には、処理がステップS116に進む。
【0062】
ステップS112では、CPU11は、変数“control.pitch”の値を、つまみを用い
て設定された“MANUAL.PITCH”の値に設定し、ピッチ制御処理を終了する。
【0063】
ステップS113では、SEQ1が有効か、の判定をCPU11は行う。S113の判定は、以下の条件を満たす場合には有効と判定され、それ以外は無効と判定される。
SEQ1.ONOFF == 1&&(SEQ1.ONESHOT ==0 || seq1.firstloop == 1)
【0064】
すなわち、変数“SEQ1.ONOFF”の値が1であって、かつ変数“SEQ1.ONESHOT”の値が“0”もしくは変数“seq1.firstloop”の値が“1”であるかをCPU11は判定する。ここに、変数“SEQ1.ONESHOT”は、ワンショットのオンオフを示す変数であり、値が0であればワンショットはオフであり、値が1であればワンショットがオンである。変数“seq1.firstloop”は、上述したように、SEQ1の全ステップが一巡した場合に“0”になる変数である(図10のS104参照)。
【0065】
ステップS113において、条件が満たされて有効と判定される場合は処理がS114に進み、条件が満たされず無効と判定される場合は処理がS115に進む。ステップS115では、ステップS112と同様の処理を行う。
【0066】
ステップS114では、CPU11は、変数“control.pitch”の値を、以下のip関数
から求まる値に設定する。
ip(seq1.wave,SEQ1.STEP[count].PITCH.MIN,SEQ1.STEP[count].PITCH.MAX)
ここに、ip(wave,min,max) 関数は、最小値minから最大値max の間を波形wave の値(0.0
~1.0) で補間した値を得るための関数である。
ip(wave,min,max) := wave * max + (1.0 - wave) * min
【0067】
図14は、パラメータMIN、MAXの作用を説明する図である。波形waveが、図14の上段に示すような、0.0から1.0へ直線状に増加する波形を示すと仮定する。このとき、最小値MINが20に設定されるとともに、最大値MAXが80に設定されていると、波形の最小値が0.0から20に設定され、最大値が1.0から80に設定される。最小値と最大値との間の波形は、waveに依存するため直線状となる。
【0068】
ステップS114では、CPU11は、SEQ1の制御信号waveの波形(seq1.wave)
、現在のステップについて設定されたピッチの最小値(SEQ1.STEP[count].PITCH.MIN)と、ピッチの最大値(SEQ1.STEP[count].PITCH.MAX)についての値をip関数により求め、その値を変数“control.pitch”の値に設定する。
【0069】
ステップS116、S117、S118の処理は、対象がSEQ1でなくSEQ2である点を除き、ステップS113、S114、S115の処理と同じであるため、説明を省略する。S116の有効無効の条件も、対象がSEQ1でなくSEQ2である点を除き、S113の有効無効の条件と同じである。
【0070】
CPU11は、ピッチ制御で得られた変数“control.pitch”の値をDSP14の制御
値としてRAM12に記憶する。図5に示すピッチシフト141において、DSP14は記憶された変数“control.pitch”の値を使用する。
【0071】
変数“SEQ1.ONESHOT”が“0(オフ)”であれば、ピッチ制御はSEQ1の設定値に従って行われる。変数“SEQ1.ONESHOT”が“1(オン)”の場合、変数“seq1.firstloop”の値が“0”であれば、ピッチ制御はSEQ1の設定値に従って行われる。変数“SEQ1.ONESHOT”が“1(オン)”であり、且つ変数“seq1.firstloop”の値が“0”の場合、ピッチ制御は手動設定の値に従う。これは、SEQ1の動作が停止したことを意味する。このような扱いは、SEQ2についても同様である。また、カットオフ制御及びレベル制御でも同様の扱いとなる。
【0072】
図15は、カットオフ制御(ステップS04)の処理例を示すフローチャートである。カットオフ制御は、信号生成処理により得られる制御信号waveと以下のパラメータ及び変数等を用いて行われる。
- SOURCE.CUTOFF
- MANUAL.CUTOFF
- SEQ1.STEP[count].CUTOFF.MIN, SEQ1.STEP[count].CUTOFF.MAX
- SEQ2.STEP[count].CUTOFF.MIN, SEQ2.STEP[count].CUTOFF.MAX
- SEQ1.ONOFF
- SEQ1.ONESHOT
- SEQ2.ONOFF
- SEQ2.ONESHOT
- seq1.firstloop
- seq2.firstloop
【0073】
ステップS121では、カットオフ制御の種類を示す、“SOURCE.CUTOFF”(ソースカ
ットオフ値)を判定する。ソースカットオフ値は、図3Bに示したSEQ1、SEQ2のボタンがいずれも押されていない場合には“OFF”となり、SEQ1のボタンが押されている場合は“SEQ1”となり、SEQ2のボタンが押されている場合には“SEQ2”となる。
【0074】
ソースカットオフ値が“OFF”と判定される場合には、処理がステップS122に進み、ソースカットオフ値が“SEQ1”と判定される場合には、処理がステップS123に進み、ソースカットオフ値が“SEQ2”と判定される場合には、処理がステップS126に進む。
【0075】
ステップS122では、CPU11は、変数“control.cutoff”の値を、つまみを用いて設定された“MANUAL.CUTOFF”の値に設定し、カットオフ制御処理を終了する。
【0076】
ステップS123では、SEQ1が有効か、の判定をCPU11は行う。S123の判定に用いる条件は、ステップS113で用いた条件と同じである。有効と判定される場合は処理がS124に進み、無効と判定される場合は処理がS125に進む。ステップS125では、ステップS122と同様の処理をCPU11は行う。
【0077】
ステップS124では、CPU11は、変数“control.cutoff”の値を、以下のip関数から求まる値に設定する。
ip(seq1.wave,SEQ1.STEP[count].CUTOFF.MIN,SEQ1.STEP[count].CUTOFF.MAX)
【0078】
すなわち、ステップS124では、CPU11は、SEQ1の制御信号waveの波形(seq1.wave)、現在のステップについて設定されたカットオフの最小値(SEQ1.STEP[count].
CUTOFF.MIN)と、カットオフの最大値(SEQ1.STEP[count]. CUTOFF.MAX)についての
ip関数により求め、その値を変数“control.cutoff”の値に設定する。
【0079】
ステップS126、S127、S128の処理は、対象がSEQ1でなくSEQ2である点を除き、ステップS123、S124、S125の処理と同じであるため、説明を省略する。S126の有効無効の条件も、対象がSEQ1でなくSEQ2である点を除き、S123の有効無効の条件と同じである。
【0080】
CPU11は、カットオフ制御で得られた変数“control.cutoff”の値をDSP14の制御値としてRAM12に記憶する。図5に示すフィルタ142の処理において、DSP14は記憶された変数“control.cutoff”の値を使用する。例えば、フィルタが備える乗算器の係数を変数“control.cutoff”に基づいて変更することで、フィルタ142のカットオフ周波数を変更することができる。これによって、入力音(原音)を、明るい音やこもった音等に変更することができる。
【0081】
図16は、レベル制御(ステップS0)の処理例を示すフローチャートである。レベル制御は、信号生成処理により得られる制御信号waveと以下のパラメータ及び変数を用いて行われる。
- SOURCE.LEVEL
- MANUAL.LEVEL
- SEQ1.STEP[count].LEVEL.MIN, SEQ1.STEP[count].LEVEL.MAX
- SEQ2.STEP[count].LEVEL.MIN, SEQ2.STEP[count].LEVEL.MAX
- SEQ1.ONOFF
- SEQ1.ONESHOT
- SEQ2.ONOFF
- SEQ2.ONESHOT
- seq1.firstloop
- seq2.firstloop
【0082】
ステップS131では、レベル制御の種類を示す、“SOURCE.LEVEL”(ソースレベル値)を判定する。ソースレベル値は、図3Cに示したSEQ1、SEQ2のボタンがいずれも押されていない場合には“OFF”となり、SEQ1のボタンが押されている場合は“SEQ1”となり、SEQ2のボタンが押されている場合には“SEQ2”となる。
【0083】
ソースレベル値が“OFF”と判定される場合には、処理がステップS132に進み、ソースレベル値が“SEQ1”と判定される場合には、処理がステップS133に進み、ソースレベル値が“SEQ2”と判定される場合には、処理がステップS136に進む。
【0084】
ステップS132では、CPU11は、変数“control.level”の値を、つまみを用い
て設定された“MANUAL.LEVEL”の値に設定し、レベル制御処理を終了する。
【0085】
ステップS133では、SEQ1が有効か、の判定をCPU11は行う。S133の判定に用いる条件は、ステップS113で用いた条件と同じである。有効と判定される場合は処理がS134に進み、無効と判定される場合は処理がS135に進む。ステップS135では、ステップS132と同様の処理をCPU11は行う。
【0086】
ステップS134では、CPU11は、変数“control.level”の値を、以下のip関数
から求まる値に設定する。
ip(seq1.wave,SEQ1.STEP[count].LEVEL.MIN,SEQ1.STEP[count]. LEVEL.MAX)
【0087】
すなわち、ステップS124では、CPU11は、SEQ1の制御信号waveの波形(seq1.wave)、現在のステップについて設定されたレベルの最小値(SEQ1.STEP[count].LEVEL.MIN)と、レベルの最大値(SEQ1.STEP[count]. LEVEL.MAX)についての値をip関数により求め、その値を変数“control.level”の値に設定する。
【0088】
ステップS136、S137、S138の処理は、対象がSEQ1でなくSEQ2である点を除き、ステップS133、S134、S135の処理と同じであるため、説明を省略する。S136の有効無効の条件も、対象がSEQ1でなくSEQ2である点を除き、S133の有効無効の条件と同じである。
【0089】
CPU11は、レベル制御で得られた変数“control.level”の値をDSP14の制御
値としてRAM12に記憶する。図5に示すAMP143の処理において、DSP14は記憶された変数“control.level”の値を使用する。これによって、音量を変更すること
ができる。
【0090】
図17は、シーケンサのオンオフ処理の例を示すフローチャートである。オンオフ処理は、操作子15に含まれる、シーケンサのオンオフボタン(図2)の操作に応じて開始される。オンオフ処理は、SEQ1とSEQ2とで同じ処理であり、図17には、SEQ1についての処理を例示している。
【0091】
ステップS161では、CPU11は、SEQ1のオンオフボタン(図2)の操作に応じて、SEQ1のオンオフを司る変数“SEQ1.ONOFF”の設定を行う。変数“SEQ1.ONOFF”は、対応するシーケンサのオン“1”とオフ“0”の一方を示す。
【0092】
ステップS162では、CPU11は、変数“SEQ1.ONOFF”の値がオンを示す“1”であるかを判定する。値が“0(オフ)”と判定する場合には(162のNO)、オンオフ処理が終了する。これに対し、値が“1(オン)”と判定する場合には、処理がステップS163に進む。ステップS163では、CPUは、SEQ1のスタート処理を行う。スタート処理が終了すると、オンオフ処理が終了する。
【0093】
図18は、SEQ1のスタート処理の例を示すフローチャートである。スタート処理はSEQ1とSEQ2とで同じ処理であり、図18には、SEQ1についての処理を例示している。
【0094】
ステップS141において、CPU11は、SEQ1のフェーズを示す変数“seq1.phase”の値を初期値の0.0に設定する。ステップS142では、CPU11は、SEQ1のステップの段数を示す変数“seq1.count”の値を初期値の0に設定する。ステップS143では、CPU11は、変数“seq1.firstloop”の値を1に設定する。その後、スタート処理が終了する。
【0095】
図19は、リトリガ処理の例を示すフローチャートである。リトリガ処理は、操作子15に含まれるリトリガボタン(図2)の操作に応じて開始される。変数“SEQ1.SYNC”及
び“SEQ2.SYNC”の値は、図2に示した同期(SYNC)ボタンがオンの場合に“1”となり
、同期ボタンがオフの場合に“0”となる。
【0096】
ステップS151では、CPU11は、変数“SEQ1.SYNC”の値が“1(オン)”か否
かを判定する。値が“1(オン)”であると判定される場合には、処理がステップS152に進み、そうでない場合には、処理がステップS153に進む。
【0097】
ステップS152では、CPU11は、SEQ1のスタート処理(図18)を実行し、処理をステップS153に進める。ステップS153では、CPU11は、変数“SEQ2.SYNC”の値が“1(オン)”か否かを判定する。値が“1(オン)”であると判定される
場合には、処理がステップS154に進み、そうでない場合には、リトリガ処理が終了する。ステップS154では、SEQ2のスタート処理が実行され、その後、リトリガ処理が終了する。
【0098】
なお、リトリガ処理は、変数“SEQ1.SYNC”及び“SEQ1.SYNC”を共通の変数にして、“SYNC”オンの場合に、SEQ1及びSEQ2のスタート処理が連続して行われるようにしてもよい。
【0099】
以上説明した楽音制御装置10では、シーケンサ(SEQ1(第1の楽音処理部)及びSEQ2(第2の楽音処理部)の夫々)が、DSP14が制御情報(“control.pitch”など)に従って、複数のステップの夫々における楽音を制御する処理を繰り返す。但し、所
定条件(oneshot“1”且つfirstloop“0”)が満たされた場合に、シーケンサに設定さ
れた複数のステップのすべてに対する楽音を制御する処理が一巡した場合に、シーケンサの動作をCPU11は停止させる。上記した条件oneshot“1”且つfirstloop“0”は、
「楽音処理部の動作を一巡で停止させる値が設定されるとともに、前記複数のステップのすべてに対する楽音を制御する処理が一巡したことを示すフラグが設定されていること」の一例である。シーケンサが停止した場合、手動設定に従った楽音の生成(ピッチ、カットオフ周波数、音量の制御)が行われる。
【0100】
このような楽音制御装置10によれば、以下のような利点がある。すなわち、ワンショットをオンにすると、シーケンサ(SEQ1、SEQ2)に設定されたステップのすべての処理が終了した時点で、シーケンサが処理を最初のステップに戻すことなく動作を停止する。これによって、入力音(原音)に対するピッチ制御、カットオフ制御及びレベル制御が手動の設定値に従って行われる。これによって、今までにない、音楽的な効果を得ることができる。
【0101】
また、楽音制御装置10によれば、複数種類のカーブとして、1ステップにおける複数種類の制御信号波形の変化パターン(制御情報が示す値のステップ内の時間的変化を示す複数の変化パターン)が用意され、シーケンサに設定するステップ毎に、変化パターンを決定することができる。これによって、制御信号waveを全ステップの変化パターンの組み合わせで生成することができ、興趣に富んだシーケンサの自動演奏音を生成することができる。
【0102】
制御情報が示す値は、複数のステップの夫々について生成する楽音のピッチを制御する設定値(control.picth)、複数のステップの夫々について生成する楽音のカットオフ周
波数を制御する設定値(control.cutoff)、複数のステップの夫々について生成する楽音の音量を制御する設定値(control.level)を含むことができる。これによって、ピッチ
、カットオフ周波数、音量の1ステップ内における時間変化を個別に制御可能となる。
【0103】
また、楽音制御装置10では、シーケンサ(楽音処理部)は、制御情報が個別に設定され、並列に動作可能なSEQ1(第1の楽音処理部)とSEQ2(第2の楽音処理部)とからなる。そして、CPU11(制御部)は、SEQ1とSEQ2との同期が設定されている状態(同期オン)で、リトリガボタンが押され、リトリガ指示を受けた場合に、SEQ1及びSEQ2の夫々に設定された複数のステップの最初のステップの処理を、タイミングを合わせて(同時に)開始させる。これによって、ステップ数の異なるSEQ1とSEQ2とが並列に動作している場合に、適宜のタイミングで、動作を最初から同時に開始させることができる。
【0104】
図1に示した楽音制御装置10におけるCPU11の処理は、シンセサイザにも適用可能である。図20は、シンセサイザ20に、CPU11が生成する
変数“control.pitch”、“control.cutoff”、“control.level”を適用した例を示す。シンセサイザ20は、演奏操作子である鍵盤(KEYBOARD)21を有し、鍵盤の各キー(鍵)のノートオン(note on:押鍵)、ノートオフ(note off:離鍵)を示す信号が、オシレ
ータ(OSC)22に入力される。
【0105】
また、押されたキーに応じたピッチ情報(pitch)が鍵盤21から出力される。ピッチ
情報は、0~127の値で、1半音刻みの音高を表す値を示す。加算器27は、鍵盤21からのピッチ情報に、変数“control.pitch”の値を加算し、OSC22に入力する。
【0106】
OSC22は、楽音生成器であり、以下の動作をする。
- note on/off イベント入力の受け付け
- note on イベントを受けると所定の波形で生成した楽音の出力を開始
- note off イベントを受けると楽音の出力を停止 (音が出なくなる)
- pitch 情報入力
- 入力したpitch情報を、楽音生成器が生成する信号の周波数に反映
【0107】
フィルタ(FILTER)23、アンプ(AMP)24は、フィルタ142、アンプ143と同
様のものであり、変数“control.cutoff”を用いてカットオフ周波数が制御され、変
“control.level”を用いて音量が制御される。
【0108】
シンセサイザ20は、ピアノの同様の鍵盤21を有するものを例示したが、OSC22が生成する楽音はピアノの模擬音に限定されず、ギターシンセサイザの楽音であってもよい。実施形態にて示した構成は、目的を逸脱しない範囲で適宜組み合わせることができる。
【符号の説明】
【0109】
10・・・楽音制御装置
11・・・CPU
12・・・RAM
13・・・ROM
14・・・DSP
15・・・操作子
16・・・表示器
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20