首页 / 专利库 / 软件 / 软件采样器 / Device and method for musical sound generation

Device and method for musical sound generation

阅读:670发布:2020-08-26

专利汇可以提供Device and method for musical sound generation专利检索,专利查询,专利分析的服务。并且PROBLEM TO BE SOLVED: To perform musical sound generation matching the purpose of a user by providing a mode wherein a digital timbre filtering process, pitch giving process, or process for giving scratch effect is performed. SOLUTION: A CPU 101 controls the operation of the whole sampler. In normal mode, a specific number of musical sounds are generated by reading respective waveform data out principally by hardware when the reproduction of a specific number of waveform data is indicated. In filter reproduction mode, the number of generated musical sounds is decreased below the number of generated musical sounds in the normal mode and the generated musical sounds are outputted after the digital filtering process principally by software instead. Thus, the device has the normal mode, a sampling mode, the filter reproduction mode, a pitch reproduction mode, a scratch reproduction mode, an external input filter mode, and an external input scratch mode, and the respective modes are switched with a mode changeover switch on a panel SW 109.,下面是Device and method for musical sound generation专利的具体信息内容。

【特許請求の範囲】
  • 【請求項1】処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、 所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、 該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、 動作モードとして、ノーマルモードまたはフィルタ再生モードをユーザに選択させるためのモード切り替え手段と、 ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、フィルタ再生モードにおいては、楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、生成する楽音に対して主としてソフトウェアによるディジタル音色フィルタ処理を施して出力する再生手段とを備えたことを特徴とする楽音発生装置。
  • 【請求項2】処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、 所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、 該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、 動作モードとして、ノーマルモードまたはピッチ付き再生モードをユーザに選択させるためのモード切り替え手段と、 ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、ピッチ付き再生モードにおいては、楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、生成する楽音に対して主としてソフトウェアによるピッチ付与処理を施して出力する再生手段とを備えたことを特徴とする楽音発生装置。
  • 【請求項3】処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、 所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、 該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、 生成する楽音のピッチをユーザが指定するためのピッチ指定手段と、 動作モードとしてノーマルモードまたはピッチ付き再生モードをユーザに選択させるとともに、ピッチ付き再生モードが選択された場合はモード選択と同時にピッチ付き再生を行なう波形データを指定させるモード切り替え手段と、 ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、ピッチ付き再生モードにおいては、楽音生成数を前記ノーマルモードにおける楽音生成数より減らして前記モード切り替え手段で指定されたピッチ付き再生を行なう波形データのみを出力して楽音を生成するとともに、前記ピッチ指定手段により指定されたピッチを前記生成する楽音に対して付与すべく主としてソフトウェアによるピッチ付与処理を施して出力する再生手段とを備えたことを特徴とする楽音発生装置。
  • 【請求項4】前記再生波形指示手段と前記ピッチ指定手段とを同じ操作子で共用し、該操作子を、ノーマルモードが選択されているときは再生波形指示手段として用い、ピッチ付き再生モードが選択されているときはピッチ指定手段として用いる請求項3に記載の楽音発生装置。
  • 【請求項5】処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、 所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、 該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、 動作モードとして、ノーマルモードまたはスクラッチ再生モードをユーザに選択させるとともに、スクラッチ再生モードが選択された場合はモード選択と同時にスクラッチ再生を行なう波形データを指定させるモード切り替え手段と、 ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、スクラッチ再生モードにおいては、前記再生波形指示手段の指示による楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、前記モード切り替え手段で指定されたスクラッチ再生を行なう波形データにスクラッチ効果を付与して出力する再生手段とを備えたことを特徴とする楽音発生装置。
  • 【請求項6】処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、 所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、 該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、 動作モードとして、ノーマルモードまたはスクラッチ再生モードをユーザに選択させるとともに、スクラッチ再生モードが選択された場合はモード選択と同時にスクラッチ再生を行なう波形データを指定させるモード切り替え手段と、 ユーザがスクラッチ操作を行なうためのスクラッチ操作子と、 ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、スクラッチ再生モードにおいては、前記再生波形指示手段の指示による楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、前記モード切り替え手段で指定されたスクラッチ再生を行なう波形データを、前記スクラッチ操作子からの出力に基づいて決定したアドレスで読み出し出力することによりスクラッチ効果を実現した再生手段とを備えたことを特徴とする楽音発生装置。
  • 【請求項7】処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、 所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、 該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、 動作モードとして、ノーマルモードまたは外部入力モードをユーザに選択させるためのモード切り替え手段と、 外部からリアルタイムに波形データを入力する外部入力手段と、 ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、外部入力モードにおいては、前記再生波形指示手段の指示に基づく楽音の生成を停止し、その代わりに、前記外部入力手段により入力した波形データに対して主としてソフトウェアによる特殊効果付与処理を施して出力する再生手段とを備えたことを特徴とする楽音発生装置。
  • 【請求項8】前記再生手段における特殊効果付与処理は、主としてソフトウェアによるディジタル音色フィルタ処理、またはスクラッチ効果付与処理である請求項7
    に記載の楽音発生装置。
  • 【請求項9】処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、 所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、 該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、 動作モードとして、ノーマルモードまたはスクラッチ再生モードをユーザに選択させるモード切り替え手段と、 ユーザがスクラッチ操作を行なうためのスクラッチ操作子と、 外部からリアルタイムに波形データを入力する外部入力手段と、 ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、外部入力スクラッチモードにおいては、前記再生波形指示手段の指示に基づく楽音の生成を停止し、その代わりに、前記外部入力手段により入力して一時記憶しておいた波形データを、前記スクラッチ操作子からの出力に基づいて決定したアドレスで読み出し出力することによりスクラッチ効果を実現した再生手段とを備えたことを特徴とする楽音発生装置。
  • 【請求項10】処理装置上で所定のソフトウェアを実行することにより、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段から波形データを読み出して出力し、これにより楽音を生成する楽音発生方法において、 前記記憶手段に格納されている波形データを指定して再生を指示する再生波形指示ステップと、 動作モードとして、ノーマルモードまたはフィルタ再生モードをユーザに選択させるモード切り替えステップと、 ノーマルモードにおいては、前記再生波形指示ステップにより所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、フィルタ再生モードにおいては、楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、生成する楽音に対して主としてソフトウェアによるディジタル音色フィルタ処理を施して出力する再生ステップとを備えたことを特徴とする楽音発生方法。
  • 【請求項11】処理装置上で所定のソフトウェアを実行することにより、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段から波形データを読み出して出力し、これにより楽音を生成する楽音発生方法において、 前記記憶手段に格納されている波形データを指定して再生を指示する再生波形指示ステップと、 動作モードとして、ノーマルモードまたはピッチ付き再生モードをユーザに選択させるためのモード切り替えステップと、 ノーマルモードにおいては、前記再生波形指示ステップにより所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、ピッチ付き再生モードにおいては、楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、生成する楽音に対して主としてソフトウェアによるピッチ付与処理を施して出力する再生ステップとを備えたことを特徴とする楽音発生方法。
  • 【請求項12】処理装置上で所定のソフトウェアを実行することにより、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段から波形データを読み出して出力し、これにより楽音を生成する楽音発生方法において、 前記記憶手段に格納されている波形データを指定して再生を指示する再生波形指示ステップと、 動作モードとして、ノーマルモードまたはスクラッチ再生モードをユーザに選択させるとともに、スクラッチ再生モードが選択された場合はモード選択と同時にスクラッチ再生を行なう波形データを指定させるモード切り替えステップと、 ノーマルモードにおいては、前記再生波形指示ステップにより所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、スクラッチ再生モードにおいては、前記再生波形指示ステップの指示による楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、前記モード切り替えステップで指定されたスクラッチ再生を行なう波形データにスクラッチ効果を付与して出力する再生ステップとを備えたことを特徴とする楽音発生方法。
  • 【請求項13】処理装置上で所定のソフトウェアを実行することにより、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段から波形データを読み出して出力し、これにより楽音を生成する楽音発生方法において、 前記記憶手段に格納されている波形データを指定して再生を指示する再生波形指示ステップと、 動作モードとして、ノーマルモードまたは外部入力モードをユーザに選択させるためのモード切り替えステップと、 外部からリアルタイムに波形データを入力する外部入力ステップと、 ノーマルモードにおいては、前記再生波形指示ステップにより所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、外部入力モードにおいては、前記再生波形指示ステップの指示に基づく楽音の生成を停止し、その代わりに、前記外部入力ステップにより入力した波形データに対して主としてソフトウェアによる特殊効果付与処理を施して出力する再生ステップとを備えたことを特徴とする楽音発生方法。
  • 【請求項14】前記再生ステップにおける特殊効果付与処理は、主としてソフトウェアによるディジタル音色フィルタ処理、またはスクラッチ効果付与処理である請求項13に記載の楽音発生方法。
  • 说明书全文

    【発明の詳細な説明】

    【0001】

    【発明の属する技術分野】この発明は、ディジタルメモリに格納された波形データをソフトウェアにより読み出して再生し、あるいはリアルタイムに入する波形データをソフトウェアにより出力して再生する楽音発生装置および楽音発生方法に関し、特に、通常再生できる楽音の数を減らす代わりに、生成する楽音にフィルタ処理、
    ピッチ付与処理、あるいはスクラッチ効果の付与などを行なうことができる楽音発生装置および楽音発生方法に関する。

    【0002】

    【従来の技術】従来より、あらかじめ外部音を録音(サンプリング)した波形データを記憶装置に記憶保持しておき、再生時には、操作子の操作に応じて録音した波形データをソフトウェアで読み出して再生するソフトウェア音源が知られている。

    【0003】

    【発明が解決しようとする課題】しかし、従来のソフトウェア音源は機能が固定化されており、目的に合わない場合があった。

    【0004】近年では、楽音に種々の効果(例えば、ディジタル音色フィルタ処理やスクラッチ効果など)を付与するなどさらに高機能な音源が求められている。 なお、スクラッチとは、アナログレコードをターンテーブル上で再生中にそのレコードを手で強制的に動かして再生速度を極端に変化させ特殊な効果音を生み出す技法のことである。 スクラッチは、アナログレコードを用いた特殊な技法であって、従来、ディジタル楽音機器でスクラッチ効果を実現するものはなかった。

    【0005】この発明は、ディジタルメモリに格納された波形データをソフトウェアで読み出して再生する楽音発生方式において、生成する楽音数を減らす代わりに、
    楽音に種々の加工や効果の付与を行ない、従来ソフトウェア音源で実現されていない機能を実現することを目的とする。 また、この発明は、リアルタイムに入力する波形データをそのまま出力して再生する楽音発生方式において、外部入力の波形データに対して種々の加工や効果の付与を行ない、従来ソフトウェア音源で実現されていない機能を実現することを目的とする。

    【0006】

    【課題を解決するための手段】この目的を達成するため、この発明の請求項1に係る楽音発生装置は、処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、
    動作モードとして、ノーマルモードまたはフィルタ再生モードをユーザに選択させるためのモード切り替え手段と、ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、フィルタ再生モードにおいては、楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、生成する楽音に対して主としてソフトウェアによるディジタル音色フィルタ処理を施して出力する再生手段とを備えたことを特徴とする。

    【0007】請求項2に係る楽音発生装置は、処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、動作モードとして、ノーマルモードまたはピッチ付き再生モードをユーザに選択させるためのモード切り替え手段と、ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、ピッチ付き再生モードにおいては、楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、生成する楽音に対して主としてソフトウェアによるピッチ付与処理を施して出力する再生手段とを備えたことを特徴とする。

    【0008】請求項3に係る楽音発生装置は、処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、生成する楽音のピッチをユーザが指定するためのピッチ指定手段と、動作モードとしてノーマルモードまたはピッチ付き再生モードをユーザに選択させるとともに、ピッチ付き再生モードが選択された場合はモード選択と同時にピッチ付き再生を行なう波形データを指定させるモード切り替え手段と、ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、ピッチ付き再生モードにおいては、楽音生成数を前記ノーマルモードにおける楽音生成数より減らして前記モード切り替え手段で指定されたピッチ付き再生を行なう波形データのみを出力して楽音を生成するとともに、前記ピッチ指定手段により指定されたピッチを前記生成する楽音に対して付与すべく主としてソフトウェアによるピッチ付与処理を施して出力する再生手段とを備えたことを特徴とする。

    【0009】請求項4に係る楽音発生装置は、請求項3
    において、再生波形指示手段とピッチ指定手段とを同じ操作子で共用し、該操作子を、ノーマルモードが選択されているときは再生波形指示手段として用い、ピッチ付き再生モードが選択されているときはピッチ指定手段として用いるようにしたものである。

    【0010】請求項5に係る楽音発生装置は、処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、動作モードとして、ノーマルモードまたはスクラッチ再生モードをユーザに選択させるとともに、スクラッチ再生モードが選択された場合はモード選択と同時にスクラッチ再生を行なう波形データを指定させるモード切り替え手段と、ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、
    スクラッチ再生モードにおいては、前記再生波形指示手段の指示による楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、前記モード切り替え手段で指定されたスクラッチ再生を行なう波形データにスクラッチ効果を付与して出力する再生手段とを備えたことを特徴とする。

    【0011】請求項6に係る楽音発生装置は、処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、動作モードとして、ノーマルモードまたはスクラッチ再生モードをユーザに選択させるとともに、スクラッチ再生モードが選択された場合はモード選択と同時にスクラッチ再生を行なう波形データを指定させるモード切り替え手段と、ユーザがスクラッチ操作を行なうためのスクラッチ操作子と、ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、スクラッチ再生モードにおいては、前記再生波形指示手段の指示による楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、
    前記モード切り替え手段で指定されたスクラッチ再生を行なう波形データを、前記スクラッチ操作子からの出力に基づいて決定したアドレスで読み出し出力することによりスクラッチ効果を実現した再生手段とを備えたことを特徴とする。

    【0012】請求項7に係る楽音発生装置は、処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、動作モードとして、ノーマルモードまたは外部入力モードをユーザに選択させるためのモード切り替え手段と、外部からリアルタイムに波形データを入力する外部入力手段と、ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、
    主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、外部入力モードにおいては、前記再生波形指示手段の指示に基づく楽音の生成を停止し、その代わりに、前記外部入力手段により入力した波形データに対して主としてソフトウェアによる特殊効果付与処理を施して出力する再生手段とを備えたことを特徴とする。

    【0013】請求項8に係る楽音発生装置は、請求項7
    において、再生手段における特殊効果付与処理を、主としてソフトウェアによるディジタル音色フィルタ処理、
    またはスクラッチ効果付与処理としたものである。

    【0014】請求項9に係る楽音発生装置は、処理装置を備え、該処理装置上で所定のソフトウェアを実行することにより波形データを読み出して出力し、これにより楽音を生成する楽音発生装置において、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段と、該記憶手段に格納されている波形データを指定して再生を指示する再生波形指示手段と、動作モードとして、ノーマルモードまたはスクラッチ再生モードをユーザに選択させるモード切り替え手段と、ユーザがスクラッチ操作を行なうためのスクラッチ操作子と、外部からリアルタイムに波形データを入力する外部入力手段と、ノーマルモードにおいては、前記再生波形指示手段により所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、外部入力スクラッチモードにおいては、前記再生波形指示手段の指示に基づく楽音の生成を停止し、その代わりに、前記外部入力手段により入力して一時記憶しておいた波形データを、前記スクラッチ操作子からの出力に基づいて決定したアドレスで読み出し出力することによりスクラッチ効果を実現した再生手段とを備えたことを特徴とする。

    【0015】請求項10に係る楽音発生方法は、処理装置上で所定のソフトウェアを実行することにより、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段から波形データを読み出して出力し、これにより楽音を生成する楽音発生方法において、前記記憶手段に格納されている波形データを指定して再生を指示する再生波形指示ステップと、動作モードとして、ノーマルモードまたはフィルタ再生モードをユーザに選択させるモード切り替えステップと、ノーマルモードにおいては、前記再生波形指示ステップにより所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、フィルタ再生モードにおいては、楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、生成する楽音に対して主としてソフトウェアによるディジタル音色フィルタ処理を施して出力する再生ステップとを備えたことを特徴とする。

    【0016】請求項11に係る楽音発生方法は、処理装置上で所定のソフトウェアを実行することにより、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段から波形データを読み出して出力し、これにより楽音を生成する楽音発生方法において、前記記憶手段に格納されている波形データを指定して再生を指示する再生波形指示ステップと、動作モードとして、ノーマルモードまたはピッチ付き再生モードをユーザに選択させるためのモード切り替えステップと、
    ノーマルモードにおいては、前記再生波形指示ステップにより所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、ピッチ付き再生モードにおいては、楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、生成する楽音に対して主としてソフトウェアによるピッチ付与処理を施して出力する再生ステップとを備えたことを特徴とする。

    【0017】請求項12に係る楽音発生方法は、処理装置上で所定のソフトウェアを実行することにより、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段から波形データを読み出して出力し、これにより楽音を生成する楽音発生方法において、前記記憶手段に格納されている波形データを指定して再生を指示する再生波形指示ステップと、動作モードとして、ノーマルモードまたはスクラッチ再生モードをユーザに選択させるとともに、スクラッチ再生モードが選択された場合はモード選択と同時にスクラッチ再生を行なう波形データを指定させるモード切り替えステップと、ノーマルモードにおいては、前記再生波形指示ステップにより所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、
    スクラッチ再生モードにおいては、前記再生波形指示ステップの指示による楽音生成数を前記ノーマルモードにおける楽音生成数より減らすとともに、その代わりに、
    前記モード切り替えステップで指定されたスクラッチ再生を行なう波形データにスクラッチ効果を付与して出力する再生ステップとを備えたことを特徴とする。

    【0018】請求項13に係る楽音発生方法は、処理装置上で所定のソフトウェアを実行することにより、所定サンプリング周期ごとの波形振幅値を表す波形データを複数種類格納した記憶手段から波形データを読み出して出力し、これにより楽音を生成する楽音発生方法において、前記記憶手段に格納されている波形データを指定して再生を指示する再生波形指示ステップと、動作モードとして、ノーマルモードまたは外部入力モードをユーザに選択させるためのモード切り替えステップと、外部からリアルタイムに波形データを入力する外部入力ステップと、ノーマルモードにおいては、前記再生波形指示ステップにより所定数の波形データの再生が指示されたとき、主としてソフトウェアによりそれらの波形データを読み出して出力することにより所定数の楽音を生成し、
    外部入力モードにおいては、前記再生波形指示ステップの指示に基づく楽音の生成を停止し、その代わりに、前記外部入力ステップにより入力した波形データに対して主としてソフトウェアによる特殊効果付与処理を施して出力する再生ステップとを備えたことを特徴とする。

    【0019】請求項14に係る楽音発生方法は、請求項13において、再生ステップにおける特殊効果付与処理を、主としてソフトウェアによるディジタル音色フィルタ処理またはスクラッチ効果付与処理としたものである。

    【0020】

    【発明の実施の形態】以下、図面を用いてこの発明の実施の形態を説明する。

    【0021】図1は、この発明に係る楽音発生装置であるサンプラーのブロック構成図を示す。 このサンプラーは、中央処理装置(CPU)101、リードオンリーメモリ(ROM)102、フラッシュメモリ103、ランダムアクセスメモリ(RAM)104、タイマ105、
    リボンコントローラ106、パッド107、ディスプレイ108、パネルスイッチ109、サンプリングクロック(Fs)発生器110、サウンドI/O112、DM
    A(ダイレクトメモリアクセス)コントローラ113、
    およびバスライン115を備えている。

    【0022】CPU101は、このサンプラーの全体の動作を制御する。 ROM102は、CPU101が実行する制御プログラムを格納する。 RAM104には、各種のレジスタやバッファなどのワーク領域が設けられる。 フラッシュメモリ103は、このサンプラーで録音したときの波形データを記憶するためのメモリである。
    録音した波形データは一時的にRAM104上の録音バッファに蓄えられるが、その録音バッファが一杯になったときフラッシュメモリ103に録音バッファ上の波形データを移す。 このサンプラーの電源をオフした場合でも、フラッシュメモリ103上のデータは保持される。

    【0023】タイマ105は、CPU101に対して所定間隔でタイマ割り込みを発生させるためのタイマクロック信号を発生する。 タイマ割り込みにより、CPU1
    01は、所定時間間隔ごとにリボンコントローラ106
    の検出値を取り込む処理などを行なう。

    【0024】リボンコントローラ106は、ユーザがスクラッチ操作やその他の操作を行なうための操作子である。 リボンコントローラ106は、有限長の直線上の部材からなり、指あるいは棒などの部材で触れると触れた位置の座標が出力される座標検出操作子である。 リボンコントローラ106の特徴として、任意の位置から操作を開始することができる。 リボンコントローラ106
    は、指や棒で触れていないときは所定値を出力し、触れているときは触れた座標の位置を出力するので、リボンコントローラ106が操作されているか否か(すなわち、指や棒で触れているか否か)はその検出値から判定できる。

    【0025】パッド107は、ユーザが発音を支持するための操作子である。 具体的には、10個のパッドが設けられており、録音(サンプリング)時に一つのパッドを指定して録音することができる。 再生時にはそのパッドをたたく(オン)ことにより、そのパッドに対応して録音されていた波形データが読み出されて再生される。
    なお、パッドをオンする代わりに、MIDI(Musical
    Instrument Digital Interface)信号のノートオンを受信して再生を行なうようにしてもよい。

    【0026】ディスプレイ108は、各種の設定情報を表示するためのものである。 パネルスイッチ(SW)1
    09は、ユーザが各種の設定操作を行なうためのパネル上に設けられたスイッチ群である。 パネルSW109
    は、モード切り替えスイッチなどのスイッチを含む。

    【0027】Fs発生器110は、サウンドI/O11
    2に与える周波数Fsのサンプリングクロックを発生する。 サウンドI/O112は、コーデック(CODE
    C)と呼ばれるLSIからなる。 サウンドI/O112
    は、アナログディジタル(A/D)変換機能およびディジタルアナログ(D/A)変換機能を備えており、A/
    D入力端子には外部入力111からのアナログ楽音信号が入力し、D/A出力端子にはサウンドシステム114
    が接続される。 サウンドI/O112は、A/D入力端子から取り込んだ波形データ(外部入力111のアナログ楽音信号をA/D変換機能でディジタルデータに変換した波形データ)をADPCM(適応差分パルス符号変調)方式で圧縮する機能、およびD/A出力端子に出力する波形データ(D/A変換してサウンドシステム11
    4に出力するディジタル波形データ)に対するADPC
    M伸張を行なう機能を備えている。 なお、ここで説明する本発明の一形態例では、サウンドI/O112ではA
    DPCM圧縮のみを行なうものとし、ADPCM伸張はCPU101が所定のソフトウエアを実行することにより行なうものとする。

    【0028】サウンドI/O112は、内部に2つのF
    IFO(First In First Out)方式のスタック領域を備えている。 一つはA/D入力端子経由で入力されたディジタル波形データを保持する入力FIFOであり、もう一つはD/A出力端子経由で出力するディジタル波形データを保持する出力FIFOである。

    【0029】以下、入力FIFOと出力FIFOを用いたサウンドI/O112の入出力の動作について、簡単に説明する。

    【0030】外部入力111からサウンドI/O112
    のA/D入力端子に入力したアナログ楽音信号は、周波数Fsのサンプリングクロックに応じてA/D変換され、(必要に応じてADPCM圧縮され、あるいはそのまま)入力FIFOへ書き込まれる。 入力FIFOに波形データが入っていると、サウンドI/O112は、D
    MAコントローラ113に対してその入力波形データを処理する要求を出す。 DMAコントローラ113は、その処理要求に応じて、入力FIFOのデータをRAM1
    04上の所定の領域(あらかじめ確保されている録音バッファ領域)に転送する。 このDMAコントローラ11
    3によるデータの転送は、DMAコントローラ113がサンプリングクロックFsごとにCPU101に割り込みをかけバスライン115を確保して行なう。 CPU1
    01は、DMAコントローラ113によるバスライン1
    15の確保を意識することはない。 上述のDMAコントローラ113による録音時の波形データの転送処理については、図15で詳しく説明する。

    【0031】一方、サウンドI/O112内の出力FI
    FOに波形データが存在する場合、その出力FIFO内の波形データは、サンプリングクロックFsごとにD/
    A変換され、D/A出力端子経由でサウンドシステム1
    14に送出され放音される。 出力FIFOの波形データが出力されると、出力FIFOに空きができるので、サウンドI/O112は、DMAコントローラ113に波形データ取得の要求を出す。 CPU101は、あらかじめ出力したい波形データを生成してRAM104上の再生バッファに置いておき、DMAコントローラ113にはその波形の再生要求を出しておく。 DMAコントローラ113は、サンプリングクロックFsごとにCPU1
    01に割り込みをかけてバスライン115を確保し、R
    AM104上の再生バッファの波形データをサウンドI
    /O112の出力FIFOに転送する。 このDMAコントローラ113による波形データの転送は、CPU10
    1が意識することはない。 出力FIFOに書き込まれた波形データは、上述したようにサンプリングクロックF
    sごとにサウンドシステム114へと送られて放音される。 上述のDMAコントローラ113による再生時の波形データの転送処理については、図16で詳しく説明する。

    【0032】さらに、サウンドI/O112は、A/D
    入力端子に入力した波形データをそのままD/A出力端子に素通しし、外部入力111からの楽音信号をそのままサウンドシステム114で放音するようにする機能を備えている。 A/D入力とD/A出力との接続は、CP
    U101による指示に基づいて行なわれる。 またCPU
    101は、A/D入力とD/A出力の接続を切断することもできる。

    【0033】次に、図1のサンプラーの機能の概要を説明する。 このサンプラーは、ノーマルモード、サンプリングモード、フィルタ再生モード、ピッチ付き再生モード、スクラッチ再生モード、外部入力(EX)フィルタモード、および外部入力(EX)スクラッチモードの7
    つの動作モードを有する。 これらのモードは、パネルS
    W109上のモード切り替えスイッチにより切り替えることができる。 以下、各モードについて説明する。

    【0034】ノーマルモードは、録音した楽音を再生するモードである。 このサンプラーの初期状態はノーマルモードである。 ノーマルモードにおいて、ユーザが10
    個のパッド107の内の一つをたたく(パッドオン)
    と、そのパッドに対応して録音された波形データが再生される。 ノーマルモードでは4音まで再生することができる。 すなわち、4つのパッドまではパッドオンごとにそのパッドに対応して録音された波形データが再生され、5つ目のパッドをオンすると一番始めにオンされたパッドに対応する再生音が停止し、新しくオンされた5
    番目のパッドに対応する波形データが再生される。

    【0035】サンプリングモードは録音を行なうモードである。 モード切り替えスイッチによりサンプリングモードを指定したとき、ユーザは同時に録音を行なうパッドを指定する。 これにより、外部から入力する楽音をそのパッドに対応して録音することができる。

    【0036】フィルタ再生モードでは、2音だけノーマルモードと同様にパッドオンにしたがって再生される。
    さらに、その再生音に対しディジタルフィルタ処理、具体的にはローパスフィルタ処理を施す。 ユーザは、リボンコントローラ106を操作することにより、そのローパスフィルタ処理におけるカットオフ周波数を変更制御することができる。

    【0037】ピッチ付き再生モードは、録音した楽音をピッチ付きで再生するモードである。 (ピッチ付き再生モード以外の動作モードでは、録音したときのそのままのピッチで再生される。)モード切り替えスイッチによりピッチ付き再生モードを指定したとき、ユーザは同時に何れかのパッドを指定することにより、ピッチ付き再生モードで再生する波形データを指定する。 その後は、
    10個あるパッドの何れかをオンすると、そのパッドに対応したピッチで、先に指定した波形データが再生される。 当モードで再生できるのは2音分である。 なお、ここでは再生する波形を指定するためのパッドをピッチ指定操作子として兼用して用いているが、パッドと別にピッチ指定操作子を設けてもよい。

    【0038】スクラッチ再生モードは、ユーザによるスクラッチ操作を実現するモードである。 モード切り替えスイッチによりスクラッチ再生モードを指定したとき、
    ユーザは同時に任意の一つのパッドを指定する。 そのパッドに対応する波形データが、スクラッチ再生される波形データである。 以後は、リボンコントローラ106に触れると当該波形データの再生が開始され、さらにリボンコントローラ106を触れている位置を移動させることにより、該再生音がスクラッチ再生される。 さらに、
    当モードにおいては、スクラッチ再生とは別に、10個あるパッドによるノーマルモードと同様の再生を2音分だけ行なうことができる。

    【0039】EXフィルタモードは、外部入力111をフィルタリング(ローパスフィルタ)してサウンドシステム114に出力するモードである。 フィルタリングのカットオフ周波数は、ユーザがリボンコントローラ10
    6で変更制御することができる。 EXフィルタモードでは、パッドオンしてもパッドに応じた波形の再生は行なわれないようになっている。

    【0040】EXスクラッチモードは、外部入力111
    を用いてスクラッチ操作を行なうモードである。 EXスクラッチモードでは、リボンコントローラ106を触れない間は、外部入力111がそのままサウンドシステム114で放音される。 リボンコントローラ106に触れた時点で外部入力から直接放音することを停止し、その時点までに取り込んだ外部入力波形を用いてリボンコントローラ106によるスクラッチ再生を行なう。 EXスクラッチモードでは、パッドオンしてもパッドに応じた波形の再生は行なわれないようになっている。

    【0041】次に、RAM104上に設けられるレジスタ、バッファなどについて説明する。

    【0042】図2(a)は、RAM104上の音源レジスタを示す。 音源レジスタはパッド演奏用の4チャンネル分の領域(1ch〜4ch)、およびスクラッチ再生用の音源レジスタschからなる。 各チャンネルのレジスタには、再生すべき波形データの読み出しアドレスやノートオンなどの情報が格納される。

    【0043】図2(b)は、RAM104上の録音バッファを示す。 録音バッファはRB0とRB1の2つが用意され、それぞれ128サンプルの波形データを記憶できる。 録音時は、一方の録音バッファに波形サンプルを記憶していき(すなわち、DMAコントローラ113により、外部入力111の波形データをサウンドI/O1
    12の入力FIFO経由で録音バッファに転送していく)、その録音バッファが一杯になったとき、CPU1
    01によりその録音バッファの波形サンプルをフラッシュメモリ103に書き出す。 それとともに、もう一方の録音バッファに波形サンプルの記憶を続けて行なうようにする。 このように、2つある録音バッファを交互に使用して録音を行なう。 なお、RBk(k=0または1)
    で現在録音(波形データの記憶)を行なっている録音バッファを示し、RBkバーでもう一方の録音バッファを示すものとする。 kバーはkの反転(k=0のときkバー=1、k=1のときkバー=0)を示し、図面中ではkにオーバーラインを付してkバーを表している。

    【0044】図2(c)は、RAM104上の再生バッファを示す。 再生バッファはPB0とPB1の2つが用意され、それぞれ128サンプルの波形データを記憶できるようになっている。 一方の再生バッファが再生に用いられているとき(すなわち、再生バッファ内の波形データがDMAコントローラ113によりサウンドI/O
    112に転送され出力FIFOを経て放音されているとき)、もう一方の再生バッファにはCPU101により次に出力されるべき波形データが用意される。 このように、2つある再生バッファを交互に用いて再生を行なう。 なお、PBr(r=0または1)で現在波形データをサウンドI/O112に転送して再生を行なっている再生バッファを示し、PBrバーでもう一方の再生バッファを示すものとする。 rバーはrの反転(r=0のときrバー=1、r=1のときrバー=0)を示し、図面中ではrにオーバーラインを付してrバーを表している。

    【0045】図2(d)は、RAM104上に設けられたスクラッチ領域SRを示す。 このスクラッチ領域SR
    は、スクラッチ再生モードが指定されたときに確保される領域である。 スクラッチ再生モードに入るとき、指定されたパッドに対応する波形データがADPCM伸張されて(リニア16ビットで)、RAM104上の所定の領域に展開される。 その展開された波形データ中の所定の領域をスクラッチ領域SRとする。 波形データ中のどの位置にスクラッチ領域SRを設定するかは、あらかじめ決定しておく。 スクラッチ領域SR上の所定のアドレスを、スクラッチ開始アドレスとしてスクラッチポインタSPに設定する。 スクラッチポインタSPの値は、ユーザが変更することもできる。 スクラッチ再生モードにおいてユーザがリボンコントローラ106を操作するとスクラッチ再生されるが、リボンコントローラ106の操作開始位置がどこであっても、スクラッチポインタS
    Pで指される位置からスクラッチ再生が開始される。

    【0046】図2(e)は、EXスクラッチモードにおけるスクラッチ領域を示す。 EXスクラッチモードでは、外部入力111の波形データを録音バッファSRB
    0,SRB1(図2(e))に格納する。 録音バッファSRB0とSRB1は、図2(b)で説明した録音バッファRB0とRB1に対応する録音バッファであり、R
    B0,RB1と同様にして交互に用いる。 SRB0とS
    RB1は、スクラッチを行なうために必要十分な容量(例えば、サンプリングクロックが40kHzなら、4
    0kサンプル以上格納できる程度の容量)とする。 SR
    B0とSRB1のうち、リボンコントローラ106の操作が開始された時点で書き込みの行なわれていない方の録音バッファをスクラッチ領域として設定する。 図2
    (e)では、録音バッファSRB0内に書き込むアドレスを示す録音ポインタRPが指す位置があるから、現在SRB0に書き込みが行なわれている。 そこで、書き込みの行なわれていない録音バッファSRB1中の所定の領域をスクラッチ領域SRとして設定している。 また、
    スクラッチ領域SR上の所定のアドレスを、スクラッチ開始アドレスとしてスクラッチポインタSPに設定する。

    【0047】次に、図2に示したもの以外のレジスタ類について説明する。

    【0048】(1)m:動作モードレジスタである。 0
    でノーマルモード、1でサンプリングモード、2でフィルタ再生モード、3でピッチ付き再生モード、4でスクラッチ再生モード、5でEXフィルタモード、6でEX
    スクラッチモードを示す。 (2)PN:パッドを特定するパッド番号を格納するレジスタである。 (3)i:発音を割り当てるチャンネルのチャンネルナンバーを格納するレジスタである。 (4)FNi:発音割当を行なった第iチャンネルのF
    ナンバを格納するレジスタである。 (5)TMP:リボンコントローラ106の検出値を格納するレジスタである。

    【0049】(6)RD:リボンコントローラ106からの検出値が変化したときに、当該検出値を設定するレジスタである。 (7)RS:リボンコントローラ106の状態を示すフラグである。 リボンコントローラ106が操作されているとき(リボンコントローラ106に指などが触れているとき)1であり、操作されていないとき(指などが触れていないとき)0である。 (8)VEL:リボンコントローラ106の移動の速度(詳しく言えば、リボンコントローラ106に触れている指などの移動速度)を設定するレジスタである。 (9)OLD:リボンコントローラ106の一回前の検出値を保持しておくレジスタである。 (10)SAD:スクラッチ用アドレスを格納するレジスタである。

    【0050】(11)ADi:第iチャンネル(i=1
    〜4)における読み出しアドレスを格納するレジスタである。 (12)SFN:スクラッチ用チャンネルschの波形データ読み出しにおけるFナンバを格納するレジスタである。 (13)RP:録音用ポインタである。 録音バッファの波形データ書き込み位置を示す。 (14)PP:再生用ポインタである。 再生バッファの波形データ読み出し位置を示す。

    【0051】なお、上述のレジスタなどを示す記号は、
    レジスタなどの記憶領域そのものを示すとともに、該記憶領域に格納されるデータをも示すものとする。 例えば、mというときは、動作モードレジスタを示すとともに、該レジスタに格納された動作モードを表すデータをも示すものとする。

    【0052】図3〜図16は、図1のサンプラーにおけるCPU101およびDMAコントローラ113の動作を説明するためのフローチャートである。 以下では、始めにこれらのソフトウエアの階層構造について説明し、
    次に図3〜図16のフローチャートにしたがって各ソフトウェアモジュールの処理手順を説明する。 その後、それらのソフトウェアモジュールをどのようなタイミングで実施して各モードの機能を実現していくかについてモード別に説明する。

    【0053】まず、ソフトウエアの階層構造について説明する。 図3〜図16に示すプログラムは以下のようにレベル分けされる。

    【0054】レベル1:DMAコントローラ113の録音時の処理ルーチンである図15のDR(m)ルーチン、およびDMAコントローラ113の再生時の処理ルーチンである図16のDPルーチン。

    【0055】レベル2:CPU101により波形作成を行なう図11および図12の波形生成ルーチンHS
    (m)、およびCPU101によりリボンコントローラ106の検出値を取り込むための図9および図10のリボン値取り込みルーチンRC(m)。 波形生成ルーチンHS(m)のサブルーチンである図13および図14の処理ルーチンも含む。

    【0056】レベル3:CPU101が実行する図3の定常ルーチン。 そのサブルーチンであるパッドスキャン、SWスキャン、および各イベントルーチン(図4〜
    図8の処理ルーチン)も含む。

    【0057】レベル1の処理ルーチンは優先度が最も高い。 すなわち、レベル2あるいはレベル3の処理が行なわれているときにレベル1の処理ルーチンの実行のための割り込みがかかるとレベル1の処理ルーチンが最優先で実行される。 レベル1の処理DR(m)およびDP
    は、CPU101が実行する処理でなくDMAコントローラ113が実行する処理であるので、レベル1の処理の割り込みがかかったとき、CPU101の動作が停止し、バスライン115はDMAコントローラ113が確保してこれらのレベル1の処理を最優先で行なう。 このレベル1の処理の割り込みは、サンプリングクロックF
    sにしたがう。 すなわち、サンプリングクロックFsごとに割り込みが発生し、DMAコントローラ113により、再生であればDPが実行され、録音であればDR
    (m)が実行される。 なお、サンプリングクロックFs
    ごとの割り込みでDPまたはDR(m)を実行するか否かはあらかじめCPU101からDMAコントローラ1
    13に対して指定しておく。

    【0058】レベル2の処理は、レベル1の処理より優先度は低いが、レベル3の処理より優先度が高い。 すなわち、レベル3の定常ルーチンが実行されているときレベル2の処理を行なうための割り込みがかかると、レベル2の処理ルーチンが優先して実行される。 上記DMA
    コントローラ113のDPルーチンは、再生バッファの波形データを再生していき、該再生バッファが空になったときCPU101に割り込みをかける。 この割り込みを受けて、CPU101は、波形作成ルーチンHS
    (m)を実行し、波形サンプルを再生バッファに用意する。 リボン値取り込みルーチンRC(m)は、タイマ割り込みにより起動される。 すなわち、タイマ105から所定間隔で出力されるクロックごとに、タイマ割り込みがかかり、これによりCPU101がリボン値取り込みルーチンRC(m)を実行してリボンコントローラ10
    6の検出値を取り込む。

    【0059】レベル3は最も優先度の低い処理ルーチンである。 CPU101は、図3の定常ルーチンを繰り返し実行し、パッド107のオンイベントやパネルSW1
    09の操作イベントがあったとき所定のサブルーチンを実行する。

    【0060】次に、図3〜図16のフローチャートにしたがって各ソフトウェアモジュールの処理手順を説明する。

    【0061】図3は、レベル3の定常ルーチンを示す。
    このサンプラーの電源がオンされると、CPU101はこの定常ルーチンを実行する。 まずステップ301で、
    各種の初期設定を行なう。 特に、動作モードmはm=
    0、すなわちノーマルモードとし、図2(a)の音源レジスタの全チャンネルにノートオフを設定し、図2
    (c)の再生バッファPB0,PB1の全サンプル領域を0クリアする。 また、CPU101は初期設定でDM
    Aコントローラ113に再生処理を指示する。 これにより、DMAコントローラ113は、Fs発生器110からのサンプリングクロックFsごとにCPU101に割り込みをかけ、その都度図16のDPルーチンを実行して再生バッファ内の波形データを再生する動作を開始することになる。 さらに、初期設定においてはタイマ10
    5を起動する。 これにより、CPU101は、タイマ1
    05からのクロックによるタイマ割り込みの度にRC取り込みルーチンRC(m)を実行し、リボンコントローラ106の検出値を取り込む処理を開始することになる。

    【0062】次に、ステップ302でパッドスキャン処理を行ない、ステップ303でSWスキャン処理を行ない、再びステップ302に戻り処理を繰り返す。 ステップ302のパッドスキャン処理は、10個あるパッド1
    07のオンイベントがあるか否かを検出し、オンイベントがあった場合に図7および図8に示すオンイベントルーチンを実行する処理である。 ステップ303のSWスキャン処理は、パネルSW109の操作がなされたか否かを検出し、操作があった場合にその操作に応じた処理ルーチンを実行する処理である。

    【0063】図4は、図3のステップ303のSWスキャン処理でモード切り替えスイッチが操作されたことを検出したときに呼び出されるモードSWイベントルーチンである。 モードSWイベントルーチンでは、ステップ401でモード切り替えスイッチの操作に応じて指定された動作モードを示す値をレジスタmに設定し、ステップ402で指定されたモードmに応じたディスプレイ1
    08への表示制御を行なう。 そして、ステップ403
    で、指定されたモードmに対応する開始処理MS(m)
    を実行した後、処理を終了する。

    【0064】図5は、ユーザがモード切り替えスイッチでサンプリングモード(m=1)を指定したとき、図4
    のステップ403で呼び出されるサンプリングモード開始処理MS(1)のフローチャートである。 MS(1)
    処理では、まずステップ501で、パッドの指定がなされたか否かを判別する。 パッドの指定がなされていないときは、ステップ502で、サンプリングモードの指定をやめるか否か判別する。 サンプリングモードの指定処理を続行するなら、再びステップ501に戻り、パッドの指定を促す。

    【0065】ステップ501でパッドの指定がなされたときは、ステップ503で、指定されたパッド番号をレジスタPNに格納し、ステップ504で、録音準備を行なう。 録音準備は、録音バッファRB0,RB1、フラッシュメモリ103上の録音領域、およびその他の領域の確保などの処理である。 また、DMAコントローラ1
    13に指示して、サンプリングクロックFsごとにCP
    U101に割り込みをかけてDPルーチンを実行することを停止させる。 次に、ステップ505で、録音開始の条件(トリガ)が満たされたか否か判別する。 録音開始の条件としては、例えば入力レベルが一定以上になったとき録音開始する、といった条件を用いる。 録音開始の条件が満たされていないときは、ステップ506で録音をやめるか否か判別し、録音を続行するならステップ5
    05に戻る。

    【0066】ステップ505で録音開始の条件が満たされた場合は、ステップ507で、録音開始する。 録音開始は、具体的には、CPU101からDMAコントローラ113に録音開始を指示する処理である。 これにより、DMAコントローラ113は、Fs発生器110からのサンプリングクロックFsごとにCPU101に割り込みをかけ、その都度図15のDR(1)ルーチンを実行して、外部入力111から入力した波形データをサウンドI/O112内の入力FIFOを経て録音バッファRBkに設定する処理を開始する。

    【0067】次に、ステップ508で録音バッファが一杯になったか否か判別する。 詳しくは図15で説明するが、DR(1)ルーチンでは、録音バッファRBkに外部入力の波形サンプルを転送していき、RBkが一杯になったときはkを反転して割り込みを発生する。 ステップ508では、この割り込みを待つことにより録音バッファが一杯になったか否かを判別する。 この割り込みがあったときは、録音バッファRBkバーに波形サンプルが満たされたということだから、ステップ509で、録音バッファRBkバーの波形サンプルをフラッシュメモリ103のあらかじめ定められた領域に書き込み、再びステップ508に戻る。

    【0068】ステップ508で録音バッファが一杯でないとき(DR(1)ルーチンからの割り込みがないとき)は、ステップ510で、録音処理を終了するか否か判別する。 録音処理は、パネルSW109の録音ストップスイッチのオンイベント、またはフラッシュメモリ1
    03に確保された録音領域が一杯になったとき、終了するものとする。 ステップ510で録音処理終了でないときは、ステップ508に戻り録音を続行する。 ステップ510で録音処理終了の場合は、ステップ511で録音終了処理を行なう。 これはDMAコントローラ113に指示をして、サンプリングクロックFsごとにCPU1
    01に割り込みをかけてDR(1)ルーチンを実行することを停止させる処理である。 次にステップ512で、
    レジスタmに0を設定してノーマルモードへ戻る処理を行ない、処理を終了する。 ノーマルモードへ戻る処理では、DMAコントローラ113に指示して、サンプリングクロックFsごとにCPU101に割り込みをかけてDPルーチンを実行することを開始させる。

    【0069】ステップ502でサンプリングモード指定処理を取りやめる場合は、ステップ513で、レジスタmに0を設定しノーマルモードへ戻る処理を行なった後、処理を終了する。 またステップ506で録音処理を取りやめにする場合は、ステップ514で、レジスタm
    に0を設定しノーマルモードへ戻る処理を行なった後、
    処理を終了する。 ステップ513,514の処理は、ステップ512の処理と同じである。

    【0070】図6は、ユーザがモード切り替えスイッチでスクラッチ再生モード(m=4)を指定したときに、
    図4のステップ403で呼び出されるスクラッチ再生モード開始処理MS(4)のフローチャートである。 MS
    (4)処理では、まずステップ601で、パッドの指定がなされたか否かを判別する。 パッドの指定がなされていないときは、ステップ602で、スクラッチ再生モードの指定をやめるか否か判別する。 スクラッチ再生モードの指定処理を続行するなら、再びステップ601に戻り、パッドの指定を促す。

    【0071】ステップ601でパッドの指定がなされたときは、ステップ603で、指定されたパッド番号をレジスタPNに格納し、ステップ604で、スクラッチを行なう準備をする。 これは、パッド番号PNに対応して録音されている波形データをフラッシュメモリ103から読み出してADPCM伸張し、RAM104上の所定領域に展開する処理である。 次に、ステップ605で、
    RAM104上に展開した波形データの所定の領域をスクラッチ領域SR(図2(d))とし、スクラッチを開始するアドレスであるスクラッチポインタSPを所定値に設定する。

    【0072】ステップ602でスクラッチ再生モード指定処理を取りやめる場合は、ステップ606で、レジスタmに0をセットしてノーマルモードへ戻る処理を行ない、処理を終了する。

    【0073】図7は、モードmがm=0,2,4の場合、すなわちノーマルモード、フィルタ再生モード、またはスクラッチ再生モードの場合に、図3のステップ3
    02でパッド107のオンイベントを検出したときに呼び出されるパッドオンイベントルーチンのフローチャートを示す。 このオンイベントルーチンでは、まずステップ701で、オンイベントのあったパッド107のパッド番号をレジスタPNにセットし、ステップ702で、
    パッド番号PNに対応する波形データがフラッシュメモリ103上に録音されているか否かを判定する。 パッド番号PNに対応する波形データがないときは、そのまま処理を終了する。

    【0074】ステップ702でパッド番号PNに対応する波形データが録音されていた場合は、ステップ703
    で、発音チャンネルの割当を行なう。 この割当はモードmに応じた発音数で行なわれる。 すなわち、ノーマルモードの場合は、4音発音可能であるから第1から第4の4つのチャンネルのいずれかに空きチャンネルがあればその空きチャンネルに割り当て、その4チャンネルがすべて発音に用いられていたときは最も過去に発音を開始したチャンネルを消音してそのチャンネルに新たに発音割当を行なう。 フィルタ再生モード、またはスクラッチ再生モードの場合は、2音発音可能であるから第1または第2チャンネルに同様にして割り当てる。 割り当てたチャンネルの番号は、レジスタiに設定する。 次にステップ704で、第iチャンネルの音源レジスタichに発音を行なうための各種の情報(再生すべき波形データの先頭アドレスADiなど)を設定し、さらにノートオンを設定して処理を終了する。

    【0075】図8は、モードmがm=3の場合、すなわちピッチ付き再生モードの場合に、図3のステップ30
    2でパッド107のオンイベントを検出したときに呼び出されるパッドオンイベントルーチンのフローチャートを示す。 ピッチ付き再生モードでのパッドオンイベントルーチンでは、まずステップ801で、オンイベントのあったパッド107のパッド番号をレジスタPNにセットし、ステップ802で発音チャンネルの割当を行なう。 ピッチ付き再生モードでは、2音まで発音が可能であるので、最大発音数2音としてチャンネルの割当を行なう。 次にステップ803で、パッド番号PNをFナンバに変換し、レジスタFNiにセットする。 そして、ステップ804で、第iチャンネルの音源レジスタich
    にピッチ付きで再生するための各種の情報(再生すべき波形データの読み出し開始アドレスADiおよびFナンバFNiなど)を設定し、さらにノートオンを設定して処理を終了する。

    【0076】図9は、モードmがm=2,5の場合、すなわちフィルタ再生モードまたはEXフィルタモードの場合に、リボンコントローラ106の検出値を取り込むためのRC取り込みルーチンRC(m)のフローチャートである。 これはリボンコントローラ106によりフィルタ制御を行なうためにその検出値を取り込む処理である。 また、図10は、モードmがm=4,6の場合、すなわちスクラッチ再生モードまたはEXスクラッチモードの場合に、リボンコントローラ106の検出値を取り込むためのRC取り込みルーチンRC(m)のフローチャートである。 これはリボンコントローラ106によりスクラッチ制御を行なうためにその検出値を取り込む処理である。

    【0077】図3のステップ301の初期設定においてタイマ105が起動され、所定時間間隔でCPU101
    はタイマ割り込みの処理を実行する。 図9のRC取り込みルーチンRC(m)は、タイマ割り込みにおいてモードmが2または5のとき実行される処理である。 また、
    図10のRC取り込みルーチンRC(m)は、タイマ割り込みにおいてモードmが4または6のとき実行される処理である。

    【0078】図9のRC取り込みルーチンRC(m)
    (m=2,5)から説明する。 まずステップ901で、
    リボンコントローラ106の検出値をレジスタTMPにセットする。 次に、ステップ902で、その検出値が前回タイマ割り込み時の検出値と比較して変化があったか否かを判定する。 変化がない場合は、処理を終了する。
    変化があったときは、ステップ903で、検出値TMP
    をレジスタRDに設定して処理を終了する。 結果的に、
    レジスタRDにリボンコントローラ106の検出値が設定されたことになる。 なお、リボンコントローラ106
    から指などが離れたときは、検出値TMP,RDを所定の標準値に戻してもよいし、または指などが離れる直前の係数を保持するようにしてもよい。

    【0079】図10のRC取り込みルーチンRC(m)
    (m=4,6)について説明する。 なお、図10は、動作モードがスクラッチ再生モード(m=4)のときに呼び出されるRC取り込みルーチンRC(4)と動作モードがEXスクラッチモード(m=6)のときに呼び出されるRC取り込みルーチンRC(6)とを併せて説明するフローチャートであり、ステップ1006,100
    9,1015,1016はRC(6)のみの処理であるので、以下では始めにRC(4)の処理手順を説明し、
    その後RC(6)の処理手順を説明する。

    【0080】リボンコントローラ検出値取り込みルーチンRC(4)では、まずステップ1001で、リボンコントローラ106の検出値をレジスタTMPにセットする。 次にステップ1002で、リボンコントローラ10
    6の操作があるか否かを判定する。 リボンコントローラ106は、指あるいは棒などで触れているときその触れている座標位置を示す座標検出値を出力するが、指または棒などが触れていないときは所定値を出力し触れていないこと(操作されていないこと)が分かるようになっている。 リボンコントローラ106の操作がなされていないときはステップ1003に進み、操作がなされているときはステップ1004に進む。

    【0081】ステップ1003では、レジスタRSが0
    か否か判定する。 レジスタRSが0のときは、前の割り込みの時点および今回の割り込みの時点の両方でリボンコントローラ106は操作されていないということだから、そのまま処理を終了する。 ステップ1003でRS
    が0でないときは、前の割り込みの時点でRS=1すなわちリボンコントローラ106の操作がなされていたのが、今回の割り込みの時点で操作がなされていない(指または棒などを離した)ということだから、ステップ1
    013でレジスタRSを0クリアし、ステップ1014
    でスクラッチ用チャンネルの音源レジスタschにノートオフを書き込み、処理を終了する。

    【0082】ステップ1004では、レジスタRSが1
    であるか否か判定する。 レジスタRSが1でないときは、前の割り込みの時点でRS=0すなわちリボンコントローラ106の操作がなされていなかったのが、今回の割り込みの時点で操作がなされたということだから、
    ステップ1005で、レジスタRSに1をセットするとともに、速度VELに0をセットする。 そして、ステップ1007で読み出しアドレスSADとしてスクラッチポインタSPの値(所定値)をセットする。 次に、ステップ1008で、スクラッチ用チャンネルの音源レジスタschに、スクラッチ再生のための各種の情報(スクラッチ再生すべき波形データの読み出しアドレスSAD
    および速度値VELなど)を設定するとともに、ノートオンを書き込む。 次にステップ1010で、レジスタO
    LDに今回のリボンコントローラ106の検出値TMP
    をセットし、処理を終了する。

    【0083】ステップ1004でRSが1のときは、前回の割り込みの時点でRS=1であり今回の割り込みの時点でもRS=1であるということ(リボンコントローラ106の操作が継続している)であるから、ステップ1011で、リボンコントローラ106の操作の速度を検出し、レジスタVELにセットする。 速度VELは今回の検出値TMPから前回割り込み時の検出値OLDを減算することにより算出するものとする。 したがって、
    速度VELが負数になることもあり得る。 さらに速度V
    ELは、スクラッチ用チャンネルの音源レジスタsch
    に設定するものとする。 次に、ステップ1012で、今回の検出値TMPをレジスタOLDにセットし、処理を終了する。

    【0084】以上説明したのはモードm=4すなわちスクラッチ再生モードの場合のRC取り込みルーチンRC
    (4)であるが、モードm=6の場合すなわちEXスクラッチモードの場合のRC取り込みルーチンRC(6)
    では、ステップ1005の後にステップ1006を追加し、ステップ1008の後にステップ1009を追加し、ステップ1014の後にステップ1015,101
    6を追加する。 さらに、ステップ1008,1014の処理が若干異なる。 以下では、これらについて説明する。

    【0085】リボンコントローラ106の操作が開始された時点では、ステップ1004から1005を経て、
    ステップ1006に進む。 ステップ1006では、CP
    U101からDMAコントローラ113に指示をして、
    サンプリングクロックFsごとにCPU101に割り込みをかけてDR(6)ルーチンを実行することを停止させるとともに、2つの録音バッファSRB0,SRB1
    のうち現在書き込みの行なわれていないほうの録音バッファSRBkバーに図2(e)で説明したようにスクラッチ領域SRを設定する。 次に、ステップ1007を経て1008に進む。

    【0086】ステップ1008では、スクラッチ用チャンネルの音源レジスタschに、スクラッチ再生のための各種の情報(スクラッチ再生すべき波形データの読み出しアドレスSADおよび速度値VELなど)を設定するとともに、ノートオンを書き込む。 さらに、ステップ1008では、上記処理の前に、以下の処理も行なう。
    すなわち、まず再生バッファPBrに128サンプルを生成する。 この処理は、再生バッファPBrを0クリアした後、後述する図14のEXスクラッチ処理を再生バッファPBrに対して(図14でPBrバーの代わりにPBrを用いる)行なえばよい。 また、CPU101からDMAコントローラ113に指示をして、サンプリングクロックFsごとにCPU101に割り込みをかけてDPルーチンを実行することを再開する。 さらに、後述する図16のDPルーチンのステップ1605で発生する割り込みと同じ意味の割り込みを発生させる。 この割り込みにより、HS(6)が実行され、次にスクラッチ再生される128サンプルがPBrバーに生成される。

    【0087】その後、ステップ1009で、CPU10
    1からの指示により、サウンドI/O112のA/D入力からD/A出力への直接接続を切り離し、外部入力1
    11から直接サウンドシステム114へ楽音信号を流して放音することを停止する。

    【0088】リボンコントローラ106の操作を止めた時点では、ステップ1002から1003,1013を経て、ステップ1014に進む。 ステップ1014では、スクラッチ用チャンネルの音源レジスタschにノートオフを書き込むが、その処理の後に以下の処理も行なう。 すなわち、CPU101からDMAコントローラ113に指示をして、サンプリングクロックFsごとにCPU101に割り込みをかけてDPルーチンを実行することを停止する。

    【0089】また、ステップ1015では、CPU10
    1からの指示により、サウンドI/O112のA/D入力からD/A出力への直接接続を再開し、外部入力11
    1から直接サウンドシステム114へ楽音信号を流して放音するようにする。 ステップ1016では、CPU1
    01からDMAコントローラ113に指示をして、サンプリングクロックFsごとにCPU101に割り込みをかけてDR(6)ルーチンを実行することを再開する。

    【0090】図11(a)〜(c)、および図12
    (a)〜(c)は、各モードmにおいてCPU101が再生バッファ上に波形サンプルを生成するために実行する波形生成ルーチンHS(m)のフローチャートである。 波形生成ルーチンHS(m)は、後述する図16のDPルーチンのステップ1605の割り込み要求に応じてCPU101が実行する。 すなわち、DPルーチンは、サンプリングクロックFsごとに再生バッファPB
    r内の波形サンプルをサウンドI/O112に転送して再生を行なうが、再生バッファPBr内の128サンプルをすべて再生したら、DPルーチンはkを反転して割り込みを発生する。 この割り込みを契機として、CPU
    101は、モードmに応じた波形生成ルーチンHS
    (m)を実行し、たった今再生が終わって空になった再生バッファPBrバーに1フレーム分の128サンプルを新たに生成する。

    【0091】図11(a)は、ノーマルモードのときに再生バッファ上に波形サンプルを生成する波形生成ルーチンHS(0)のフローチャートである。 HS(0)では、ステップ1101でサブルーチンであるノーマル4
    を呼び出し、処理を終了する。 このサブルーチンについては、図13(a)で後述する。

    【0092】図11(b)は、フィルタ再生モードのときに再生バッファ上に波形サンプルを生成する波形生成ルーチンHS(2)のフローチャートである。 HS
    (2)では、ステップ1111でサブルーチンであるノーマル2を呼び出し、ステップ1112でリボンコントローラ106の検出値RDに応じてフィルタ係数(カットオフ周波数)を生成する。 そして、ステップ1113
    でフィルタ処理(ローパスフィルタ処理)を行ない、処理を終了する。 ステップ1111のノーマル2については、図13(a)で後述する。

    【0093】図11(c)は、ピッチ付き再生モードのときに再生バッファ上に波形サンプルを生成する波形生成ルーチンHS(3)のフローチャートである。 HS
    (3)では、ステップ1121でサブルーチンであるピッチ2を呼び出し、処理を終了する。 ピッチ2については、図13(b)で後述する。

    【0094】図12(a)は、スクラッチ再生モードのときに再生バッファ上に波形サンプルを生成する波形生成ルーチンHS(4)のフローチャートである。 HS
    (4)では、ステップ1201でサブルーチンであるノーマル2を呼び出し、ステップ1202でサブルーチンであるスクラッチ処理ルーチンを呼び出し、処理を終了する。 ノーマル2については、図13(a)で後述する。 スクラッチ処理については、図14で後述する。

    【0095】図12(b)は、EXフィルタモードのときに再生バッファ上に波形サンプルを生成する波形生成ルーチンHS(5)のフローチャートである。 HS
    (5)が呼び出された時点では、録音バッファRBkバーに外部入力111からの波形データが128サンプル(リニアサンプル)書き込まれており、かつ再生バッファPBrバーが空き状態である。 そこで、HS(5)では、まずステップ1211でリボンコントローラ106
    の検出値RDに応じてフィルタ係数を生成し、ステップ1212でEXフィルタ処理を行なう。 このEXフィルタ処理とは、録音バッファRBkバーの128個の波形サンプルに対して、ステップ1211で求めたフィルタ係数を用いてフィルタリング処理し、処理結果の128
    個の波形サンプルを再生バッファPBrバーに設定する処理である。 ステップ1212の後、処理を終了する。

    【0096】図12(c)は、EXスクラッチモードのときに再生バッファ上に波形サンプルを生成する波形生成ルーチンHS(6)のフローチャートである。 HS
    (6)では、ステップ1221でレジスタRSが1であるか否かを判定する。 レジスタRSが1でないときは、
    リボンコントローラ106の操作がなされていないということだから、そのまま処理を終了する。 ステップ12
    21でレジスタRSが1であるときは、リボンコントローラ106の操作がなされているということだから、ステップ1222でEXスクラッチ処理を行ない、処理を終了する。 EXスクラッチ処理については、図14で後述する。

    【0097】図13(a)は、ノーマルnのフローチャートを示す。 nは、上述のステップ1101で呼び出すノーマル4のときはn=4、上述のステップ1111,
    1201で呼び出すノーマル2のときはn=2である。

    【0098】まずステップ1301で、チャンネルをカウントするためのワークレジスタiに1を設定し、サンプル数をカウントするためのワークレジスタjに0を設定し、現在DPルーチンによる再生が行なわれていない方の再生バッファPBrバーのサンプル領域をすべて0
    クリアする。 次にステップ1302で、第iチャンネルの音源レジスタichを参照し、ノートオンが書き込まれているか否か判定する。 ノートオンが書き込まれていないときは、第iチャンネルの波形生成は行なう必要がないから、そのままステップ1308に進む。 ステップ1302で第iチャンネルがノートオンされていたときは、ステップ1303に進む。

    【0099】ステップ1303で第iチャンネルの読み出しアドレスADi(ADiは第iチャンネルの音源レジスタichにセットされている)をインクリメントし、ステップ1304で第iチャンネルで読み出すべき波形データのアドレスADiの位置から波形サンプルを読み出し、ADPCM伸張を行ないリニアな波形サンプルを求めて、ワークレジスタTMPにセットする。 次にステップ1305で、再生バッファPBrバー(j)にレジスタTMPの値を累算(チャンネル累算)する。

    【0100】次に、ステップ1306でレジスタjの値が127に至ったか否かを判別し、未だレジスタjが1
    27に至っていないときは、ステップ1307でレジスタjをインクリメントした後、ステップ1303に戻り次の波形サンプルの読み出しおよび伸張と累算を繰り返す。 ステップ1306でレジスタjの値が127になったときは、再生バッファPBrバーの128サンプル分の領域に第iチャンネルの128サンプルの累算が終了したということであるから、ステップ1308に進む。

    【0101】ステップ1308でレジスタiがnに至ったか否かを判別する。 レジスタiがnに至っていないときは、次のチャンネルの累算を行なうべく、ステップ1
    309でレジスタiをインクリメントし、レジスタjを0クリアして、ステップ1302に戻り、第iチャンネルに対して処理を繰り返す。 ステップ1308でレジスタiがnに至ったときは、処理すべきチャンネルの累算が終わり再生バッファPBrバー上に128サンプルが生成されたということであるから、処理を終了する。

    【0102】図13(b)は、図11(c)のステップ1121でコールされるサブルーチンであるピッチ2のフローチャートである。 ステップ1311で、チャンネルをカウントするためのワークレジスタiに1を設定し、サンプル数をカウントするためのワークレジスタj
    に0を設定し、現在DPルーチンによる再生が行なわれていない方の再生バッファPBrバーのサンプル領域をすべて0クリアする。 次にステップ1312で、第iチャンネルの音源レジスタichを参照し、ノートオンが書き込まれているか否か判定する。 ノートオンが書き込まれていないときは、第iチャンネルのピッチ付き波形生成は行なう必要がないから、そのままステップ131
    9に進む。 ステップ1312で第iチャンネルがノートオンされていたときは、ステップ1313に進む。

    【0103】ステップ1313で、第iチャンネルの波形サンプル読み出しアドレスADiにFナンバFNiを加算し、新たなアドレスADiとする。 ADiおよびF
    Niは、第iチャンネルの音源レジスタichにセットされている。 次に、ステップ1314で、第iチャンネルで読み出すべき波形データのアドレスADiの位置から波形サンプルを読み出し、ADPCM伸張を行ないリニアな波形サンプルを求めて、ワークレジスタTMPにセットする。 なお、読み出すべき波形データはADPC
    M圧縮されているので、アドレスADiの整数部が2以上進む場合は、前回の読み出し位置から今回の読み出し位置ADiまでの全サンプルを読み出して伸張に用いる。 次に、ステップ1315で、アドレスADiの小数部に応じてサンプル間の補間を行ない、補間済みの波形サンプルをレジスタTMPに設定する。 そして、ステップ1316で、再生バッファPBrバーのj番目のサンプル領域PBrバー(j)に、算出した波形サンプルT
    MPをチャンネル累算する。

    【0104】次にステップ1317で、レジスタjが1
    27に至ったか否かを判定する。 至っていないときは、
    次のサンプルの処理を行なうべく、ステップ1318でレジスタjをインクリメントし、ステップ1313に戻る。 ステップ1317でレジスタjが127に至ったときは、第iチャンネルの処理が終了したということだから、ステップ1319でレジスタiが2に至ったか否かを判定する。 レジスタiが2に至っていないときは、次のチャンネルの処理を行なうべく、ステップ1320でレジスタiをインクリメントしレジスタjを0クリアした後、ステップ1312に戻る。 ステップ1319でレジスタiの値が2に至ったときは、処理を終了する。

    【0105】図14は、図12(a)のステップ120
    2で呼び出されるスクラッチ処理、または図12(c)
    のステップ1222で呼び出されるEXスクラッチ処理のフローチャートである。 まずステップ1401で、検出されたリボンコントローラ106の移動速度VEL
    (VELはスクラッチ用チャンネルの音源レジスタsc
    hにセットされている)をスクラッチ用のFナンバSF
    Nに変換する。 正数だけでなく負数ともなる速度VEL
    に応じてFナンバSFNを決定するので、このFナンバSFNも正負の領域で変化することになる。 次に、ステップ1402でレジスタjを0クリアし、ステップ14
    03に進む。

    【0106】ステップ1403でスクラッチ用読み出しアドレスSAD(SADはスクラッチ用チャンネルの音源レジスタschにセットされている)にスクラッチ用FナンバSFNを加算し、ステップ1404で読み出すべき波形データのアドレスSADの位置から波形サンプルを読み出しレジスタTMPにセットする。 なお、図1
    2(a)のステップ1202で呼び出されるスクラッチ処理では、読み出すべき波形データはあらかじめADP
    CM伸張されて所定領域に展開され、その波形データ中にスクラッチ領域SRが設定されている(図6のステップ604,605)。 また、図12(c)のステップ1
    222で呼び出されるEXスクラッチ処理では、それまでに外部入力111から入力して録音バッファSRB
    0,SRB1に交互に波形データ(リニアサンプル)を書き込んでいく処理を行なっており、リボンコントローラ106が操作開始された時点で書き込みの行なわれていない方の録音バッファの波形データ中にスクラッチ領域SRが設定されている(図10のステップ100
    7)。 どちらにしても、ステップ1404では補間に必要なサンプル数だけ読み出すものとする。

    【0107】次にステップ1405で、アドレスSAD
    の小数部に応じてサンプル間の補間を行ない、補間済みの波形サンプルをレジスタTMPにセットする。 そして、ステップ1406で、再生バッファPBrバーのj
    番目のサンプル領域PBrバー(j)に波形サンプルT
    MPをチャンネル累算する。

    【0108】次に、ステップ1407でレジスタjが1
    27に至ったか否かを判定する。 レジスタjが127に至っていないときは、次のサンプルの処理を行なうべく、ステップ1408でレジスタjをインクリメントし、ステップ1403に戻る。 ステップ1407でレジスタjが127に至ったときは、処理を終了する。

    【0109】図15は、DMAコントローラ113がF
    s発生器110から発生するサンプリングクロックFs
    ごとに実行するDR(m)ルーチンのフローチャートである。 録音はモードmがm=1,5,6のときに行なわれるので、DR(m)ではm=1,5,6の何れかである。

    【0110】まずステップ1501で、サウンドI/O
    112の入力FIFO(外部入力111からA/D入力端子に入力した楽音信号がA/D変換され入力FIFO
    にセットされる)から、波形サンプルを録音バッファR
    Bkの録音ポインタRPで指されるサンプル領域RBk
    (RP)に転送する。 なお、モードmがm=1すなわちサンプリングモードのときは、サウンドI/O112のADPCM圧縮機能を用いてA/D変換したリニアな波形サンプルをADPCM圧縮し、圧縮後の波形サンプルを入力FIFO経由で録音バッファRBk(RP)に転送するものとする。 また、モードmがm=5,6すなわちEXフィルタモードまたはEXスクラッチモードのときは、サウンドI/O112のADPCM圧縮機能を使用せず、A/D変換したリニアな波形サンプルを入力F
    IFO経由で録音バッファRBk(RP)に転送する(ただし、m=6のときは録音バッファRBk(RP)
    の代わりに、録音バッファSRBk(RP)を用いる)
    ものとする。

    【0111】次に、ステップ1502で録音ポインタR
    Pをインクリメントし、ステップ1503で録音バッファRBk(m=6のときはSRBk、以下同様)が一杯になったか否かを判定する。 一杯になっていないときは、処理を終了する。 録音バッファRBkが一杯になったときは、ステップ1504でkを反転(0なら1、1
    なら0とする)し、ステップ1505で割り込みを発生し、処理を終了する。 この割り込みは、一杯になった録音バッファ(この時点ではRBkバー)の波形サンプルをフラッシュメモリ103に書き込んで録音バッファを空きにする処理をCPU101に依頼するための割り込みである。

    【0112】図16は、DMAコントローラ113がF
    s発生器110から発生するサンプリングクロックFs
    ごとに実行するDPルーチンのフローチャートである。

    【0113】まずステップ1601で、再生バッファP
    Br上の再生ポインタPPで示される波形サンプルPB
    r(PP)を、サウンドI/O112の出力FIFOに転送する。 出力FIFOに格納された波形サンプルは、
    図1で説明したように、D/A変換の後、サウンドシステム114に送出されて放音される。 次に、ステップ1
    602で再生ポインタPPをインクリメントし、ステップ1603で再生バッファPBrの再生サンプルの最後まで再生し終わったか否かを判別する。

    【0114】ステップ1603で再生バッファPBrのすべての波形サンプルを再生し終わったなら、ステップ1604でrを反転し(0なら1、1なら0とする)、
    もう一方の再生バッファを次に読み出すべき再生バッファPBrとする。 そして、ステップ1605で、CPU
    101に対し波形サンプルを用意することを要求するために割り込みを発生し、処理を終了する。 ステップ16
    03で再生バッファPBr上にまだ再生していない波形サンプルがある場合は、そのまま処理を終了する。

    【0115】次に、各モード別に、どのようなタイミングで上述の各フローチャートの処理がなされるかを説明する。

    【0116】まず、ノーマルモード(m=0)における動作を説明する。 モード切り替えスイッチでノーマルモードがユーザにより指定されると、上述の図4のモードSWイベントルーチンにおいて、レジスタmに0が設定される。 ノーマルモードの開始処理MS(0)は、特に説明すべき処理を行なうものではないのでフローチャートは省略した。 ただし、EXスクラッチモードなどによりサンプリングクロックFsごとにDPルーチンを実行する動作が停止していた場合は、MS(0)でその再生動作を再開する。

    【0117】図3のステップ301の初期設定において、あるいは上記MS(0)による再生動作の再開処理において、CPU101は、図2(a)の全チャンネルの音源レジスタをノートオフの状態に設定し、図2
    (c)の再生バッファPB0,PB1の全サンプル領域を0クリアし、サウンドI/O112およびDMAコントローラ113に再生の動作を行なうように指定した後、Fs発生器110によるサンプリングクロックFs
    を発生開始させる。 これにより、DMAコントローラ1
    13は、Fs発生器110からのサンプリングクロックFsごとにCPU101に割り込みをかけ、その都度図16のDPルーチンを実行して再生バッファ内の波形データを再生する動作を開始する。

    【0118】ここで、再生時の処理のタイミングについて説明する。 図17(a)は、再生時のタイミング図を示す。 S1〜S5の各区間は、128サンプル分の再生を行なうフレームを示す。 「CPUによる波形生成」
    は、CPU101により図11(a)の波形生成ルーチンHS(0)を実行して、再生バッファPB0またはP
    B1に次に再生すべき128サンプルを生成する処理を行なう区間を示す。 また、「DMACのDPルーチン」
    は、DPルーチンを実行して再生バッファ内の波形データを再生する処理を行なう区間を示す。 DPルーチンの実行はサンプリングクロックFsに応じた割り込みごとに行なわれ、その割り込みは1フレーム中で均等間隔に128回発生するようになっている。 「CPUによる波形生成」および「DMACのDPルーチン」の各区間に付された数字0〜4は、波形生成および再生の順序を示すために便宜的に付けた数字である。

    【0119】図17(a)では、まず区間S1で、CP
    U101がHS(0)を実行し、再生バッファPB0へ波形データ(128個の波形サンプル)を生成する。 次の区間S2では、サンプリングクロックFsごとの割り込みでDMAコントローラ113がDPルーチンを実行する。 これにより、区間S1で生成された再生バッファPB0の128個の波形サンプルは、区間S2で、順次、サウンドI/O112の出力FIFOに転送され再生される。 再生バッファPB0の128個の波形サンプルがすべてサウンドI/O112の出力FIFOに転送された時点(区間S2終了時)で割り込み(ステップ1
    605)が発生する。 この割り込みを契機として、CP
    U101は区間S3で波形生成ルーチンHS(0)を実行し、再生バッファPB0へ新たな波形データ(128
    個の波形サンプル)を生成する。

    【0120】以上は、再生バッファPB0に着目して説明したものであるが、PB1も同様にしてPB0と交互に用いられる。 要するに、DPルーチンはサンプリングクロックFsごとの割り込みで実行され、区間S1でP
    B1の波形サンプルを再生し、区間S2でPB0の波形サンプルを再生し、区間S3でPB1の波形サンプルを再生し、区間S4でPB0の波形サンプルを再生し、…
    というように、サンプリングクロックFsにしたがって交互にPB0とPB1の波形サンプルの再生を行なう。
    そして、各区間で128サンプルが再生された時点で発生する割り込みによりHS(0)が実行され、次の12
    8サンプルをPB0またはPB1(再生が行なわれていない方)に生成するようになっている。 ソフトウエアの階層構造上、DPルーチンはレベル1であり、HS
    (0)はレベル2である。 したがって、HS(0)が実行されているときにサンプリングクロックFsにしたがう割り込みがあると、DPルーチンが優先的に実行される。 これにより、DPルーチンによる再生と波形生成ルーチンHS(0)による波形生成とを並行して実行することができる。

    【0121】ノーマルモード(m=0)において、パッドがオンされていないときは、図17(a)で説明したタイミングで、再生バッファPB0,PB1内のオール0のサンプルが繰り返し再生される。 オール0のサンプルの再生であるので、実際には楽音は放音されていないのと同じことになる。 この状態で、パッドがオンされたときの処理を説明する。 図17(a)の「パッド」の矢印に示すように、区間S1でパッドがオンされたとする。 定常ルーチンにおいてパッドオンが検出されると、
    図7のオンイベントルーチンによりオンされたパッドに対応する波形データのノートオンが図2(a)の音源レジスタに書き込まれる。 定常ルーチンやオンイベントルーチンは、レベル3の処理であり、波形生成ルーチンH
    S(0)やDPルーチンと並行して動作可能である。 音源レジスタに書き込まれたノートオンは、次のHS
    (0)の実行において再生バッファに反映される。

    【0122】次に、サンプリングモード(m=1)における動作を説明する。 モード切り替えスイッチでサンプリングモードがユーザにより指定されると、上述の図4
    のモードSWイベントルーチンにおいて、レジスタmに1が設定される。 さらに、サンプリングモードの開始処理MS(1)が図5のように実行される。 MS(1)では、DPルーチンを停止し、サウンドI/O112およびDMAコントローラ113に録音の動作を行なうように指令する。 これにより、DMAコントローラ113
    は、Fs発生器110からのサンプリングクロックFs
    ごとにCPU101に割り込みをかけ、その都度図15
    のDR(1)ルーチンを実行して、外部からの波形サンプルを録音バッファに録音する動作を開始する。

    【0123】ここで、録音時の処理のタイミングについて説明する。 図17(b)は、録音時のタイミング図を示す。 S1〜S5の各区間は、128サンプル分の録音を行なうフレームを示す。 「DMACのDRルーチン」
    は、DR(1)ルーチンを実行してサウンドI/O11
    2の入力FIFO(外部入力111をA/D変換しAD
    PCM圧縮した波形サンプルが書き込まれている)の波形サンプルを録音バッファに書き込む処理(録音)を行なう区間を示す。 DR(1)ルーチンの実行はサンプリングクロックFsに応じた割り込みごとに行なわれ、その割り込みは1フレーム中で均等間隔に128回発生するようになっている。 「CPUによるフラッシュメモリへの書き込み」は、CPU101により図5のステップ509で録音バッファRB0またはRB1の波形サンプルをフラッシュメモリ103に書き込んで録音バッファを空きにする処理を行なう区間を示す。 なお、各区間に付された数字0〜4は、録音およびフラッシュメモリへの書き込みの順序を示すために便宜的に付けた数字である。

    【0124】図17(b)では、まず区間S1でサンプリングクロックFsごとに割り込みが発生して、その都度DMAコントローラ113がDR(1)ルーチンを実行する。 これにより、サウンドI/O112の入力FI
    FOの波形サンプルが、順次、録音バッファRB0へ書き込まれる。 録音バッファRB0に128個の波形サンプルが書き込まれた時点(区間S1終了時)で割り込み(ステップ1505)が発生する。 この割り込みを契機として、CPU101は、区間S2で録音バッファRB
    0の波形サンプルをフラッシュメモリ103に書き込み(ステップ509)、録音バッファRB0を空きにする。

    【0125】以上は、録音バッファRB0に着目して説明したものであるが、RB1も同様にしてRB0と交互に用いられる。 要するに、DR(1)ルーチンはサンプリングクロックFsごとの割り込みで実行され、区間S
    1でRB0に波形サンプルを録音し、区間S2でRB1
    に波形サンプルを録音し、区間S3でRB0に波形サンプルを録音し、…というように、サンプリングクロックFsにしたがってRB0とRB1に交互に波形サンプルの録音(書き込み)を行なう。 そして、各区間で128
    サンプルが録音された時点で発生する割り込みにより、
    録音バッファ(書き込みが行なわれていない方)の波形サンプルをフラッシュメモリ103に書き込むようになっている。 ソフトウエアの階層構造上、DR(1)ルーチンはレベル1であり、MS(1)はレベル3である。
    したがって、MS(1)が実行されているときにサンプリングクロックFsにしたがう割り込みがあると、DR
    (1)ルーチンが優先的に実行される。 これにより、D
    R(1)ルーチンによる録音とMS(1)によるフラッシュメモリ103への書き込みとを並行して実行することができる。

    【0126】次に、フィルタ再生モード(m=2)における動作を説明する。 モード切り替えスイッチでフィルタ再生モードがユーザにより指定されると、上述の図4
    のモードSWイベントルーチンにおいて、レジスタmに2が設定される。 フィルタ再生モードの開始処理MS
    (2)は、特に説明すべき処理を行なうものではないのでフローチャートは省略した。 ただし、EXスクラッチモードなどによりサンプリングクロックFsごとにDP
    ルーチンを実行する動作が停止していた場合は、ノーマルモードの開始処理MS(0)と同様に、MS(2)でその再生動作を再開する。

    【0127】フィルタ再生モードは、ノーマルモードとほぼ同様の手順で再生を行なう。 サンプリングクロックFsごとにDPルーチンが実行され、パッドオンが為されていないとき再生バッファPB0,PB1内のオール0のサンプルが繰り返し再生されること、およびパッドオンのときの処理手順も同じである。 また、再生時のタイミングも図17(a)と同じである。 ただし、フィルタ再生モードでは、タイマ割り込みにより所定時間間隔ごとに図9のRC取り込みルーチンRC(2)を実行してリボンコントローラ106の検出値を取り込むとともに、図17(a)におけるCPU101の波形生成処理をHS(0)の代わりに図11(b)のHS(2)とする。 波形生成ルーチンHS(2)では、パッドオンによる2音分の波形サンプルを再生バッファに累算するとともに、該再生バッファの波形サンプルに対し、リボンコントローラ106の検出値RDに応じたフィルタ係数でフィルタ処理を施す(ステップ1112,1113)。
    以上のようにして、リボンコントローラ106による再生音のフィルタ制御を行なう。

    【0128】フィルタ再生モードでは、ノーマルモードで4音再生していたのを2音に減らし、そのように楽音生成数を減らす代わりに、再生する波形にフィルタ処理を施すものである。 1フレーム時間内で所定数のサンプル生成を行なわなければならないため、ノーマルモードで4音再生可能であったのが、その再生音にフィルタ処理を施す場合には処理時間が足りなくなってしまう。 そこで、楽音生成数を2音に減らし、波形生成の処理時間を短縮し、余った時間でフィルタ処理を行なうようにしたものである。

    【0129】次に、ピッチ付き再生モード(m=3)における動作を説明する。 モード切り替えスイッチでフィルタ再生モードがユーザにより指定されると、上述の図4のモードSWイベントルーチンにおいて、レジスタm
    に3が設定される。 フィルタ再生モードの開始処理MS
    (3)は、特に説明すべき処理を行なうものではないのでフローチャートは省略した。 ただし、EXスクラッチモードなどによりサンプリングクロックFsごとにDP
    ルーチンを実行する動作が停止していた場合は、ノーマルモードの開始処理MS(0)と同様に、MS(3)でその再生動作を再開する。

    【0130】ピッチ付き再生モードは、ノーマルモードとほぼ同様の手順で再生を行なう。 サンプリングクロックFsごとにDPルーチンが実行され、パッドオンが為されていないとき再生バッファPB0,PB1内のオール0のサンプルが繰り返し再生されること、およびパッドオンのときの処理手順も同じである。 また、再生時のタイミングも図17(a)と同じである。 ただし、ピッチ付き再生モードでは、パッドオンイベントルーチンを図7に代えて図8とし、波形生成ルーチンを図11
    (a)のHS(0)の代わりに図11(c)のHS
    (3)とする。 図8のパッドオンイベントルーチンではパッド番号PNに応じたFナンバFNiを生成し、図1
    1(c)の波形生成ルーチンHS(3)では、そのFナンバFNiをアドレスADiに累算したアドレスで波形サンプルを読み出して再生する。 これにより、ピッチ付きで再生を行なうことができる。

    【0131】ピッチ付き再生モードでは、ノーマルモードで4音再生していたのを2音に減らし、そのように楽音生成数を減らす代わりに、再生する波形にピッチ付与処理を施すものである。 1フレーム時間内で所定数のサンプル生成を行なわなければならないため、ノーマルモードで4音再生可能であったのが、その再生音にピッチ付与処理を施す場合には処理時間が足りなくなってしまう。 そこで、楽音生成数を2音に減らし、波形生成の処理時間を短縮し、余った時間でピッチ付与処理を行なうようにしたものである。

    【0132】次に、スクラッチ再生モード(m=4)における動作を説明する。 モード切り替えスイッチでスクラッチ再生モードがユーザにより指定されると、上述の図4のモードSWイベントルーチンにおいて、レジスタmに4が設定される。 スクラッチ再生モードの開始処理MS(4)(図6)では、スクラッチ再生する波形データを所定領域に展開しスクラッチ領域SRとスクラッチポインタSPを設定して前準備を行なっておく。 なお、
    図6では図示していないが、EXスクラッチモードなどによりサンプリングクロックFsごとにDPルーチンを実行する動作が停止していた場合は、ノーマルモードの開始処理MS(0)と同様に、MS(4)でその再生動作を再開する。

    【0133】スクラッチ再生モードは、パッドオンによる2音分の再生についてはノーマルモードとほぼ同様の手順で再生を行なう。 サンプリングクロックFsごとにDPルーチンが実行され、パッドオンが為されていないとき再生バッファPB0,PB1内のオール0のサンプルが繰り返し再生されること、およびパッドオンのときの処理手順も同じである。 また、再生時のタイミングも図17(a)と同じである。 ただし、スクラッチ再生モードでは、タイマ割り込みにより図10のRC取り込みルーチンRC(4)を実行して、リボンコントローラ1
    06の検出値を取り込み、操作開始時にはスクラッチ用チャンネルの音源レジスタschにノートオンを書き込むとともに、リボンコントローラ106の操作の速度V
    ELを検出して音源レジスタschに書き込む。 また、
    CPU101の波形生成処理をHS(0)の代わりに図12(a)のHS(4)とする。 波形生成ルーチンHS
    (4)では、サブルーチンであるノーマル2によりパッドオンによる2音分の波形サンプルの生成をノーマルモード時と同様にして行ない、サブルーチンであるスクラッチ(図14)により、検出した速度VELに応じたF
    ナンバSFNをアドレスSADに累算して求めたアドレスSADでスクラッチ領域SRの波形サンプルを読み出して再生バッファPBrバーにチャンネル累算する。 これにより、パッドオンによる2音に加えて、指定した波形データを用いたスクラッチ再生が実現される。

    【0134】スクラッチ再生モードでは、ノーマルモードで4音再生していたのを2音に減らし、そのように楽音生成数を減らす代わりに、スクラッチ音を発生するものである。 1フレーム時間内で所定数のサンプル生成を行なわなければならないため、ノーマルモードで4音再生可能であったのが、それに加えてスクラッチ音を発生する場合には処理時間が足りなくなってしまう。 そこで、楽音生成数を2音に減らし、波形生成の処理時間を短縮し、余った時間でスクラッチ音の発生を行なうようにしたものである。

    【0135】次に、EXフィルタモード(m=5)における動作を説明する。 モード切り替えスイッチでEXフィルタモードがユーザにより指定されると、上述の図4
    のモードSWイベントルーチンにおいて、レジスタmに5が設定される。 EXフィルタモードの開始処理MS
    (5)のフローチャートは省略したが、MS(5)ではDR(5)ルーチンの起動処理を行なう。 すなわち、C
    PU101からサウンドI/O112およびDMAコントローラ113に指令して、Fs発生器110からのサンプリングクロックFsごとにCPU101に割り込みをかけ、その都度図15のDR(5)ルーチンを実行して、外部からの波形サンプルを録音バッファRBkに書き込む動作を開始させる。 このとき、Fs発生器110
    からのサンプリングクロックFsごとにCPU101に割り込みをかけ、その都度図16のDPルーチンを実行して再生バッファ内の波形データを再生する動作は、停止しない(もし、EXスクラッチモードなどによりサンプリングクロックFsごとにDPルーチンを実行する動作が停止していた場合は、ノーマルモードの開始処理M
    S(0)と同様に、MS(5)でその再生動作を再開するものとする)。 すなわち、サンプリングクロックFs
    ごとに、DPとDR(5)が実行されることになる。 この場合、同じサンプリングクロックFsにしたがって動作するので、DPとDR(5)は同期して動作し、DP
    ルーチンのステップ1605の割り込みとDR(5)ルーチンのステップ1505の割り込みは、全く同じタイミングで発行される。 この同じタイミングで発行される割り込みを契機として、図12(b)の波形生成ルーチンHS(5)が実行される。 なお、EXフィルタモードでは、外部入力を実質的に録音することはないので(D
    R(5)ルーチンで外部入力を取り込むのは、取り込んだ波形データをフィルタリングするためである)、フラッシュメモリ103への書き込みは行なわない。

    【0136】上述したようにDPとDR(5)から同じタイミングで割り込みが発生した時点では、録音バッファRBkバーに外部入力111からの波形データが12
    8サンプル(リニアサンプル)書き込まれており、かつ再生バッファPBrバーが空き状態である。 波形生成ルーチンHS(5)は、録音バッファRBkバーの128
    個の波形サンプルに対してフィルタリング処理し、処理結果の128個の波形サンプルを再生バッファPBrバーに設定する。 フィルタリングのフィルタ係数は、タイマ割り込みにより図9のRC取り込みルーチンRC
    (5)を実行してリボンコントローラ106の検出値R
    Dを取り込み、その検出値RDに応じて決定する。 以上のようにして、外部入力111に対してリボンコントローラ106によるフィルタ制御をかけて出力することができる。

    【0137】次に、EXスクラッチモード(m=6)における動作を説明する。 モード切り替えスイッチでEX
    スクラッチモードがユーザにより指定されると、上述の図4のモードSWイベントルーチンにおいて、レジスタmに6が設定される。 EXスクラッチモードの開始処理MS(6)のフローチャートは省略したが、MS(6)
    では、以下のような処理を行なう。 まず、CPU101
    からサウンドI/O112およびDMAコントローラ1
    13に指令して、Fs発生器110からのサンプリングクロックFsごとにCPU101に割り込みをかけ、その都度図16のDPルーチンを実行して再生バッファP
    Brの波形サンプルを再生出力する動作を停止させる。
    また、CPU101からサウンドI/O112に指令して、A/D入力とD/A出力を直接接続し、外部入力1
    11から直接サウンドシステム114へ楽音信号を流して放音するようにする。 また、CPU101からサウンドI/O112およびDMAコントローラ113に指令して、Fs発生器110からのサンプリングクロックF
    sごとにCPU101に割り込みをかけ、その都度図1
    5のDR(6)ルーチンを実行して、外部からの波形サンプルを録音バッファSRBkに書き込む動作を開始させる。 なお、EXスクラッチモードでは、外部入力を実質的に録音することはないので(DR(6)ルーチンで外部入力を取り込むのは、取り込んだ波形データをスクラッチ再生に用いるためである)、フラッシュメモリ1
    03への書き込みは行なわない。 さらに、ステップ30
    1の初期設定でタイマ割り込みを有効にしているので、
    タイマ105によるタイマ割り込みで、所定時間間隔ごとに図10のRC取り込みルーチンRC(6)が実行されるようになっている。

    【0138】リボンコントローラ106の操作をしない間は、図10のRC(6)ではステップ1001→10
    02→1003→エンドで処理を終えるので、外部入力111から直接サウンドシステム114へ放音される処理が継続される。 また、サンプリングクロックFsごとの割り込みでDR(6)ルーチンを実行しているので、
    外部入力111をA/D変換したリニアな波形サンプルが、入力FIFO経由で録音バッファSRB0,SRB
    1に交互に書き込まれる。

    【0139】リボンコントローラ106の操作が開始(指などが触れた)されると、RC(6)ではステップ1001→1002→1004→1005に進み、次のステップ1006で、CPU101からDMAコントローラ113に指示をして、サンプリングクロックFsごとにCPU101に割り込みをかけてDR(6)ルーチンを実行することを停止させるとともに、2つの録音バッファSRB0,SRB1のうち現在書き込みの行なわれていないほうの録音バッファSRBkバーに図2
    (e)で説明したようにスクラッチ領域SRを設定する。 次に、ステップ1007で読み出しアドレスSAD
    としてスクラッチポインタSPの値(所定値)をセットする。 さらに、ステップ1008で、再生バッファPB
    rに始めに再生すべき128サンプルを生成し、CPU
    101からDMAコントローラ113に指示をして、サンプリングクロックFsごとにCPU101に割り込みをかけてDPルーチンを実行することを再開する。 さらに、図16のDPルーチンのステップ1605で発生する割り込みと同じ意味の割り込みを発生させる。 この割り込みにより、HS(6)が実行され、次にスクラッチ再生される128サンプルがPBrバーに生成される。
    さらに、ステップ1008ではスクラッチ用チャンネルの音源レジスタschにノートオンを書き込む。 その後、ステップ1009で、CPU101からの指示により、サウンドI/O112のA/D入力からD/A出力への直接接続を切り離し、外部入力111から直接サウンドシステム114へ楽音信号を流して放音することを停止する。

    【0140】さらに、リボンコントローラ106に指などを触れたまま移動させると、ステップ1004からステップ1011に進み、速度VELを検出して音源レジスタschに設定する。 一方、サンプリングクロックF
    sごとの割り込みで実行されるDPルーチンでは、引き続き再生バッファPB0,PB1を交互に再生している。 したがって、リボンコントローラ106の操作が開始された時点から音源レジスタschに基づきスクラッチ音の再生が開始される。 特に、DPルーチンのステップ1605の割り込みによって起動される図12(c)
    の波形生成ルーチンHS(6)では、リボンコントローラ106の操作が行なわれている間はRS=1であるので、ステップ1221からステップ1222に進み、図14のEXスクラッチ処理が行なわれる。 図14のEX
    スクラッチ処理では、検出した速度VELに応じたFナンバSFNをアドレスSADに累算して求めたアドレスSADでスクラッチ領域SRの波形サンプルを読み出し、再生バッファPBrバーを設定する(ステップ14
    06ではチャンネル累算しているように見えるが、PB
    rバーはオール0が設定されているので、実質的にはスクラッチ再生する波形サンプルTMPがPBrバーに設定されることになる)。 以上により、外部から入力した波形データを用いたスクラッチ再生が実現される。

    【0141】図18は、図14のステップ1401で行なっている速度VELからスクラッチ用FナンバSFN
    への変換の例を示す。 この変換は、演算で行なってもよいし、テーブルを用いて変換してもよい。 図18(a)
    は、速度VELの値の絶対値が大きくなるほどFナンバSFNの変化量が大きくなるようにして、リボンコントローラ106の長さが短い場合でもピッチ変化が大きいスクラッチ効果を実現できるようにした例である。

    【0142】なお、スクラッチ再生では聴感上正確なピッチは要求されないので、必要に応じてスクラッチ用アドレスSADの小数部のビット数を減らしてもよい。 すなわち、図14のステップ1403で累算したアドレスSADの小数部のビット数を減らしてもよい。 そうすることにより、ステップ1405で行なう補間の演算量を減らすことができる。 さらに、速度VELからスクラッチ用FナンバSFNへ変換する際に図18(b)のようなテーブルを用いて、これによりFナンバSFNにおいて小数部のビット数を減らすことにより同様にして補間の演算量の減少の効果を得ることもできる。

    【0143】また、上記の例ではEXスクラッチモードにおいて、SRB0,SRB1の2つの録音バッファに交互に外部入力からの波形データを格納し、リボンコントローラの操作開始時点で書き込みが行なわれていない方の録音バッファにスクラッチ領域を設定するようにしているが、録音バッファを3つ以上設けて順番に(リング状に)波形データを格納し、リボンコントローラの操作開始時点で書き込みが行なわれていない複数の録音バッファ上にスクラッチ領域を設定するようにしてもよい。 そのようにすれば、複数の録音バッファ上にスクラッチ領域を設定するので、スクラッチするのに十分な容量のスクラッチ領域を設定することができる。 また、1
    つの録音バッファの容量を小さくできるので、リボンコントローラの操作開始時点で書き込みの行なわれている録音バッファ上のデータ量が少なくなり、スクラッチに用いることがないデータ(捨て去るデータ)を少なくできる。

    【0144】なお図17(a)では、パッドオンの検出区間、CPUによる波形生成の区間、およびDMACのDPルーチンの実行区間の各区間先頭時点を完全に一致させて図示しているが、必ずしも一致させる必要はなく、各区間はずれていてもよい。 図17(b)の録音時タイミングも同様である。

    【0145】また図17(a)では、DPルーチンで一方の再生バッファのサンプルを再生し終えた時点でCP
    Uによる波形生成を行なうようにしているが、再生バッファ中で再生していないサンプル数を検出し、その数が所定数以下になったら、空き部分に新たなサンプルを生成するようにしてもよい。 したがって、サンプルの再生と生成のタイミングを調整しさえすれば、再生バッファは1つでもよいし、3つ以上の複数でもよい。

    【0146】

    【発明の効果】以上説明したように、この発明によれば、ソフトウェア音源において生成する楽音数を減らす代わりに、ディジタル音色フィルタ処理、ピッチ付与処理、あるいはスクラッチ効果を付与する処理を行なうモードを備えているので、従来ソフトウェア音源で実現されていない機能を実現することができ、ユーザの種々の目的に添った楽音生成を行なうことができる。

    【図面の簡単な説明】

    【図1】この発明に係る楽音発生装置であるサンプラーのブロック構成図

    【図2】図1のサンプラーにおける各種のワーク領域を示す図

    【図3】定常ルーチンのフローチャート図

    【図4】モードSWイベントルーチンのフローチャート図

    【図5】サンプリングモード開始処理MS(1)のフローチャート図

    【図6】スクラッチ再生モード開始処理MS(4)のフローチャート図

    【図7】パッドオンイベントルーチン(モードm=0,
    2,4)のフローチャート図

    【図8】パッドオンイベントルーチン(モードm=3)
    のフローチャート図

    【図9】リボンコントローラ検出値取り込みルーチンR
    C(m)(m=2,5)のフローチャート図

    【図10】リボンコントローラ検出値取り込みルーチンRC(m)(m=4,6)のフローチャート図

    【図11】波形生成ルーチンHS(m)(モードm=
    0,2,3)のフローチャート図

    【図12】波形生成ルーチンHS(m)(モードm=
    4,5,6)のフローチャート図

    【図13】サブルーチンノーマルnおよびピッチ2のフローチャート図

    【図14】スクラッチ処理、およびEXスクラッチ処理のフローチャート図

    【図15】DR(m)ルーチン(モードm=1,5,
    6)のフローチャート図

    【図16】DPルーチンのフローチャート図

    【図17】再生時および録音時のタイミングを示す図

    【図18】速度VELからスクラッチ用FナンバSFN
    ヘの変換例を示す図

    【符号の説明】

    101…中央処理装置(CPU)、102…リードオンリーメモリ(ROM)、103…フラッシュメモリ、1
    04…ランダムアクセスメモリ(RAM)、105…タイマ、106…リボンコントローラ、107…パッド、
    108…ディスプレイ、109…パネルスイッチ、11
    0…サンプリングクロック(Fs)発生器、111…外部入力、112…サウンドI/O、113…DMA(ダイレクトメモリアクセス)コントローラ、114…サウンドシステム、115…バスライン。

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈