JP2005010597A - Data processor and program - Google Patents

Data processor and program Download PDF

Info

Publication number
JP2005010597A
JP2005010597A JP2003176206A JP2003176206A JP2005010597A JP 2005010597 A JP2005010597 A JP 2005010597A JP 2003176206 A JP2003176206 A JP 2003176206A JP 2003176206 A JP2003176206 A JP 2003176206A JP 2005010597 A JP2005010597 A JP 2005010597A
Authority
JP
Japan
Prior art keywords
coefficient
multiplication
data
basic
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003176206A
Other languages
Japanese (ja)
Other versions
JP4127130B2 (en
Inventor
Yuji Ikegaya
祐治 池ヶ谷
Shigeki Kimura
繁樹 木村
Takaaki Makino
貴昭 牧野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2003176206A priority Critical patent/JP4127130B2/en
Publication of JP2005010597A publication Critical patent/JP2005010597A/en
Application granted granted Critical
Publication of JP4127130B2 publication Critical patent/JP4127130B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To realize various variation in a coefficient submitted to a calculation without requiring any special circuit for determining the coefficient. <P>SOLUTION: A coefficient determination part 6 updates a basic coefficient Cf represented as a fixed point type bit string successively. A selector 3 regards a part of the bit string of the basic coefficient Cf specified by the coefficient determination part 6 as a mantissa part Y and another part as an exponent part E, and outputs a coefficient Cx for calculation obtained by converting the mantissa part Y and the exponent part E. A multiplication part 4 multiplies the coefficient Cx for calculation outputted from the selector 3 by sample data X to be processed and outputs the obtained multiplication data Xt. A shifter 5 applies a bit shift corresponding to the numeral indicated by the exponent part E outputted from the selector 3 to the multiplication data Xt outputted from the multiplication part 4 and outputs the result. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、楽音を表すデータなどのデジタルデータに対して各種の処理を施す技術に関し、特に、デジタルデータに乗ぜられる係数の値を順次に変更するための技術に関する。
【0002】
【従来の技術】
音を表すデジタルデータ(以下「サンプルデータ」という)に対してエコーやリバーブといった各種の音楽的な効果を付与する装置(例えばDSP(Digital Signal Processor))が普及している。この種の装置において実行される典型的な処理のひとつとして、サンプルデータと特定の係数(以下「演算用係数Cx」という)とを乗算する処理がある。この乗算に際して演算用係数Cxの値を段階的に増加または減少させれば、楽音の音量を段階的に増加させるフェードインや音量を段階的に減少させるフェードアウトなどの効果が得られる(例えば特許文献1参照)。
【0003】
演算用係数Cxを初期値Cstartから目標値CendまでN段階にわたって徐々に変化させる場合、各時点における演算用係数Cxの値は以下のように算定される。

Figure 2005010597
この方法によれば、例えば「0」から「1」まで「0.1」ずつ増加するように(すなわち0→0.1→0.2→0.3→…→0.9→1といった具合に)、演算用係数Cxの値を段階的に変化させることができる。
【0004】
【特許文献1】
特開平7−122973号公報(段落0021、段落0022、および第1図)
【0005】
【発明が解決しようとする課題】
しかしながら、この方法によって演算用係数Cxを変化させた場合には、各段階ごとの演算用係数Cxの変化量Caddは一定(Cadd=(Cend−Cstart)/N)となる。このため、この演算用係数CxとサンプルデータXとの乗算結果に基づいて発せられる音が聴感上において単調になってしまうという問題があった。この問題を解消するために、演算用係数Cxを初期値から目標値に向かって指数関数的に変化させる構成も考えられる。しかしながら、この構成のもとでは、演算用係数Cxの変化量Caddを指数関数的に変化させるための演算回路を別途に設ける必要があり、回路規模の肥大化を招くといった問題が生じ得る。
【0006】
本発明は、このような事情に鑑みてなされたものであり、その目的とするところは、演算に供される係数を決定するための特別な回路を要することなく、その係数の多様な変化を実現することにある。
【0007】
【課題を解決するための手段】
上述した課題を解決するために、本発明は、固定小数点型のビット列として表された基礎係数を特定する特定手段と、前記特定手段によって特定された基礎係数のビット列の一部を仮数部とする一方、他の一部を指数部とし、前記仮数部を変換して得られる演算用係数と前記指数部とを出力する変換手段と、前記変換手段から出力された演算用係数と処理対象たるサンプルデータとを乗算し、これにより得られた乗算データを出力する乗算手段と、前記乗算手段から出力された乗算データに対し、前記変換手段から出力された指数部が示す数値に応じたビットシフトを施して出力するシフト手段とを具備する。
この構成によれば、固定小数点型のビット列として表された基礎係数が、仮数部と指数部とを含む浮動小数点型のビット列として取り扱われて乗算およびビットシフトが施される。したがって、特定手段によって順次に特定される基礎係数が直線的に変化する数値であったとしても、ビットシフトを経て得られるデータ(シフト手段から出力されるシフトデータ)の信号レベルを指数関数的に変化させることができる。
【0008】
本発明の望ましい態様においては、第1のモードおよび第2のモードのいずれかを指定する制御手段が設けられる。この態様において、前記変換手段は、前記制御手段によって前記第1のモードが指定されている場合に、前記特定手段によって特定された基礎係数をそのまま前記演算用係数として出力する一方、前記制御手段によって前記第2のモードが指定されている場合に、前記仮数部を変換して得られる演算用係数と前記指数部とを出力する。また、前記シフト手段は、前記制御手段によって前記第1のモードが指定されている場合に、前記乗算データをそのまま出力する一方、前記制御手段によって前記第2のモードが指定されている場合に、前記乗算データに対して前記ビットシフトを施して出力する。
この態様によれば、基礎係数が本来の固定小数点型のビット列として扱われる第1のモードと基礎係数が浮動小数点型のビット列として扱われる第2のモードとが適宜に切り換えられる。したがって、ビットシフトを経て得られるシフトデータを多様に変化させることができる。しかも、第1のモードおよび第2のモードのいずれにおいても、乗算手段による乗算処理の内容は変わらない。したがって、各モードごとに構成が異なる乗算手段を設ける必要はない。
【0009】
他の態様においては、前記基礎係数の初期値および目標値と当該初期値から目標値に変化するまでの補間回数とを取得する取得手段が設けられ、前記特定手段は、前記初期値から前記補間回数に応じた回数の更新を経て前記目標値に至るように前記基礎係数を順次に更新する。この構成のもと、取得手段が、利用者からの指示に応じて初期値、目標値および補間回数を取得する構成とすれば、基礎係数を利用者の意図に応じて更新させることができる。さらに他の態様において、前記取得手段は、初期値、目標値および補間回数に加えて(または補間回数に代えて)補間時間を取得する一方、前記特定手段は、前記基礎係数が前記補間時間をかけて前記初期値から前記目標値に至るように更新する。
【0010】
また、本発明の望ましい態様において、前記特定手段は、複数の基礎係数を特定し、前記変換手段は、前記複数の基礎係数の各々について前記演算用係数および前記指数部を出力し、前記乗算手段は、処理対象たる複数のサンプルデータの各々について、前記複数の基礎係数から得られた演算用係数のいずれかを用いた乗算を行なうとともに、各サンプルデータについて得られた乗算データを出力し、前記シフト手段は、前記乗算手段から出力された複数の乗算データの各々について、前記変換手段から出力された指数部が示す数値に応じたビットシフトを施し、複数のシフトデータを加算する累積手段に対して、前記ビットシフトにより得られたシフトデータを出力する。この望ましい態様によれば、複数の基礎係数の各々について得られるシフトデータの信号レベルを指数関数的に変化させることができる。
さらに望ましくは、前記複数の基礎係数の初期値および目標値と当該初期値から目標値に変化するまでの補間回数とを取得する取得手段が設けられ、前記特定手段は、前記複数の基礎係数の各々が、当該基礎係数について前記取得手段が取得した初期値から補間回数に応じた回数の更新を経て目標値に至るように、当該基礎係数を順次に更新する。この望ましい態様によれば、複数の基礎係数の各々が独立に更新されるから、シフトデータをより多様に変化させることができる。
【0011】
なお、本発明は、コンピュータをデータ処理装置として機能させるためのプログラムとしても特定され得る。すなわち、このプログラムは、固定小数点型のビット列として表された基礎係数を特定する特定処理と、前記特定処理によって特定された基礎係数のビット列の一部を仮数部とする一方、他の一部を指数部とし、前記仮数部を変換して得られる演算用係数と前記指数部とを出力する変換処理と、前記変換処理によって出力された演算用係数と処理対象たるサンプルデータとを乗算し、これにより得られた乗算データを出力する乗算処理と、前記乗算処理によって出力された乗算データに対し、前記変換処理によって出力された指数部が示す数値に応じたビットシフトを施して出力するシフト処理とをコンピュータに実行させるためのプログラムである。このプログラムによっても、本発明に係るデータ処理装置と同様の効果が得られる。なお、本発明に係るプログラムは、ネットワークを介した配信によってコンピュータに提供されるものであってもよいし、光ディスクに代表される各種の記録媒体に格納された形態で提供されてコンピュータにインストールされるものであってもよい。
【0012】
また、本発明は、サンプルデータを処理するための方法としても特定され得る。この方法は、固定小数点型のビット列として表された基礎係数を順次に特定する特定ステップと、特定ステップにおいて特定された基礎係数のビット列の一部を仮数部とするとともに他の一部を指数部とし、前記仮数部を変換して得られる演算用係数と前記指数部とを出力する変換ステップと、前記変換ステップにおいて得られた演算用係数と処理対象たるサンプルデータとを乗算し、これにより得られた乗算データを出力する乗算ステップと、前記乗算ステップによって得られた乗算データに対し、前記変換手段から出力された指数部が示す数値に応じたビットシフトを施して出力するシフトステップとを有する。この方法によっても、本発明に係るデータ処理装置と同様の効果が得られる。
【0013】
【発明の実施の形態】
以下、図面を参照して、本発明の好適な実施形態について説明する。
【0014】
<A:実施形態の構成>
図1は、本発明の実施形態に係るミキサの構成を示すブロック図である。このミキサ80は、楽音を表す信号(以下「楽音信号」という)が電子楽器などの上位装置から入力端子81に入力されると、この楽音信号に対して各種の音楽的な効果(例えば音響効果)を付与したうえで出力端子85から出力する装置である。出力端子85には、ミキサ80から出力された楽音信号を増幅するためのアンプ87が接続されている。スピーカ88は、このアンプ87から出力された楽音信号に基づいて音を発する。
【0015】
図1に示すように、ミキサ80は、A/D(Analog to Digital)変換部82、データ処理装置100、累積部83、D/A(Digital to Analog)変換部84および操作部86を有する。このうちA/D変換部82は、入力端子81から入力された楽音信号をサンプリングし、これにより得られたデジタルデータたるサンプルデータXを順次に出力する。本実施形態におけるひとつのサンプルデータXは合計24ビットのデータである。
【0016】
データ処理装置100は、A/D変換部82から出力されたサンプルデータXに対して各種の演算処理を行なう。本実施形態においては、サンプルデータXに対してフェードインまたはフェードアウトの効果が付与される場合を想定する。一方、操作部86は、キーや摘みといった多数の操作子を備えており、利用者による操作に応じた信号をデータ処理装置100に出力する。利用者は、この操作部86を適宜に操作することにより、データ処理装置100による演算処理の内容を任意に変更することができる。
【0017】
累積部83は、データ処理装置100から出力されたデータに対し、必要に応じて累積演算を行なうものである。累積部83から出力されたデータは、D/A変換部84によってアナログ信号たる楽音信号に変換された後に出力端子85から出力される。
【0018】
次に、図2は、データ処理装置100の構成を示すブロック図である。同図に示すように、データ処理装置100は、データレジスタ1、係数レジスタ2、セレクタ3、乗算部4、シフタ5、係数決定部6および制御部7を有する。このうちセレクタ3、乗算部4、シフタ5、係数決定部6および制御部7の各部は、DSP(Digital Signal Processor)などのハードウェアのみによって実現されてもよいし、CPU(Central Processing Unit)などのハードウェアと当該CPUが実行するプログラムとの協働によって実現されてもよい。
【0019】
データレジスタ1は、A/D変換部82から供給されたサンプルデータXを記憶するための手段である。一方、係数レジスタ2は、基礎係数Cfを記憶するための手段である。この基礎係数Cfは、サンプルデータXに乗算されるべき演算用係数Cxを算定するための基礎となる係数であり、サンプルデータXと同様に合計24ビットのビット列である。基礎係数Cfは、固定小数点型のビット列として表現されている。
【0020】
係数決定部6は、制御部7による制御のもと、新たな基礎係数Cfを順次に特定して係数レジスタ2に出力する。より具体的には、係数決定部6は、初期値Cstartから目標値Cendに向かって段階的に変化するように基礎係数Cfの値を算定する。係数レジスタ2は、係数決定部6から新たな基礎係数Cfが供給されるたびに、それまでに保持していた基礎係数Cfを新たな基礎係数Cfに更新する。
【0021】
制御部7は、データ処理装置100の各部を制御するための手段である。例えば、制御部7は、操作部86に与えられた操作に応じて、動作モードを示す信号(以下「コントロール信号」という)CTRをセレクタ3およびシフタ5に出力する。ここで、本実施形態においては、データ処理装置100の動作モードとして第1のモードと第2のモードとが用意されている。このうち第1のモードは、上述した従来の技術と同様に、サンプルデータXに乗算されるべき演算用係数Cxを直線的に変化させるモードである。これに対し、第2のモードは、サンプルデータXに乗ぜられる係数を指数関数的に変化させるモードである。利用者は、操作部86を操作することによって第1および第2のモードのいずれかを任意に選択することができる。制御部7は、第1のモードが選択されている場合にはコントロール信号CTRをLレベルとする一方、第2のモードが選択されている場合にはコントロール信号CTRをHレベルとする。
【0022】
セレクタ3は、コントロール信号CTRによって指示される動作モードに応じて、係数レジスタ2に格納された基礎係数Cfと、この基礎係数Cfに所定の処理を施して得られる係数とのうちのいずれかを選択する手段である。このセレクタ3によって選択された係数は、演算用係数Cxとして乗算部4に出力される。さらに詳述すると、第1のモードが選択されている場合、セレクタ3は、係数レジスタ2に格納された基礎係数Cfを、そのまま(すなわち何らの処理も施すことなく)演算用係数Cxとして出力する。これに対し、第2のモードが選択されている場合、セレクタ3は、基礎係数Cfを浮動小数点型のビット列として取り扱い、この基礎係数Cfを所定の変換則に従って変換する。そして、セレクタ3は、この変換により得られた数値を演算用係数Cxとして出力する。より具体的には、セレクタ3は、基礎係数Cfを仮数部Yと指数部Eとに区分し、このうち仮数部Yを所定の変換則に従って変換したものを演算用係数Cxとして乗算部4に出力する一方、指数部Eをシフタ5に出力する。なお、仮数部Yの変換則については後に詳述する。
【0023】
乗算部4は、入力端子T1と入力端子T2とに供給されたデータを積算し、これにより得られたデータを乗算データXtとして出力する。乗算部4の入力端子T1にはサンプルデータXがデータレジスタ1から順次に供給される。一方、入力端子T2には演算用係数Cxがセレクタ3から順次に供給される。したがって、乗算部4は、サンプルデータXと演算用係数Cxとの乗算により得られたデータを乗算データXtとしてシフタ5に出力する。
【0024】
シフタ5は、コントロール信号CTRによって指示される動作モードに応じて乗算データXtにビットシフトを施し、これにより得られたデータをシフトデータXsとして出力する。より具体的には、第1のモードが選択されている場合、シフタ5は、乗算データXtに対してビットシフトを施すことなくそのまま出力する。これに対し、第2のモードが選択されている場合、シフタ5は、乗算データXtを、セレクタ3から供給される指数部Eに応じたビット数だけビットシフトさせたデータをシフトデータXsとして出力する。このシフトデータXsは累積部83に供給されて加算処理に供される。
【0025】
<B:実施形態の動作>
次に、本実施形態の動作を説明する。なお、以下の説明において、ある数値が「“」および「”」によって囲まれている場合には、その数値が二進数として表記されていることを示している。
【0026】
まず、上位装置から入力端子81に入力された楽音信号が、A/D変換部82によってサンプルデータXに変換されたうえでデータ処理装置100に供給される。このサンプルデータXは、データレジスタ1に順次に格納される。
【0027】
一方、利用者は、操作部86を適宜に操作することにより、サンプルデータXに対する乗算処理に関するパラメータと動作モードとを入力する。乗算処理に関するパラメータは、基礎係数Cfの初期値Cstart、目標値Cend、補間回数Mおよび補間時間Tである。このうち補間回数Mは、初期値Cstartから目標値Cendまでの間において基礎係数Cfを補間する回数を示す数値である。一方、補間時間Tは、基礎係数Cfが初期値Cstartから変化して目標値Cendに至るまでの時間を示している。制御部7は、操作部86に与えられた操作に応じて初期値Cstart、目標値Cend、補間回数Mおよび補間時間Tを取得し、これらのパラメータを係数決定部6に出力する。また、制御部7は、初期値Cstartを係数レジスタ2に出力して記憶させる。
【0028】
さらに、制御部7は、係数決定部6に対し、補間回数Mと補間時間Tとに応じた時間間隔でタイミングパルスTMを順次に出力する。このタイミングパルスTMは、係数決定部6が新たな基礎係数Cfの算定を行なうべきタイミングを指示するためのパルス信号である。したがって、利用者により指定された補間回数Mが大きいほど、または利用者により指定された補間時間Tが短いほど、各タイミングパルスTMが出力される時間間隔(すなわち係数決定部6が基礎係数Cfを算定する時間間隔)は短くなる。また、制御部7は、セレクタ3およびシフタ5に供給されるコントロール信号CTRを、選択された動作モードに応じたレベルに設定する。
【0029】
一方、係数決定部6は、制御部7から供給されたパラメータに基づいて係数変化量Caddを算定する。この係数変化量Caddは、初期値Cstartから目標値Cendに至るまでの各段階間における基礎係数Cfの変化量であり、以下の式により算定される。
Cadd=(Cstart−Cend)/M
【0030】
また、係数決定部6は、制御部7からタイミングパルスTMが供給されるたびに、新たな基礎係数Cfを固定小数点型のビット列として算定し、この基礎係数Cfを係数レジスタ2に出力する。具体的には、係数決定部6は、タイミングパルスTMが供給されるたびに係数変化量Caddだけ増加するように基礎係数Cfを算定する。したがって、初期値Cstartから目標値Cendに至るまでの合計M個の段階のうち第i(iは0≦i≦Mを満たす整数)段階における基礎係数Cfの数値は以下の式により算定される。
Cf(i)=Cstart+Cadd×i
ただし、基礎係数Cfが初期値Cstartに一致する段階を第0段階とし、基礎係数Cfが目標値Cendに一致することになる段階を第M段階とする。
【0031】
以上の動作により、係数レジスタ2に格納される基礎係数Cfは、タイミングパルスTMが制御部7から出力されるたびに係数変化量Caddだけ増加して第M段階目に目標値Cendに到達する。係数レジスタ2に格納された基礎係数Cfはセレクタ3に対して順次に出力される。ここで、セレクタ3およびシフタ5の動作は、利用者によって選択された動作モードに応じて異なる。このため、以下では、第1のモードが選択されている場合と第2のモードが選択されている場合とに分けて以後の動作を説明する。
【0032】
(1)第1のモードが選択されている場合
第1のモードが選択されている場合、セレクタ3は、係数レジスタ2から出力される基礎係数Cfをそのまま乗算部4に演算用係数Cxとして出力する。この場合、セレクタ3からシフタ5に対する指数部Eの供給は実行されない。
【0033】
一方、乗算部4は、データレジスタ1から供給されるサンプルデータXとセレクタ3から供給される演算用係数Cxとを乗算し、これによって得られた乗算データXtを出力する。一方、シフタ5は、乗算部4から供給される乗算データXtをそのままシフトデータXsとして出力する。このシフトデータXsは、累積部83によって累積演算に供された後に、D/A変換部84によってアナログ信号たる楽音信号に変換されて出力端子85から出力される。
【0034】
ここで、図5のグラフAは、第1のモードにおけるセレクタ3の入力値(基礎係数Cfの数値)と出力値(演算用係数Cxの数値)との関係を示している。同図において、横軸はセレクタ3に対する入力値を表し、縦軸はセレクタ3からの出力値を表している。同図に示すように、第1のモードが選択されている場合には、セレクタ3に対する入力値と出力値とは等しくなる。一方、上述したように基礎係数Cfは直線的に変化するから、第1のモードにおいては、従来の技術と同様に、ミキサ80から出力される楽音信号の信号レベルが直線的に変化することとなる。
【0035】
(2)第2のモードが選択されている場合
一方、第2のモードが選択されている場合、セレクタ3は、係数レジスタ2から出力される基礎係数Cfを浮動小数点型のビット列として取り扱い、この基礎係数Cfを所定の変換則に従って変換するとともに、この変換により得られた数値を演算用係数Cxとして出力する。この変換の内容について詳述すると以下の通りである。
【0036】
いま、図3に示すように、基礎係数Cfがビット“b23”からビット“b0”までの合計24個のビットからなるビット列である場合を想定する。なお、以下では、ビット列を構成する各ビットを、最上位ビットから数えて表現する。例えば、最上位ビットから数えて第3番目のビット(図3に示すビット“b21”)については、単に「第3番目のビット」と表記する。
【0037】
セレクタ3は、基礎係数Cfのうち最上位ビット“b23”を符号ビットSとして取り扱う。例えば、最上位ビット“b23”が“0”であれば基礎係数Cfは正数であり、同ビットが“1”であれば基礎係数Cfは負数であるといった具合である。
【0038】
第2のモードが選択されている場合、セレクタ3は、基礎係数Cfのビット列の一部を仮数部Yとし、他の一部を指数部Eとして取り扱う。さらに詳述すると、セレクタ3は、基礎係数Cfのうち第2番目のビット“b22”から第5番目のビット“b19”までの合計4ビットからなるビット列を指数部Eとして特定する。また、セレクタ3は、基礎係数Cfのうち、符号ビットS(最上位ビット“b23”)と、第6番目のビット“b18”から第24番目のビット“b0”までの合計19ビットと、4ビット分の“0”データとを最上位からみてこの順に配列させたビット列を仮数部Yとして特定する。
【0039】
そして、セレクタ3は、この仮数部Yを所定の変換則に従って変換して演算用係数Cxを生成する。さらに詳述すると、この変換によって得られる演算用係数Cxの内容は、指数部Eが十進数としての「0」に等しいか否かに応じて異なる。より具体的には、図3に示すように、指数部Eが「0」でない場合、セレクタ3は、基礎係数Cfの符号ビットS“b23”と、この符号ビットSを反転したビット“!b23”と、ビット“b18”からビット“b0”までの19ビットと、3ビット分の“0”データとを最上位からみてこの順に配列させた合計24ビットのビット列を、演算用係数Cxとして生成する。すなわち、十進数表記に即して表現すれば、仮数部Yは、(0.5+0.5Y)または(−0.5+0.5Y)に変換されることとなる。一方、指数部Eが「0」である場合、セレクタ3は、基礎係数Cfの符号ビットS“b23”と、この符号ビットSに等しいビット“b23”と、ビット“b18”からビット“b0”までの19ビットと、3ビット分の“0”データとを最上位からみてこの順に配列させた合計24ビットのビット列を、演算用係数Cxとして生成する。すなわち、十進数表記に即して表現すれば、仮数部Yは(0.5Y)に変換されることとなる。セレクタ3は、以上の手順を経て得られた演算用係数Cxを乗算部4に出力する一方、指数部Eをシフタ5に出力する。
【0040】
一方、乗算部4は、データレジスタ1から供給されるサンプルデータXとセレクタ3から供給される演算用係数Cxとを乗算し、これによって得られた乗算データXtをシフタ5に出力する。この乗算部4による演算の内容は、第1のモードが選択されている場合と変わらない。
【0041】
次に、シフタ5は、乗算部4から供給される乗算データXtを、セレクタ3から供給された指数部Eが示す数値に相当するビット数だけビットシフトし、これにより得られたビット列をシフトデータXsとして出力する。上述したように指数部Eは4ビットであるから十進数としての「0」から「15」までの数値をとり得る。したがって、シフタ5は、「0」ビットから「15」ビットまでのいずれかのビット数だけ乗算データXtをシフトする。シフタ5から出力されたシフトデータXsは、累積部83によって累積演算に供された後にアナログ信号たる楽音信号に変換されて出力端子85から出力される。
【0042】
ここで、第2のモードが選択されているときにセレクタ3と乗算部4とシフタ5とによって実行される演算の内容を符号ビットSと指数部Eの十進数表示とに応じてまとめれば以下の通りになる。なお、以下の各式における「^」はべき乗を表す演算子である。
(a)符号ビットS“b23”が“0”の場合(すなわち基礎係数Cfが正である場合)
Figure 2005010597
なお、上式において、「0.9999…〜0.5」とは、「0.5」以上「1」未満の数値である。同様に、「0.49999…〜0」とは、「0」以上「0.5」未満の数値である。
(b)符号ビットS“b23”が「1」の場合(すなわち基礎係数Cfが負である場合)
Figure 2005010597
なお、上式において、「0.500…1〜1.0」とは、「0.5」よりも大きく「1.0」以下の数値である。同様に、「0.00…1〜0.5」とは、「0」よりも大きく「0.5」以下の数値である。
以上に示された演算により得られるシフトデータXsの内容は、指数部Eの数値に応じて図4のように変化する。
【0043】
図5に示すグラフBは、第2のモードにおけるセレクタ3の入力値と出力値との関係を示している。すなわち、横軸はセレクタ3に対して入力される基礎係数Cfの数値を示し、縦軸はセレクタ3から出力される演算用係数Cxと指数部Eとを併せて浮動小数点型の数値と捉えたときの当該数値を示している。換言すれば、図5の縦軸は、上述した(a)および(b)の演算を通じて結果的にサンプルデータXに乗ぜられることとなる係数を示している。このグラフBに示されるように、第2のモードにおけるセレクタ3の出力値は、入力値の増減に応じて指数関数的に変化する。したがって、シフタ5から出力されたシフトデータXsによれば、第1のモードのように基礎係数Cfを固定小数点型のビット列として取り扱った場合よりも、楽音の音圧レベルの変化を人間の聴覚にとって自然なものとすることができる。
【0044】
また、第2のモードにおけるセレクタ3への入力値に対する出力値(浮動小数点型のビット列の数値)の大小関係は、第1のモードにおけるセレクタ3への入力値に対する出力値(固定小数点型のビット列の数値)の大小関係と一致する。すなわち、第2のモードにおける浮動小数点型のビット列の数値と、第1のモードにおける固定小数点型のビット列の数値とは、双方ともセレクタ3への入力値の増加に伴なって増加する(セレクタ3への入力値の減少に伴なって減少する)。したがって、固定小数点型の基礎係数Cfをセレクタ3において浮動小数点型の係数として取り扱っているにも拘わらず、不自然な楽音が発せられることはない。このように、本実施形態によれば、演算用係数Cxを指数関数的に変化させるための演算回路を別途に設けることなく、その係数の多様な変化が実現される。
【0045】
しかも、本実施形態によれば、これらの効果を、ビット列を単に並べ替える構成によって得ることができる。したがって、例えば基礎係数Cfを指数関数的に変化させるための演算回路を別途に設けた場合と比較して、構成の簡素化を図るとともに回路規模の肥大化を抑えることができる。
【0046】
<C:変形例>
以上の形態は本発明の一例に過ぎず、この形態には本発明の趣旨の範囲内において種々の変形を施すことが可能である。具体的には、以下のような変形例が考えられる。
【0047】
<C−1:変形例1>
係数レジスタ2として複数の基礎係数Cfを格納する記憶手段を採用し、その各々を独立に更新し得る構成としてもよい。
図6は、本変形例に係るデータ処理装置の構成を示すブロック図である。同図に示すように、データ処理装置200の係数レジスタ2には、係数決定部6によって生成されたn個の基礎係数Cf1〜Cfnが記憶される。この係数レジスタ2には、基礎係数Cf1〜Cfnのいずれかが格納された記憶領域を指定するための信号(以下「選択信号」という)SELが制御部7から供給される。係数決定部6から新たな基礎係数Cfi(iは1≦i≦nを満たす正数)が供給されると、係数レジスタ2は、選択信号SELによって指定された記憶領域の基礎係数Cfを新たな基礎係数Cfiに更新する。一方、制御部7は、利用者による操作部86への操作に基づき、n個の基礎係数Cf1〜Cfnの各々について、初期値Cstart、目標値Cendおよび補間回数Mを特定して係数決定部6に指示する。係数決定部6は、n個の基礎係数Cf1〜Cfnの各々が、当該基礎係数Cfiについて特定された初期値Cstartから補間回数Mに応じた回数の更新を経て目標値Cendに至るように、新たな基礎係数Cfiを特定して係数レジスタ2に出力する。この構成により、係数レジスタ2に格納されたn個の基礎係数Cf1〜Cfnの各々が、初期値Cstartから目標値Cendまで独立して段階的に更新されることとなる。
【0048】
一方、データレジスタ1には、A/D変換部82による過去のサンプリングによって得られたn個のサンプルデータXm〜Xm−n+1が格納される。データレジスタ1は、A/D変換部82から新たなサンプルデータXが供給されるたびに、その時点において最も古いサンプルデータXを破棄するとともに新たなサンプルデータXを記憶する。
【0049】
以上の構成のもと、係数レジスタ2に格納されたn個の基礎係数Cf1〜Cfnの各々は、A/D変換部82による楽音信号のサンプリングに同期して読み出されてセレクタ3に出力される。一方、セレクタ3、乗算部4およびシフタ5は、n個の基礎係数Cf1〜Cfnの各々について、上記実施形態に示された処理を動作モードに応じて実行する。詳述すると以下の通りである。
【0050】
まず、第1のモードが選択されている場合、セレクタ3は、n個の基礎係数Cf1〜Cfnをそのまま乗算部4に出力する。これに対し、第2のモードが選択されている場合、セレクタ3は、n個の基礎係数Cf1〜Cfnの各々について演算用係数Cxと指数部Eとを生成して出力する。また、乗算部4は、動作モードに拘わらず、データレジスタ1に格納されたn個のサンプルデータXの各々と、セレクタ3から供給されるn個の演算用係数Cxの各々とを乗算し、これにより得られたn個の乗算データXtを出力する。シフタ5は、第1のモードが選択されている場合には乗算データXtをそのまま出力する一方、第2のモードが選択されている場合には、n個の乗算データXtの各々について、セレクタ3から出力された指数部Eに応じたビットシフトを施して出力する。シフタ5から出力されたn個のシフトデータXsは累積部83によって加算される。
【0051】
この構成によれば、n個の基礎係数Cf1〜Cfnの各々を初期値Cstartから目標値Cendまで段階的に変化させることによって、エコーやリバーブといった音響効果について指数関数的な変化を実現することができる。
【0052】
<C−2:変形例2>
基礎係数Cfのうちいずれのビット列を仮数部Yおよび指数部Eとして取り扱うかは任意に変更され得る。要は、基礎係数Cfから重複しないように2種類のビット列が抽出され、このうちの一方が仮数部Yとして用いられるとともに他方が指数部Eとして用いられる構成であればよい。また、基礎係数CfのすべてのビットがサンプルデータXに対する演算に供される必要は必ずしもなく、その一部のみが用いられる構成としてもよい。例えば、最下位ビットから数えて数ビットを切り捨て、残りのビット列から仮数部Yおよび指数部Eを特定する構成としてもよい。さらに、基礎係数Cfのうち仮数部Yとされるビット列と指数部Eとされるビット列とを利用者が任意に選定できる構成としてもよい。
【0053】
<C−3:変形例3>
上記実施形態においては、利用者が操作部86を操作することによって動作モードが選定される構成を例示したが、動作モードを選定する構成はこれに限られない。例えば、上位装置からミキサ80に対して動作モードが指示される構成としてもよい。また、上記実施形態においては、基礎係数Cfの初期値Cstart、目標値Cend、補間回数Mおよび補間時間Tが利用者によって入力される構成を例示したが、これらのパラメータが上位装置から入力される構成としてもよいし、あるいはデータ処理装置内に予め記憶されている構成としてもよい。
【0054】
<C−4:変形例4>
上記実施形態においては、乗算部4から出力された乗算データXtを指数部Eが示すビット数だけビットシフトする構成を例示したが、指数部Eの補数(例えば1の補数)に応じたビット数だけビットシフトする構成としてもよい。また、上記実施形態においては、基礎係数や演算用係数Cxを合計24ビットのビット列としたが、これらの係数を表すビット列のビット数は任意に変更され得る。
【0055】
【発明の効果】
以上に説明したように、本発明によれば、演算に供される係数を決定するための特別な回路を要することなく、その係数の多様な変化が実現される。
【図面の簡単な説明】
【図1】本発明の実施形態に係るミキサの構成を示すブロック図である。
【図2】ミキサが備えるデータ処理装置の構成を示すブロック図である。
【図3】データ処理装置が備えるセレクタの動作を説明するための図である。
【図4】第2のモードにおける演算内容を示す図である。
【図5】各動作モードにおけるセレクタの入出力の関係を示すグラフである。
【図6】変形例に係るデータ処理装置の構成を示すブロック図である。
【符号の説明】
100,200……データ処理装置、1……データレジスタ、2……係数レジスタ、3……セレクタ(変換手段)、4……乗算部(乗算手段)、5……シフタ(シフト手段)、6……係数決定部(特定手段)、7……制御部(制御手段、取得手段)、83……累積部(累積手段)、Cf,Cf1〜Cfn……基礎係数、Cx……演算用係数、X……サンプルデータ、Xt……乗算データ、Xs……シフトデータ、Cstart……初期値、Cend……目標値、M……補間回数、Y……仮数部、E……指数部。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technique for performing various types of processing on digital data such as data representing musical sounds, and more particularly to a technique for sequentially changing the value of a coefficient multiplied by digital data.
[0002]
[Prior art]
An apparatus (for example, DSP (Digital Signal Processor)) that imparts various musical effects such as echo and reverb to digital data representing sound (hereinafter referred to as “sample data”) has become widespread. One of typical processes executed in this type of apparatus is a process of multiplying sample data by a specific coefficient (hereinafter referred to as “calculation coefficient Cx”). If the value of the calculation coefficient Cx is increased or decreased stepwise during this multiplication, effects such as fade-in that increases the tone volume in steps and fade-out that decreases the volume stepwise can be obtained (for example, Patent Documents). 1).
[0003]
When the calculation coefficient Cx is gradually changed from the initial value Cstart to the target value Cend over N stages, the value of the calculation coefficient Cx at each time point is calculated as follows.
Figure 2005010597
According to this method, for example, it is incremented by “0.1” from “0” to “1” (ie, 0 → 0.1 → 0.2 → 0.3 →… → 0.9 → 1). Ii), the value of the calculation coefficient Cx can be changed stepwise.
[0004]
[Patent Document 1]
JP 7-122973 A (paragraph 0021, paragraph 0022, and FIG. 1)
[0005]
[Problems to be solved by the invention]
However, when the calculation coefficient Cx is changed by this method, the change amount Cadd of the calculation coefficient Cx for each stage is constant (Cadd = (Cend−Cstart) / N). For this reason, there is a problem that the sound generated based on the multiplication result of the calculation coefficient Cx and the sample data X becomes monotonous in terms of hearing. In order to solve this problem, a configuration in which the calculation coefficient Cx is changed exponentially from the initial value toward the target value is also conceivable. However, under this configuration, it is necessary to separately provide an arithmetic circuit for exponentially changing the change amount Cadd of the calculation coefficient Cx, which may cause a problem of increasing the circuit scale.
[0006]
The present invention has been made in view of such circumstances, and an object of the present invention is to make various changes in the coefficient without requiring a special circuit for determining the coefficient to be used in the calculation. It is to be realized.
[0007]
[Means for Solving the Problems]
In order to solve the above-described problem, the present invention provides a specifying means for specifying a base coefficient expressed as a fixed-point bit string and a part of the bit string of the base coefficient specified by the specifying means as a mantissa part. On the other hand, another part is an exponent part, a conversion means for outputting the arithmetic coefficient obtained by converting the mantissa part and the exponent part, a calculation coefficient output from the conversion means and a sample to be processed Multiplication means for multiplying the data and outputting the multiplication data obtained by this, and for the multiplication data outputted from the multiplication means, a bit shift corresponding to the numerical value indicated by the exponent part outputted from the conversion means is performed. Shift means for applying and outputting.
According to this configuration, a basic coefficient expressed as a fixed-point bit string is handled as a floating-point bit string including a mantissa part and an exponent part, and multiplication and bit shift are performed. Therefore, even if the basic coefficient sequentially specified by the specifying means is a numerical value that linearly changes, the signal level of the data obtained through the bit shift (shifted data output from the shift means) is exponentially functioned. Can be changed.
[0008]
In a desirable mode of the present invention, a control means for designating either the first mode or the second mode is provided. In this aspect, when the first mode is specified by the control means, the conversion means outputs the basic coefficient specified by the specifying means as the calculation coefficient as it is, while the control means When the second mode is designated, the calculation coefficient obtained by converting the mantissa part and the exponent part are output. Further, when the first mode is designated by the control means, the shift means outputs the multiplication data as it is, while when the second mode is designated by the control means, The multiplication data is subjected to the bit shift and output.
According to this aspect, the first mode in which the basic coefficient is handled as an original fixed-point type bit string and the second mode in which the basic coefficient is handled as a floating-point type bit string are appropriately switched. Therefore, the shift data obtained through the bit shift can be variously changed. In addition, the contents of the multiplication process by the multiplication means remain the same in both the first mode and the second mode. Therefore, it is not necessary to provide multiplication means having a different configuration for each mode.
[0009]
In another aspect, there is provided acquisition means for acquiring an initial value and a target value of the basic coefficient and the number of interpolations until the initial value changes to the target value, and the specifying means includes the interpolation from the initial value. The basic coefficient is sequentially updated so as to reach the target value after updating the number of times according to the number of times. If the acquisition unit is configured to acquire the initial value, the target value, and the number of interpolations according to an instruction from the user under this configuration, the basic coefficient can be updated according to the user's intention. In still another aspect, the acquisition unit acquires an interpolation time in addition to (or instead of the number of interpolations) in addition to the initial value, the target value, and the number of interpolations, while the specifying unit is configured such that the basic coefficient indicates the interpolation time. To update from the initial value to the target value.
[0010]
Also, in a preferred aspect of the present invention, the specifying means specifies a plurality of basic coefficients, the converting means outputs the calculation coefficient and the exponent part for each of the plurality of basic coefficients, and the multiplying means. For each of a plurality of sample data to be processed, performs multiplication using any of the coefficients for calculation obtained from the plurality of basic coefficients, and outputs the multiplication data obtained for each sample data, The shift means performs a bit shift according to the numerical value indicated by the exponent output from the conversion means for each of the plurality of multiplication data output from the multiplication means, and adds to the accumulation means for adding the plurality of shift data Then, the shift data obtained by the bit shift is output. According to this desirable aspect, the signal level of the shift data obtained for each of the plurality of basic coefficients can be changed exponentially.
More preferably, an acquisition means for acquiring an initial value and a target value of the plurality of basic coefficients and the number of interpolations until the initial value changes to the target value is provided, and the specifying means includes the plurality of basic coefficients. Each of the basic coefficients is sequentially updated so that each reaches the target value after updating the number of times corresponding to the number of interpolations from the initial value acquired by the acquisition means for the basic coefficient. According to this desirable aspect, since each of the plurality of base coefficients is independently updated, the shift data can be changed in various ways.
[0011]
The present invention can also be specified as a program for causing a computer to function as a data processing device. That is, the program uses a specifying process for specifying a base coefficient expressed as a fixed-point bit string and a part of the bit string of the base coefficient specified by the specifying process as a mantissa part, while the other part An exponent part, a conversion process for outputting the arithmetic coefficient obtained by converting the mantissa part and the exponent part, and the arithmetic coefficient output by the conversion process are multiplied by the sample data to be processed, A multiplication process for outputting the multiplication data obtained by the above, and a shift process for performing a bit shift on the multiplication data output by the multiplication process in accordance with a numerical value indicated by the exponent part output by the conversion process, Is a program for causing a computer to execute. This program can provide the same effect as that of the data processing apparatus according to the present invention. Note that the program according to the present invention may be provided to a computer by distribution via a network, or may be provided in a form stored in various recording media represented by an optical disc and installed in the computer. It may be a thing.
[0012]
The present invention can also be specified as a method for processing sample data. This method includes a specifying step for sequentially specifying basic coefficients represented as fixed-point bit strings, a part of the bit string of the basic coefficients specified in the specifying step as a mantissa part, and another part as an exponent part. The conversion step of outputting the arithmetic coefficient obtained by converting the mantissa part and the exponent part, the arithmetic coefficient obtained in the conversion step and the sample data to be processed are multiplied, and thereby obtained. A multiplication step for outputting the multiplied data, and a shift step for performing a bit shift on the multiplication data obtained by the multiplication step according to a numerical value indicated by the exponent part output from the conversion means and outputting the result. . This method can provide the same effect as that of the data processing apparatus according to the present invention.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.
[0014]
<A: Configuration of Embodiment>
FIG. 1 is a block diagram showing a configuration of a mixer according to an embodiment of the present invention. When a signal representing a musical sound (hereinafter referred to as a “musical sound signal”) is input to the input terminal 81 from a host device such as an electronic musical instrument, the mixer 80 performs various musical effects (for example, acoustic effects) on the musical sound signal. ) And output from the output terminal 85. An amplifier 87 for amplifying the musical sound signal output from the mixer 80 is connected to the output terminal 85. The speaker 88 emits sound based on the musical tone signal output from the amplifier 87.
[0015]
As shown in FIG. 1, the mixer 80 includes an A / D (Analog to Digital) conversion unit 82, a data processing device 100, an accumulation unit 83, a D / A (Digital to Analog) conversion unit 84, and an operation unit 86. Among these, the A / D converter 82 samples the musical tone signal input from the input terminal 81, and sequentially outputs the sample data X which is the digital data obtained thereby. One sample data X in this embodiment is a total of 24 bits of data.
[0016]
The data processing apparatus 100 performs various arithmetic processes on the sample data X output from the A / D conversion unit 82. In the present embodiment, it is assumed that a fade-in or fade-out effect is given to the sample data X. On the other hand, the operation unit 86 includes a number of operators such as keys and knobs, and outputs a signal corresponding to an operation by the user to the data processing device 100. The user can arbitrarily change the contents of the arithmetic processing by the data processing apparatus 100 by appropriately operating the operation unit 86.
[0017]
The accumulating unit 83 performs an accumulating operation on the data output from the data processing apparatus 100 as necessary. The data output from the accumulating unit 83 is output from the output terminal 85 after being converted into a tone signal as an analog signal by the D / A converting unit 84.
[0018]
Next, FIG. 2 is a block diagram showing a configuration of the data processing apparatus 100. As shown in the figure, the data processing apparatus 100 includes a data register 1, a coefficient register 2, a selector 3, a multiplication unit 4, a shifter 5, a coefficient determination unit 6, and a control unit 7. Of these, the selector 3, the multiplier 4, the shifter 5, the coefficient determination unit 6, and the control unit 7 may be realized only by hardware such as a DSP (Digital Signal Processor), or a CPU (Central Processing Unit). This hardware may be realized in cooperation with a program executed by the CPU.
[0019]
The data register 1 is means for storing the sample data X supplied from the A / D conversion unit 82. On the other hand, the coefficient register 2 is means for storing the basic coefficient Cf. The basic coefficient Cf is a coefficient to be used as a basis for calculating the calculation coefficient Cx to be multiplied by the sample data X, and is a bit string of 24 bits in total like the sample data X. The base coefficient Cf is expressed as a fixed-point bit string.
[0020]
The coefficient determination unit 6 sequentially specifies new basic coefficients Cf under the control of the control unit 7 and outputs them to the coefficient register 2. More specifically, the coefficient determination unit 6 calculates the value of the basic coefficient Cf so as to change stepwise from the initial value Cstart to the target value Cend. Each time a new basic coefficient Cf is supplied from the coefficient determination unit 6, the coefficient register 2 updates the basic coefficient Cf held so far to a new basic coefficient Cf.
[0021]
The control unit 7 is means for controlling each unit of the data processing apparatus 100. For example, the control unit 7 outputs a signal (hereinafter referred to as “control signal”) CTR indicating an operation mode to the selector 3 and the shifter 5 in accordance with an operation given to the operation unit 86. Here, in the present embodiment, a first mode and a second mode are prepared as operation modes of the data processing apparatus 100. Of these, the first mode is a mode in which the calculation coefficient Cx to be multiplied by the sample data X is linearly changed, as in the conventional technique described above. On the other hand, the second mode is a mode in which the coefficient multiplied by the sample data X is changed exponentially. The user can arbitrarily select one of the first and second modes by operating the operation unit 86. The control unit 7 sets the control signal CTR to the L level when the first mode is selected, and sets the control signal CTR to the H level when the second mode is selected.
[0022]
The selector 3 selects either the basic coefficient Cf stored in the coefficient register 2 or a coefficient obtained by performing predetermined processing on the basic coefficient Cf in accordance with the operation mode instructed by the control signal CTR. It is a means to select. The coefficient selected by the selector 3 is output to the multiplication unit 4 as a calculation coefficient Cx. More specifically, when the first mode is selected, the selector 3 outputs the basic coefficient Cf stored in the coefficient register 2 as it is (that is, without performing any processing) as a calculation coefficient Cx. . On the other hand, when the second mode is selected, the selector 3 handles the basic coefficient Cf as a floating-point bit string and converts the basic coefficient Cf according to a predetermined conversion rule. Then, the selector 3 outputs the numerical value obtained by this conversion as a calculation coefficient Cx. More specifically, the selector 3 divides the basic coefficient Cf into a mantissa part Y and an exponent part E, and converts the mantissa part Y according to a predetermined conversion rule to the multiplier 4 as an operation coefficient Cx. On the other hand, the exponent part E is output to the shifter 5. The conversion rule for the mantissa part Y will be described in detail later.
[0023]
The multiplication unit 4 integrates the data supplied to the input terminal T1 and the input terminal T2, and outputs the obtained data as multiplication data Xt. Sample data X is sequentially supplied from the data register 1 to the input terminal T <b> 1 of the multiplier 4. On the other hand, the calculation coefficient Cx is sequentially supplied from the selector 3 to the input terminal T2. Therefore, the multiplication unit 4 outputs data obtained by multiplying the sample data X and the calculation coefficient Cx to the shifter 5 as multiplication data Xt.
[0024]
The shifter 5 performs bit shift on the multiplication data Xt according to the operation mode instructed by the control signal CTR, and outputs the obtained data as shift data Xs. More specifically, when the first mode is selected, the shifter 5 outputs the multiplication data Xt as it is without performing a bit shift. On the other hand, when the second mode is selected, the shifter 5 outputs, as the shift data Xs, data obtained by bit-shifting the multiplication data Xt by the number of bits corresponding to the exponent part E supplied from the selector 3. To do. The shift data Xs is supplied to the accumulating unit 83 and used for addition processing.
[0025]
<B: Operation of Embodiment>
Next, the operation of this embodiment will be described. In the following description, when a certain numerical value is surrounded by ““ ”and“ ””, this indicates that the numerical value is expressed as a binary number.
[0026]
First, a tone signal input from the host device to the input terminal 81 is converted into sample data X by the A / D converter 82 and then supplied to the data processing device 100. The sample data X is sequentially stored in the data register 1.
[0027]
On the other hand, the user inputs parameters and operation modes related to multiplication processing for the sample data X by appropriately operating the operation unit 86. Parameters relating to the multiplication processing are the initial value Cstart, the target value Cend, the number of interpolations M, and the interpolation time T of the basic coefficient Cf. Of these, the number M of interpolations is a numerical value indicating the number of times the basic coefficient Cf is interpolated between the initial value Cstart and the target value Cend. On the other hand, the interpolation time T indicates the time until the basic coefficient Cf changes from the initial value Cstart to the target value Cend. The control unit 7 acquires the initial value Cstart, the target value Cend, the number of interpolations M, and the interpolation time T in accordance with the operation given to the operation unit 86, and outputs these parameters to the coefficient determination unit 6. Further, the control unit 7 outputs the initial value Cstart to the coefficient register 2 and stores it.
[0028]
Further, the control unit 7 sequentially outputs the timing pulses TM to the coefficient determination unit 6 at time intervals corresponding to the number of interpolations M and the interpolation time T. The timing pulse TM is a pulse signal for instructing the timing at which the coefficient determining unit 6 should calculate a new basic coefficient Cf. Therefore, as the number of interpolations M designated by the user is larger or the interpolation time T designated by the user is shorter, the time interval at which each timing pulse TM is output (that is, the coefficient determination unit 6 sets the basic coefficient Cf). The calculated time interval is shorter. Further, the control unit 7 sets the control signal CTR supplied to the selector 3 and the shifter 5 to a level according to the selected operation mode.
[0029]
On the other hand, the coefficient determination unit 6 calculates the coefficient change amount Cadd based on the parameters supplied from the control unit 7. The coefficient change amount Cadd is a change amount of the basic coefficient Cf between each stage from the initial value Cstart to the target value Cend, and is calculated by the following equation.
Cadd = (Cstart-Cend) / M
[0030]
Further, every time the timing pulse TM is supplied from the control unit 7, the coefficient determination unit 6 calculates a new basic coefficient Cf as a fixed-point bit string and outputs the basic coefficient Cf to the coefficient register 2. Specifically, the coefficient determination unit 6 calculates the basic coefficient Cf so as to increase by the coefficient change amount Cadd every time the timing pulse TM is supplied. Accordingly, the numerical value of the basic coefficient Cf in the i-th stage (i is an integer satisfying 0 ≦ i ≦ M) among the total M stages from the initial value Cstart to the target value Cend is calculated by the following formula.
Cf (i) = Cstart + Cadd × i
However, the stage where the basic coefficient Cf matches the initial value Cstart is defined as the 0th stage, and the stage where the basic coefficient Cf matches the target value Cend is defined as the Mth stage.
[0031]
With the above operation, the basic coefficient Cf stored in the coefficient register 2 increases by the coefficient change amount Cadd every time the timing pulse TM is output from the control unit 7, and reaches the target value Cend in the Mth stage. The basic coefficient Cf stored in the coefficient register 2 is sequentially output to the selector 3. Here, the operations of the selector 3 and the shifter 5 differ depending on the operation mode selected by the user. Therefore, hereinafter, the subsequent operation will be described separately for the case where the first mode is selected and the case where the second mode is selected.
[0032]
(1) When the first mode is selected
When the first mode is selected, the selector 3 outputs the basic coefficient Cf output from the coefficient register 2 to the multiplier 4 as it is as a calculation coefficient Cx. In this case, the supply of the exponent part E from the selector 3 to the shifter 5 is not executed.
[0033]
On the other hand, the multiplication unit 4 multiplies the sample data X supplied from the data register 1 by the calculation coefficient Cx supplied from the selector 3, and outputs the multiplication data Xt obtained thereby. On the other hand, the shifter 5 outputs the multiplication data Xt supplied from the multiplication unit 4 as it is as the shift data Xs. The shift data Xs is subjected to accumulation operation by the accumulation unit 83, converted to a musical sound signal as an analog signal by the D / A conversion unit 84, and output from the output terminal 85.
[0034]
Here, the graph A in FIG. 5 shows the relationship between the input value (the numerical value of the basic coefficient Cf) and the output value (the numerical value of the calculation coefficient Cx) of the selector 3 in the first mode. In the figure, the horizontal axis represents the input value to the selector 3, and the vertical axis represents the output value from the selector 3. As shown in the figure, when the first mode is selected, the input value and the output value for the selector 3 are equal. On the other hand, since the basic coefficient Cf changes linearly as described above, the signal level of the tone signal output from the mixer 80 changes linearly in the first mode, as in the prior art. Become.
[0035]
(2) When the second mode is selected
On the other hand, when the second mode is selected, the selector 3 handles the basic coefficient Cf output from the coefficient register 2 as a floating-point bit string, converts the basic coefficient Cf according to a predetermined conversion rule, and The numerical value obtained by this conversion is output as a calculation coefficient Cx. The details of this conversion are as follows.
[0036]
Now, as shown in FIG. 3, it is assumed that the basic coefficient Cf is a bit string composed of a total of 24 bits from bit “b23” to bit “b0”. In the following, each bit constituting the bit string is expressed by counting from the most significant bit. For example, the third bit (bit “b21” shown in FIG. 3) counted from the most significant bit is simply expressed as “third bit”.
[0037]
The selector 3 handles the most significant bit “b23” of the basic coefficient Cf as the sign bit S. For example, if the most significant bit “b23” is “0”, the basic coefficient Cf is a positive number, and if the bit is “1”, the basic coefficient Cf is a negative number.
[0038]
When the second mode is selected, the selector 3 treats a part of the bit string of the base coefficient Cf as the mantissa part Y and the other part as the exponent part E. More specifically, the selector 3 specifies a bit string consisting of a total of 4 bits from the second bit “b22” to the fifth bit “b19” in the basic coefficient Cf as the exponent part E. The selector 3 includes a sign bit S (most significant bit “b23”) of the basic coefficient Cf, a total of 19 bits from the sixth bit “b18” to the 24th bit “b0”, 4 A bit string in which “0” data for bits are arranged in this order as viewed from the most significant is specified as a mantissa part Y.
[0039]
Then, the selector 3 converts the mantissa part Y according to a predetermined conversion rule to generate a calculation coefficient Cx. More specifically, the content of the calculation coefficient Cx obtained by this conversion differs depending on whether or not the exponent part E is equal to “0” as a decimal number. More specifically, as shown in FIG. 3, when the exponent E is not “0”, the selector 3 selects the sign bit S “b23” of the base coefficient Cf and the bit “! B23 obtained by inverting the sign bit S”. ”, 19 bits from bit“ b18 ”to bit“ b0 ”, and“ 0 ”data for 3 bits are arranged in this order when viewed from the most significant bit, as a calculation coefficient Cx To do. That is, if expressed in decimal notation, the mantissa part Y is converted to (0.5 + 0.5Y) or (−0.5 + 0.5Y). On the other hand, when the exponent E is “0”, the selector 3 selects the sign bit S “b23” of the basic coefficient Cf, the bit “b23” equal to the sign bit S, and the bits “b18” to “b0”. A bit string of a total of 24 bits in which 19 bits up to 3 and “0” data for 3 bits are arranged in this order as viewed from the most significant is generated as a calculation coefficient Cx. In other words, the mantissa part Y is converted to (0.5Y) when expressed in decimal notation. The selector 3 outputs the calculation coefficient Cx obtained through the above procedure to the multiplication unit 4 and outputs the exponent part E to the shifter 5.
[0040]
On the other hand, the multiplication unit 4 multiplies the sample data X supplied from the data register 1 by the calculation coefficient Cx supplied from the selector 3, and outputs the multiplication data Xt obtained thereby to the shifter 5. The contents of the calculation by the multiplication unit 4 are the same as when the first mode is selected.
[0041]
Next, the shifter 5 bit-shifts the multiplication data Xt supplied from the multiplication unit 4 by the number of bits corresponding to the numerical value indicated by the exponent E supplied from the selector 3, and shifts the bit string obtained thereby to the shift data. Output as Xs. As described above, since the exponent part E is 4 bits, it can take a numerical value from “0” to “15” as a decimal number. Accordingly, the shifter 5 shifts the multiplication data Xt by any number of bits from “0” bits to “15” bits. The shift data Xs output from the shifter 5 is subjected to an accumulating operation by the accumulating unit 83, converted to a musical sound signal as an analog signal, and output from the output terminal 85.
[0042]
Here, the contents of the operations executed by the selector 3, the multiplication unit 4, and the shifter 5 when the second mode is selected can be summarized according to the sign bit S and the decimal number representation of the exponent part E as follows: It becomes as follows. Note that “^” in each of the following expressions is an operator representing a power.
(A) When the sign bit S “b23” is “0” (that is, when the basic coefficient Cf is positive)
Figure 2005010597
In the above formula, “0.9999... To 0.5” is a numerical value of “0.5” or more and less than “1”. Similarly, “0.49999... To 0” is a numerical value of “0” or more and less than “0.5”.
(B) When the sign bit S “b23” is “1” (that is, when the basic coefficient Cf is negative)
Figure 2005010597
In the above formula, “0.500... 1 to 1.0” is a numerical value greater than “0.5” and equal to or less than “1.0”. Similarly, “0.00... 1 to 0.5” is a numerical value greater than “0” and equal to or less than “0.5”.
The contents of the shift data Xs obtained by the calculation shown above change as shown in FIG.
[0043]
A graph B shown in FIG. 5 shows the relationship between the input value and the output value of the selector 3 in the second mode. That is, the horizontal axis indicates the numerical value of the basic coefficient Cf input to the selector 3, and the vertical axis indicates the arithmetic coefficient Cx output from the selector 3 and the exponent part E together as a floating-point numerical value. The numerical value at that time is shown. In other words, the vertical axis in FIG. 5 indicates the coefficient that is to be multiplied by the sample data X as a result of the above-described operations (a) and (b). As shown in this graph B, the output value of the selector 3 in the second mode changes exponentially according to the increase or decrease of the input value. Therefore, according to the shift data Xs output from the shifter 5, the change in the sound pressure level of the musical sound is more sensitive to human hearing than when the basic coefficient Cf is handled as a fixed-point bit string as in the first mode. It can be natural.
[0044]
Also, the magnitude relationship of the output value (the numerical value of the floating-point type bit string) with respect to the input value to the selector 3 in the second mode is the output value (fixed-point type bit string) with respect to the input value to the selector 3 in the first mode. This is consistent with the magnitude relationship of In other words, both the numerical value of the floating-point bit string in the second mode and the numerical value of the fixed-point bit string in the first mode increase as the input value to the selector 3 increases (selector 3 Decreases as the input value decreases). Accordingly, although the fixed-point type basic coefficient Cf is handled as a floating-point type coefficient in the selector 3, no unnatural musical sound is generated. Thus, according to the present embodiment, various changes in the coefficient can be realized without separately providing an arithmetic circuit for changing the calculation coefficient Cx exponentially.
[0045]
Moreover, according to the present embodiment, these effects can be obtained by a configuration in which bit strings are simply rearranged. Therefore, for example, compared with a case where an arithmetic circuit for changing the basic coefficient Cf exponentially is provided separately, it is possible to simplify the configuration and suppress the enlargement of the circuit scale.
[0046]
<C: Modification>
The above embodiment is merely an example of the present invention, and various modifications can be made to this embodiment within the scope of the gist of the present invention. Specifically, the following modifications can be considered.
[0047]
<C-1: Modification 1>
A storage means for storing a plurality of basic coefficients Cf may be employed as the coefficient register 2, and each of them may be updated independently.
FIG. 6 is a block diagram showing a configuration of a data processing apparatus according to this modification. As shown in the figure, the coefficient register 2 of the data processing device 200 stores n basic coefficients Cf1 to Cfn generated by the coefficient determination unit 6. A signal (hereinafter referred to as “selection signal”) SEL for designating a storage area in which any one of the basic coefficients Cf1 to Cfn is stored is supplied from the control unit 7 to the coefficient register 2. When a new basic coefficient Cfi (i is a positive number satisfying 1 ≦ i ≦ n) is supplied from the coefficient determination unit 6, the coefficient register 2 sets the basic coefficient Cf of the storage area specified by the selection signal SEL to a new one. Update to the base coefficient Cfi. On the other hand, the control unit 7 specifies the initial value Cstart, the target value Cend, and the number of interpolations M for each of the n basic coefficients Cf1 to Cfn based on the operation of the operation unit 86 by the user, and the coefficient determination unit 6 To instruct. The coefficient determination unit 6 newly sets each of the n basic coefficients Cf1 to Cfn from the initial value Cstart specified for the basic coefficient Cfi to the target value Cend through updating the number of times corresponding to the number of interpolations M. A basic coefficient Cfi is specified and output to the coefficient register 2. With this configuration, each of the n basic coefficients Cf1 to Cfn stored in the coefficient register 2 is updated stepwise independently from the initial value Cstart to the target value Cend.
[0048]
On the other hand, the data register 1 stores n pieces of sample data Xm to Xm−n + 1 obtained by past sampling by the A / D conversion unit 82. Each time new sample data X is supplied from the A / D converter 82, the data register 1 discards the oldest sample data X at that time and stores the new sample data X.
[0049]
With the above configuration, each of the n basic coefficients Cf1 to Cfn stored in the coefficient register 2 is read out in synchronization with the sampling of the musical sound signal by the A / D converter 82 and output to the selector 3. The On the other hand, the selector 3, the multiplication unit 4, and the shifter 5 execute the process shown in the above embodiment for each of the n basic coefficients Cf1 to Cfn according to the operation mode. The details are as follows.
[0050]
First, when the first mode is selected, the selector 3 outputs the n basic coefficients Cf1 to Cfn to the multiplication unit 4 as they are. On the other hand, when the second mode is selected, the selector 3 generates and outputs the calculation coefficient Cx and the exponent part E for each of the n basic coefficients Cf1 to Cfn. The multiplication unit 4 multiplies each of the n sample data X stored in the data register 1 and each of the n arithmetic coefficients Cx supplied from the selector 3 regardless of the operation mode. The n pieces of multiplication data Xt thus obtained are output. When the first mode is selected, the shifter 5 outputs the multiplication data Xt as it is. On the other hand, when the second mode is selected, the shifter 5 selects the selector 3 for each of the n multiplication data Xt. The bit shift is performed according to the exponent part E output from, and output. The n pieces of shift data Xs output from the shifter 5 are added by the accumulating unit 83.
[0051]
According to this configuration, by changing each of the n basic coefficients Cf1 to Cfn stepwise from the initial value Cstart to the target value Cend, an exponential change in acoustic effects such as echo and reverb can be realized. it can.
[0052]
<C-2: Modification 2>
Which bit string of the base coefficient Cf is handled as the mantissa part Y and the exponent part E can be arbitrarily changed. The point is that two types of bit strings are extracted from the basic coefficient Cf so as not to overlap, and one of them is used as the mantissa part Y and the other is used as the exponent part E. Further, it is not always necessary that all the bits of the basic coefficient Cf be used for the operation on the sample data X, and only a part of the bits may be used. For example, a configuration may be adopted in which several bits are counted from the least significant bit, and the mantissa part Y and the exponent part E are specified from the remaining bit string. Furthermore, it is good also as a structure which a user can select arbitrarily the bit sequence used as the mantissa part Y and the bit sequence used as the exponent part E among the base coefficients Cf.
[0053]
<C-3: Modification 3>
In the above embodiment, the configuration in which the operation mode is selected by the user operating the operation unit 86 is illustrated, but the configuration in which the operation mode is selected is not limited thereto. For example, a configuration in which the operation mode is instructed to the mixer 80 from the host device may be adopted. In the above embodiment, the configuration in which the initial value Cstart, the target value Cend, the number of interpolations M, and the interpolation time T of the basic coefficient Cf are input by the user is exemplified. However, these parameters are input from the host device. A configuration may be used, or a configuration stored in advance in the data processing device may be used.
[0054]
<C-4: Modification 4>
In the above embodiment, the configuration in which the multiplication data Xt output from the multiplication unit 4 is bit-shifted by the number of bits indicated by the exponent E, but the number of bits corresponding to the complement of the exponent E (for example, one's complement) is illustrated. Only a bit shift may be adopted. In the above embodiment, the basic coefficient and the calculation coefficient Cx are a bit string of 24 bits in total. However, the number of bits of the bit string representing these coefficients can be arbitrarily changed.
[0055]
【The invention's effect】
As described above, according to the present invention, various changes in the coefficient can be realized without requiring a special circuit for determining the coefficient used for the calculation.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a mixer according to an embodiment of the present invention.
FIG. 2 is a block diagram showing a configuration of a data processing device provided in the mixer.
FIG. 3 is a diagram for explaining an operation of a selector included in the data processing apparatus.
FIG. 4 is a diagram showing calculation contents in a second mode.
FIG. 5 is a graph showing the input / output relationship of the selector in each operation mode;
FIG. 6 is a block diagram illustrating a configuration of a data processing device according to a modification.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 100,200 ... Data processing device, 1 ... Data register, 2 ... Coefficient register, 3 ... Selector (conversion means), 4 ... Multiplication part (multiplication means), 5 ... Shifter (shift means), 6 ...... Coefficient determination unit (identification unit), 7 ... Control unit (control unit, acquisition unit), 83 ... Accumulation unit (accumulation unit), Cf, Cf1 to Cfn ... Basic coefficient, Cx ... Coefficient for calculation, X: Sample data, Xt: Multiplication data, Xs: Shift data, Cstart: Initial value, Cend: Target value, M: Number of interpolations, Y: Mantissa part, E: Exponent part.

Claims (6)

固定小数点型のビット列として表された基礎係数を順次に特定する特定手段と、
前記特定手段によって特定された基礎係数のビット列の一部を仮数部とする一方、他の一部を指数部とし、前記仮数部を変換して得られる演算用係数と前記指数部とを出力する変換手段と、
前記変換手段から出力された演算用係数と処理対象たるサンプルデータとを乗算し、これにより得られた乗算データを出力する乗算手段と、
前記乗算手段から出力された乗算データに対し、前記変換手段から出力された指数部が示す数値に応じたビットシフトを施して出力するシフト手段と
を具備するデータ処理装置。
A specifying means for sequentially specifying basic coefficients represented as fixed-point bit strings,
While a part of the bit string of the basic coefficient specified by the specifying unit is a mantissa part, another part is an exponent part, and the arithmetic coefficient obtained by converting the mantissa part and the exponent part are output. Conversion means;
Multiplication means for multiplying the calculation coefficient output from the conversion means by the sample data to be processed, and outputting the multiplication data obtained thereby,
A data processing apparatus comprising: shift means for performing a bit shift on the multiplication data output from the multiplication means according to a numerical value indicated by the exponent part output from the conversion means and outputting the result.
第1のモードおよび第2のモードのいずれかを指定する制御手段を具備し、
前記変換手段は、前記制御手段によって前記第1のモードが指定されている場合に、前記特定手段によって特定された基礎係数をそのまま前記演算用係数として出力する一方、前記制御手段によって前記第2のモードが指定されている場合に、前記仮数部を変換して得られる演算用係数と前記指数部とを出力し、
前記シフト手段は、前記制御手段によって前記第1のモードが指定されている場合に、前記乗算データをそのまま出力する一方、前記制御手段によって前記第2のモードが指定されている場合に、前記乗算データに対して前記ビットシフトを施して出力する
請求項1に記載のデータ処理装置。
Comprising control means for designating either the first mode or the second mode;
When the first mode is specified by the control means, the conversion means outputs the basic coefficient specified by the specifying means as the calculation coefficient as it is, while the control means outputs the second coefficient as it is. When the mode is specified, the arithmetic coefficient obtained by converting the mantissa part and the exponent part are output,
The shift means outputs the multiplication data as it is when the first mode is designated by the control means, whereas the multiplication means outputs the multiplication data when the second mode is designated by the control means. The data processing apparatus according to claim 1, wherein the data is output after being subjected to the bit shift.
前記基礎係数の初期値および目標値と当該初期値から目標値に変化するまでの補間回数とを取得する取得手段を具備し、
前記特定手段は、前記基礎係数が前記初期値から前記補間回数に応じた回数の更新を経て前記目標値に至るように、前記基礎係数を順次に更新する
請求項1または2に記載のデータ処理装置。
An acquisition means for acquiring an initial value and a target value of the basic coefficient and the number of interpolations until the initial value changes to the target value;
3. The data processing according to claim 1, wherein the specifying unit sequentially updates the basic coefficient so that the basic coefficient reaches the target value after being updated from the initial value according to the number of interpolations. apparatus.
前記特定手段は、複数の基礎係数を特定し、
前記変換手段は、前記複数の基礎係数の各々について前記演算用係数および前記指数部を出力し、
前記乗算手段は、処理対象たる複数のサンプルデータの各々について、前記複数の基礎係数から得られた演算用係数のいずれかを用いた乗算を行なうとともに、各サンプルデータについて得られた乗算データを出力し、
前記シフト手段は、前記乗算手段から出力された複数の乗算データの各々について、前記変換手段から出力された指数部が示す数値に応じたビットシフトを施し、複数のシフトデータを加算する累積手段に対して、前記ビットシフトにより得られたシフトデータを出力する
請求項1に記載のデータ処理装置。
The specifying means specifies a plurality of basic coefficients,
The conversion means outputs the calculation coefficient and the exponent part for each of the plurality of basic coefficients,
The multiplication means performs multiplication using any of the operation coefficients obtained from the plurality of basic coefficients for each of the plurality of sample data to be processed, and outputs the multiplication data obtained for each sample data And
The shift means performs a bit shift on each of the plurality of multiplication data output from the multiplication means according to a numerical value indicated by the exponent output from the conversion means, and adds to the accumulation means for adding the plurality of shift data. The data processing apparatus according to claim 1, wherein shift data obtained by the bit shift is output.
前記複数の基礎係数の初期値および目標値と当該初期値から目標値に変化するまでの補間回数とを取得する取得手段を具備し、
前記特定手段は、前記複数の基礎係数の各々が、当該基礎係数について前記取得手段が取得した初期値から補間回数に応じた回数の更新を経て目標値に至るように、当該基礎係数を順次に更新する
請求項4に記載のデータ処理装置。
An acquisition means for acquiring an initial value and a target value of the plurality of basic coefficients and the number of interpolations until the initial value changes to the target value;
The specifying means sequentially sets the basic coefficients so that each of the plurality of basic coefficients reaches a target value after updating the number of times corresponding to the number of interpolations from the initial value acquired by the acquiring means for the basic coefficients. The data processing apparatus according to claim 4 to be updated.
コンピュータに、
固定小数点型のビット列として表された基礎係数を特定する特定処理と、
前記特定処理によって特定された基礎係数のビット列の一部を仮数部とする一方、他の一部を指数部とし、前記仮数部を変換して得られる演算用係数と前記指数部とを出力する変換処理と、
前記変換処理によって出力された演算用係数と処理対象たるサンプルデータとを乗算し、これにより得られた乗算データを出力する乗算処理と、
前記乗算処理によって出力された乗算データに対し、前記変換処理によって出力された指数部が示す数値に応じたビットシフトを施して出力するシフト処理と
を実行させるためのプログラム。
On the computer,
A specific process for identifying a basic coefficient expressed as a fixed-point bit string,
While a part of the bit string of the basic coefficient specified by the specifying process is a mantissa part, the other part is an exponent part, and an arithmetic coefficient obtained by converting the mantissa part and the exponent part are output. Conversion process,
Multiplication processing for multiplying the calculation coefficient output by the conversion processing by the sample data to be processed, and outputting the multiplication data obtained thereby,
The program for performing the shift process which performs the bit shift according to the numerical value which the exponent part output by the said conversion process shows with respect to the multiplication data output by the said multiplication process, and outputs it.
JP2003176206A 2003-06-20 2003-06-20 Data processing apparatus and program Expired - Fee Related JP4127130B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003176206A JP4127130B2 (en) 2003-06-20 2003-06-20 Data processing apparatus and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003176206A JP4127130B2 (en) 2003-06-20 2003-06-20 Data processing apparatus and program

Publications (2)

Publication Number Publication Date
JP2005010597A true JP2005010597A (en) 2005-01-13
JP4127130B2 JP4127130B2 (en) 2008-07-30

Family

ID=34099149

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003176206A Expired - Fee Related JP4127130B2 (en) 2003-06-20 2003-06-20 Data processing apparatus and program

Country Status (1)

Country Link
JP (1) JP4127130B2 (en)

Also Published As

Publication number Publication date
JP4127130B2 (en) 2008-07-30

Similar Documents

Publication Publication Date Title
US9478203B2 (en) Resonance tone generation apparatus and resonance tone generation program
US7612281B2 (en) Reverberation effect adding device
EP1071231A2 (en) Audio data processing apparatus
JP4702392B2 (en) Resonant sound generator and electronic musical instrument
US9040800B2 (en) Musical tone signal generating apparatus
CN101149916A (en) Filter device and electronic musical instrument using the filter device
JP2009175677A (en) Resonance sound adding device and electronic musical instrument
JP4127130B2 (en) Data processing apparatus and program
US20060005690A1 (en) Sound synthesiser
JPH0535277A (en) Electronic nusical instrument
JP2768193B2 (en) Distortion imparting circuit
JP4432951B2 (en) Musical sound generator and electronic musical instrument
JP5593590B2 (en) Resonance sound generator, electronic musical instrument, and resonance sound generation program
JP5035388B2 (en) Resonant sound generator and electronic musical instrument
JP2008299004A (en) Resonance adding apparatus and resonance adding program
JP4939753B2 (en) Sound synthesizer
JP3778361B2 (en) Sound source device and electronic device equipped with sound source device
JP3674154B2 (en) Music synthesizer
JP3047431B2 (en) Electronic musical instrument
JP3033231B2 (en) Electronic musical instrument
JP2814939B2 (en) Waveform processing device
JP2020154217A (en) Electronic musical instrument, control method of electronic musical instrument and program
JPH02179688A (en) Musical sound signal generating device
JPH02281297A (en) Signal delay circuit and musical sound synthesizer using this signal delay circuit
JPH03203783A (en) Envelope generating device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080422

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080505

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 3

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees