JP2000181459A - 波形合成装置および波形合成方法 - Google Patents

波形合成装置および波形合成方法

Info

Publication number
JP2000181459A
JP2000181459A JP10362016A JP36201698A JP2000181459A JP 2000181459 A JP2000181459 A JP 2000181459A JP 10362016 A JP10362016 A JP 10362016A JP 36201698 A JP36201698 A JP 36201698A JP 2000181459 A JP2000181459 A JP 2000181459A
Authority
JP
Japan
Prior art keywords
waveform
ratio
synthesis
storage means
calculated
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.)
Abandoned
Application number
JP10362016A
Other languages
English (en)
Inventor
Hirotake Sato
博毅 佐藤
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP10362016A priority Critical patent/JP2000181459A/ja
Publication of JP2000181459A publication Critical patent/JP2000181459A/ja
Abandoned legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】 様々な音色の波形を合成できるうえ、波形合
成時のノイズ発生を抑止し、しかも多様な音色変化を付
加できる波形合成装置および波形合成方法を実現する。 【解決手段】 予め各要素波形毎に現在合成比率を乗算
し、その乗算結果を累算してなる演算波形を演算波形メ
モリに格納しておき、新たな合成比率が設定された要素
波形についてのみ、その新たに設定された合成比率と前
記現在合成比率との変化差分を乗算し、その乗算結果を
前記演算波形記憶手段に格納済みの演算波形に加算す
る。これにより演算量が縮小するから、要素波形の種類
を増やしたり、時間的変化のある要素波形データを使用
でき、各様な音色の波形を合成し得る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電子楽器に用いて
好適な波形合成装置および波形合成方法に関する。
【0002】
【従来の技術】従来より、基本波およびその高調波成分
を重ね合わせて任意の倍音構造を持つ波形を合成する倍
音合成方式や、様々な波形周期や波形形状からなる複数
の要素波形を重ね合わせて所望の波形を合成する加算合
成方法が知られている。後者の加算合成方法に基づいて
構成される波形合成装置の一態様としては、様々な波形
周期や波形形状からなる複数の要素波形を予めメモリに
記憶しておき、所望の波形を合成するのに必要な要素波
形をメモリから読み出し、読み出した各要素波形につい
て、所定の重み付け乗算を行ってからそれらを加算して
波形合成するようにしている。
【0003】
【発明が解決しようとする課題】ところで、上述した従
来の加算合成方法による波形合成装置では、下記(イ)
〜(ハ)項に列記する問題が生じる。 (イ)各要素波形毎に重みを乗算してから加算し合うこ
とから、波形合成にかかわる演算量が膨大になる結果、
波形合成に用いる要素波形数が制限されたり、時間的変
化が少ない波形に制限される等、各様な音色の波形を合
成することができない。 (ロ)また、音色が時間的に変化するような波形を合成
しようとする場合には、メモリに記憶された要素波形を
読み出しながら、そのメモリに記憶される要素波形を音
色変化に対応させて書き換える必要があるが、そのよう
にすると、読み出した要素波形と新たに書き換えた要素
波形とが不連続になり易く、この波形不連続がノイズ発
生要因になる虞がある。 (ハ)従来、加算合成する際の比率を調整可能とした操
作子を備える波形合成装置も案出されているおり、こう
した装置では、その操作子の操作量に対応した一律の合
成比率にて全ての要素波形を加算合成する為、合成され
る波形の音色変化が一様で単調なものになってしまい、
音色変化が付け難い。
【0004】そこで本発明は、このような事情に鑑みて
なされたもので、様々な音色の波形を合成できるうえ、
波形合成時のノイズ発生を抑止し、しかも多様な音色変
化を付加できる波形合成装置および波形合成方法を提供
することを目的としている。
【0005】
【課題を解決するための手段】上記目的を達成するた
め、請求項1に記載の波形合成装置では、波形属性が異
なる複数の要素波形を記憶する要素波形記憶手段と、前
記各要素波形毎の合成比率を設定する比率設定手段と、
この比率設定手段によって設定される現在合成比率を、
前記要素波形記憶手段から読み出した各要素波形にそれ
ぞれ乗算し、それら乗算結果を累算してなる演算波形を
形成して演算波形記憶手段に格納する第1の波形形成手
段と、前記比率設定手段にて新たな合成比率が設定され
た要素波形についてのみ、新たに設定された合成比率と
前記現在合成比率とその変化差分を乗算し、その乗算結
果を前記演算波形記憶手段に格納済みの演算波形に加算
する第2の波形形成手段とを具備することを特徴とす
る。
【0006】請求項2に記載の波形合成方法では、複数
の要素波形毎の合成比率を設定する比率設定過程と、こ
の比率設定過程にて設定された現在合成比率を各要素波
形にそれぞれ乗算し、それら乗算結果を累算してなる演
算波形を形成して演算波形記憶手段に格納する第1の波
形形成過程と、前記比率設定過程にて新たな合成比率が
設定された要素波形についてのみ、新たに設定された合
成比率と前記現在合成比率との変化差分を乗算し、その
乗算結果を前記演算波形記憶手段に格納済みの演算波形
に加算する第2の波形形成過程とを具備することを特徴
とする。
【0007】請求項3に記載の波形合成装置では、請求
項1記載の波形合成装置にさらに、前記演算波形記憶手
段に格納される演算波形を、少なくとも2系統の波形記
憶手段のいずれかに転送する波形転送手段と、前記2系
統の波形記憶手段の内、一方側の波形記憶手段に転送済
みの演算波形を読み出して楽音形成する際に、前記第2
の波形形成手段にて合成比率の変化に応じて新演算波形
が形成された場合、一方側の波形記憶手段から合成比率
変化前の旧演算波形を読み出してフェードアウトさせる
一方、前記波形転送手段にて他方側の波形記憶手段に転
送された合成比率変化後の新演算波形を読み出してフェ
ードインさせ、新旧両演算波形をクロスフェードさせて
楽音形成する楽音形成手段とを設けたことを特徴とす
る。
【0008】請求項4に記載の波形合成方法では、請求
項2記載の波形合成方法にさらに、前記演算波形記憶手
段に格納される演算波形を、少なくとも2系統の波形記
憶手段のいずれかに転送する波形転送過程と、前記2系
統の波形記憶手段の内、一方側の波形記憶手段に転送済
みの演算波形を読み出して楽音形成する際に、前記第2
の波形形成過程にて合成比率の変化に対応して新演算波
形が形成された場合、一方側の波形記憶手段から読み出
した合成比率変化前の旧演算波形をフェードアウトさせ
つつ、前記波形転送過程にて他方側の波形記憶手段に転
送された合成比率変化後の新演算波形を読み出してフェ
ードインさせ、新旧両演算波形をクロスフェードさせて
楽音形成する楽音形成過程とを設けたことを特徴とす
る。
【0009】好ましい態様として、上記請求項1に従属
する請求項5に記載の波形合成装置によれば、前記比率
設定手段は、各要素波形毎に対応して設けられた操作子
と、これら操作子の操作位置に対応した合成比率を発生
する合成比率発生手段とから構成され、各要素波形毎に
個々独立して合成比率を設定することを特徴としてい
る。
【0010】第1の発明では、現在合成比率を各要素波
形にそれぞれ乗算し、それら乗算結果を累算してなる演
算波形を形成して演算波形記憶手段に格納しておき、新
たな合成比率が設定された要素波形についてのみ、その
新たに設定された合成比率と前記現在合成比率との変化
差分を乗算し、その乗算結果を前記演算波形記憶手段に
格納済みの演算波形に加算するので、合成比率が変化し
ていない要素波形データについては波形演算の対象から
除外でき、これ故、合成比率が変化していない要素波形
データについても全て加算し直すという無駄な演算プロ
セスを回避して演算量を縮小し得る結果、CPUの負荷
軽減を達成でき、したがって、取り扱う要素波形データ
の種類を増やしたり、時間的変化のある要素波形データ
を使用可能になる為、各様な音色の波形を合成すること
が可能になる。
【0011】また、第2の発明では、2系統の波形記憶
手段の内、一方側の波形記憶手段に転送済みの演算波形
を読み出して楽音形成する際に、合成比率の変化に対応
して新演算波形が形成された場合、一方側の波形記憶手
段から読み出した合成比率変化前の旧演算波形をフェー
ドアウトさせつつ、他方側の波形記憶手段に転送された
合成比率変化後の新演算波形を読み出してフェードイン
させ、新旧両演算波形をクロスフェードさせて楽音形成
するので、波形不連続に起因するノイズ発生を抑止する
ことが可能になる。さらに、第3の発明では、各要素波
形毎に合成比率を個別に設定し得るようにしたので、合
成される波形の音色変化を多様化することが可能にな
る。
【0012】
【発明の実施の形態】本発明による波形合成装置は、電
子楽器やDTM装置の音源に適用され得る。以下では、
本発明の実施の一形態による電子楽器を実施例に挙げ、
それについて図面を参照して説明する。 A.実施例の構成 (1)全体構成 図1は、実施の一形態による電子楽器の全体構成を示す
ブロック図である。この図において、1は楽器パネル前
面に配設される電源スイッチや音色を選択する音色スイ
ッチ等の各種スイッチから成るパネルスイッチ群であ
り、各スイッチ操作に応じたスイッチイベント信号を発
生する。2は鍵盤であり、押離鍵操作(演奏操作)に応
じたキーオン/キーオフ信号、キーコードおよび押鍵速
度(強度)に対応したベロシティ等の演奏情報を発生す
る。
【0013】3は楽器各部を制御するCPUであり、主
に上記スイッチイベント信号および演奏情報に応じた楽
音パラメータを発生し、これを後述する音源9に供給し
て波形制御態様を指示する。なお、このCPU3により
実現される処理動作については追って述べる。4はRO
Mであり、上記CPU3にロードされる各種制御プログ
ラムを記憶する他、波形合成に用いる要素波形データや
変換テーブルTBL(後述する)を複数記憶する。本実
施例の場合、ROM4には、図2に図示するように、正
弦波、三角波および鋸歯状波からなる8種類の要素波形
データW0〜W7を備える。これら8種類の要素波形デ
ータW0〜W7の内、要素波形データW0〜W3が波形
グループGR1を、要素波形データW4〜W7が波形グ
ループGR2を形成しており、それら波形グループが意
図するところについては追って述べる。
【0014】なお、このROM4に記憶されるプログラ
ムや波形データ類は、記録媒体を備える外部記憶装置
(図示略)に記憶しておく態様としても良く、記録媒体
としては固定的あるいは着脱自在な媒体に磁気記録、光
磁気記録、光学的記録する他、ICカードのようにフラ
ッシュメモリ等の書き換え可能な不揮発性の半導体メモ
リを用いても良い。また、ROM4に記憶されるプログ
ラムや波形データ類は、通信回線等を介して接続された
他の機器から受信して上述の記録媒体に記憶する態様に
することも可能であるし、ROM4の代りに設けたフラ
ッシュメモリ等の書き換え可能な不揮発性メモリにダウ
ンロードする構成にしても良い。
【0015】5は上記CPU3のワークエリアとして使
用されるRAMであり、各種レジスタ・フラグデータを
保持するレジスタエリアREと、後述する演算波形デー
タを一時記憶する波形データエリアWEとを備える。レ
ジスタエリアREには、後述する現在合成比率レジスタ
CRATE(0)〜CRATE(7)および目的合成比
率レジスタORATE(0)〜ORATE(7)が設け
られている。一方、波形データエリアWEには、波形グ
ループGR1,GR2毎の演算波形データを個別に一時
記憶する演算波形メモリCWM1,CWM2が設けられ
ている。
【0016】6はLCDパネルおよび表示ドライバ等か
ら構成される表示部であり、CPU3から供給される表
示制御信号に応じて楽器全体の動作状態や各種設定状態
を表示する。7はスライダ操作子群であり、上述した要
素波形データW0〜W7についての合成比率を調整する
8個のスライダ操作子7aと、これらスライダ操作子7
aの各出力を時分割出力するアナログマルチプレクサ7
bと、このアナログマルチプレクサ7bの出力をA/D
変換して出力するA/D変換器7cとから構成される。
8はCPU3の指示の下にRAM5の演算波形メモリC
WM1,CWM2から転送される演算波形データを記憶
する波形メモリである。この波形メモリ8は、波形グル
ープGR1,GR2毎に2系統の波形メモリ8−1,8
−2を備えている。
【0017】音源9は波形グループGR1,GR2に対
応した2系統構成を有し、各系統は要素9a〜9dから
なる。9aは波形メモリ8に格納された演算波形データ
を読み出す読み出し部、9bはCPU3から供給される
楽音パラメータに応じたエンベロープ信号を発生するエ
ンベロープジェネレータである。9cは読み出し部9a
が波形メモリ8から読み出した演算波形データに対し
て、エンベロープジェネレータ9bが出力するエンベロ
ープ信号を乗算した後にレベル増幅して出力する増幅
器、9dは各系統出力を加算する加算器である。10は
音源9から出力される楽音波形についてD/A変換した
後、不要ノイズを除去する等のフィルタリングを施し、
これを増幅してスピーカから発音するサウンドシテムで
ある。
【0018】(2)機能構成 次に、図3を参照して上記構成において具現される波形
合成機能について述べる。この図において、TBL0〜
TBL7は、それぞれ上述したROM4に記憶される変
換テーブルである。これら変換テーブルTBL0〜TB
L7は、図4に図示する一例のように、スライダ操作子
7aのスライダ操作位置OPを読み出しアドレスとし
て、対応する合成比率SRを読み出すものである。これ
ら変換テーブルTBL0〜TBL7は、それぞれ要素波
形データW0〜W7に対応して設けられており、各変換
テーブルTBL0〜TBL7から出力される合成比率S
Rは上述した目的合成比率レジスタORATE(0)〜
ORATE(7)にストアされる。したがって、本実施
例では各要素波形データ毎に個々独立して合成比率を調
整可能とし、しかも合成比率を木目細かく調整したい操
作範囲では緩やかな変換特性としている為、各様な音色
変化を付加し得るようになっている。
【0019】さて、再び図3に戻り機能構成の説明を進
める。図3において、M1〜M8はそれぞれ係数乗算器
であり、ROM4から読み出される要素波形データW0
〜W7に、上記各変換テーブルTBL0〜TBL7から
出力される合成比率SRを各々乗算して出力する。AD
D1,ADD2は波形グループGR1,GR2にそれぞ
れ対応して設けられる加算器である。加算器ADD1は
波形グループGR1における係数乗算器M1〜M4の各
出力を加算して演算波形データを発生し、一方、加算器
ADD2は波形グループGR2における係数乗算器M5
〜M6の各出力を加算して演算波形データを発生する。
これら加算器ADD1,ADD2により生成される演算
波形データは、波形グループ別の演算波形メモリCWM
1,CWM2にそれぞれ格納される。
【0020】現在合成比率レジスタCRATE(0)〜
CRATE(7)は、上記演算波形メモリCWM1,C
WM2に格納される各演算波形データを生成した時に用
いた合成比率SRを記憶する。一方、目的合成比率レジ
スタORATE(0)〜ORATE(7)は、現在のス
ライダ操作子7aの操作位置に対応して各変換テーブル
TBL0〜TBL7から出力される合成比率SRを記憶
する。つまり、スライダ操作子7aが操作されると、そ
の操作に応じて変化する合成比率SRが目的合成比率レ
ジスタORATE(0)〜ORATE(7)に更新登録
される。現在合成比率レジスタCRATE(0)〜CR
ATE(7)と目的合成比率レジスタORATE(0)
〜ORATE(7)との間に差分が生じると、その差分
に対応して新たに波形合成演算を行い、その結果を演算
波形メモリCWM1,CWM2に格納し直す。
【0021】演算波形メモリCWM1,CWM2にスト
アされた演算波形データは、CPU3の制御の下に波形
メモリ8に転送される。この波形転送の際、波形メモリ
8の語長(転送ビット長)は、演算波形メモリCWM
1,CWM2の語長以下であるので、演算波形データの
下位ビットを切捨てて転送する。波形メモリ8では、波
形グループGR1,GR2毎に2系統の波形メモリ8−
1,8−2を備えており、音源9側が読み出しを行って
いない側の波形メモリ8−1(あるいは波形メモリ8−
2)に演算波形データを転送する。両系統の波形メモリ
8−1,8−2がともに音源9より占有されている時は
どちらか一方側の系統が空くまで波形転送は行われな
い。波形グループGR1,GR2毎に設けられる音源9
は、それぞれ対応する波形メモリ8−1(あるいは波形
メモリ8−2)から読み出した演算波形データに基づ
き、CPU3から指示される波形制御態様に従って波形
制御する。
【0022】以上のように、本実施例では、現在設定さ
れている各要素波形データ毎の合成比率を現在合成比率
レジスタCRATE(0)〜CRATE(7)にストア
すると共に、これら現在合成比率レジスタCRATE
(0)〜CRATE(7)にストアされた合成比率に従
って波形合成された演算波形データを対応する演算波形
メモリCWM1,CWM2に格納しておき、スライダ操
作に応じて合成比率が変化したら、変化した合成比率を
目標値としてその変化差分を要素波形データに乗算し、
この乗算結果を演算波形メモリCWM1,CWM2に記
憶済みの演算波形データに加算する。この後、演算波形
メモリCWM1,CWM2に記憶される演算波形データ
の内、必要なビット長分を抽出して波形メモリ8側に転
送し直して音源9に与えるようなっている。
【0023】そして、こうした波形合成機能を備えたこ
とにより、 (イ)合成比率が変化していない要素波形については波
形演算の対象から除外でき、これ故、合成比率が変化し
ていない要素波形についても全て加算し直すという無駄
な演算プロセスを回避して演算量を縮小し得る。また、
合成比率が変化した要素波形についてのみ波形演算の対
象として演算量を縮小したから、要素波形の種類を増や
すことが可能となり、各様な音色の波形を合成し得る。 (ロ)また、2系統分割された波形メモリ8−1,8−
2を備え、一方側が読み出されている時に他方側へ演算
波形データをストアするようにし、読み出しを一方側か
ら他方側へ切り替える際に、一方側から読み出される波
形をフェードアウトさせつつ、他方側から読み出される
波形をフェードインさせる、所謂クロスフェード読み出
しを行ってメモリ切り替え時の波形不連続によるノイズ
発生を抑止し得る。 (ハ)さらに、要素波形毎に合成比率を個別に調整し得
るようにしたので、合成される波形の音色変化を多様化
することが可能になる。
【0024】B.実施例の動作 次に、図5〜図16を参照して実施例の動作について説
明する。ここでは、CPU3側動作と音源9側動作とに
分けて説明する。また、後述するメインルーチンにてコ
ールされる各処理ルーチンは実際には前述した波形グル
ープGR1,GR2毎に時分割処理されるものである
が、以下では説明の簡略化を図る為、1つの波形グルー
プにて実行されるものとして説明する。
【0025】(1)CPU3側動作 メインルーチンの動作(概略動作) さて、上記構成による実施例に電源が投入されると、C
PU3はROM4から所定の制御プログラムを読み出し
てロードし、図5に示すメインルーチンを実行してステ
ップSA1に処理を進める。ステップSA1では、RA
M5に格納される各種レジスタ/フラグをゼロリセット
したり初期値をセットする他、音源9に対して各種レジ
スタ/フラグ類の初期化指示を与える等のイニシャライ
ズ処理を行う。このイニシャライズ処理では、各スライ
ダ操作子7aのスライダ操作位置に対応した合成比率を
現在合成比率レジスタCRATE(0)〜CRATE
(7)にストアする処理も含まれる。
【0026】イニシャライズ処理が完了すると、CPU
3はステップSA2に処理を進め、前述したパネルスイ
ッチ群1のスイッチ操作に応じて要素波形を選択した
り、あるいはスライダ操作子群7の操作に応じて合成比
率を発生するスイッチ処理を行う。なお、追って詳述す
るスイッチ処理ルーチンでは、スライダ操作子群7の操
作に応じて合成比率を発生する処理動作にのみ言及して
いる。次いで、ステップSA3では、鍵盤1の各鍵につ
いてイベントの有無を検出すべく鍵走査を行い、その結
果に応じて押離鍵操作がなされた鍵についての発音指示
もしくは消音指示を音源9に与えたり、波形転送指示す
る鍵盤処理を行う。
【0027】この後、ステップSA4では、波形合成に
用いる要素波形毎の現在合成比率および目標合成比率に
応じて波形合成演算して演算波形データを生成する波形
演算処理を実行し、続くステップSA5では、生成した
演算波形データを演算波形メモリCWM1,CWM2
(図3参照)に転送する波形転送処理を行う。この後、
CPU3はステップSA6に処理を進め、演奏情報に応
じて生成した楽音パラメータに従って音源9側が発生す
る楽音を修飾したり効果付与する等のその他の処理を実
行する。これ以後、電源がオフ設定される迄、上記ステ
ップSA2〜SA6を繰り返し実行して楽音を形成して
行く。
【0028】スイッチ処理ルーチンの動作 次に、図6を参照してスイッチ処理ルーチンの動作につ
いて説明する。なお、以下ではスライダ操作子群7にか
かわる動作について述べる。上述したメインルーチンの
ステップSA2(図5参照)を経て図6に示すスイッチ
処理ルーチンが起動されると、CPU3はステップSB
1に処理を進め、ポインタレジスタiをゼロリセットす
る。そして、ステップSB2では、アナログマルチプレ
クサ7bの出力ポートを、上記ポインタレジスタiの値
に対応して切り替え、このi番目の出力ポートからのス
ライダ出力をA/D変換器7cに入力させる。次いで、
ステップSB3ではA/D変換器7cにてA/D変換さ
れたスライダ出力をレジスタVDAにストアする。
【0029】こうして、レジスタVDAにi番目のスラ
イダ出力がストアされると、CPU3はステップSB4
に処理を進め、今回、レジスタVDAにストアしたスラ
イダ出力値がレジスタv(i)に格納される前回値と一
致するか否か、つまり、i番目のスライダ操作子7aが
操作されたかどうかを判断する。ここで、今回値と前回
値とが一致しなければ、判断結果は「NO」となり、次
のステップSB5に処理を進める。ステップSB5で
は、レジスタVADに格納されるスライド出力の上位8
ビットを読み出しアドレスとして、対応する変換テーブ
ルTBL(i)から合成比率を読み出してレジスタγに
ストアする。続いて、ステップSB6では、レジスタγ
に格納された合成比率を目標合成比率レジスタORAT
E(i)にセットする。
【0030】次いで、ステップSB7に進むと、レジス
タVDAにストアした今回値を、レジスタv(i)に前
回値として更新登録する。そして、次のステップSB8
に進み、ポインタレジスタiの値を1インクリメントし
て歩進させ、続くステップSB9では歩進したポインタ
レジスタiの値が「4」か否か、つまり、1つの波形グ
ループにアサインされる全ての要素波形について合成比
率γを生成し終えたかどうかを判断する。そして、合成
比率γの生成が完了していないと、ここでの判断結果が
「NO」となり、上述したステップSB2に処理を戻
し、歩進したポインタレジスタiの値に対応してスライ
ダ出力を抽出し、それが変化したかどうかを判断し、変
化していない時には上記ステップSB4の判断結果が
「YES」となり、ステップSB9に処理を進め、ステ
ップSB9にて全ての要素波形について合成比率γを生
成し終えたと判断された場合に本ルーチンを完了する。
このように、スイッチ処理ルーチンでは、上述したイニ
シャライズ処理時点からスライド操作がなされたスライ
ダ操作子7aについてのみ、その合成比率γを新たに求
めて目標合成比率レジスタORATEに登録するように
している。
【0031】鍵盤処理ルーチンの動作 次に、図7〜図8を参照して鍵盤処理ルーチンの動作に
ついて説明する。前述したメインルーチンのステップS
A3(図5参照)を介して図7に示す鍵盤処理ルーチン
が実行されると、CPU3はステップSC1に処理を進
め、鍵走査を行うべくレジスタnに格納される鍵番号n
をゼロリセットし、続くステップSC2では、この鍵番
号nに対応する鍵の状態を判別する。以下、「オンイベ
ント」、「オフイベント」および「鍵変化無し」の各状
態別の処理について述べる。
【0032】(イ)オンイベントの場合 鍵番号nに対応した鍵が押鍵され、鍵状態がオフからオ
ンに変化するオンイベントが発生すると、CPU3は上
記ステップSC2を経てステップSC3に進み、レジス
タCHをゼロリセットしてステップSC4に処理を進め
る。なお、このレジスタCHとは、発音チャンネル番号
を保持するレジスタであり、本実施例では、波形グルー
プGR1,GR2毎に4つの同時発音チャンネルを備え
ているものとする。
【0033】<発音チャンネルに空きが無い場合>さ
て、ステップSC4に進むと、CPU3は発音フラグO
NF(CH)が「0」であるか否か、つまり、発音チャ
ンネル番号CHが空き状態にあるかどうかを判断する。
ここで、発音チャンネル番号CHが発音状態にあれば、
判断結果は「NO」となり、ステップSC5に処理を進
め、空きチャンネルを探すべく発音チャンネル番号CH
を1インクリメントして歩進させ、続くステップSC6
ではこの歩進された発音チャンネル番号CHが「4」で
あるか否か、すなわち、全ての発音チャンネルについて
空き状態の有無を探し終えたかどうかを判断する。
【0034】そして、全発音チャンネルについて空き状
態の有無を探し終えた場合には、ここでの判断結果が
「YES」となり、図8に示すステップSC7に処理を
進め、鍵番号nを1インクリメントして歩進させ、続く
ステップSC8では歩進された鍵番号nが鍵数を超えた
否か、つまり、鍵走査が一巡したかどうかを判断する。
鍵走査が一巡していない場合には、判断結果が「NO」
となり、上述したステップSC2(図7参照)に処理を
戻し、次の鍵について再び状態判別を進める。
【0035】<発音チャンネルに空きがある場合>一
方、上記ステップSC4〜SC6による空きチャンネル
検索の過程で空き状態の発音チャンネルが見つかると、
ステップSC4の判断結果は「YES」となり、ステッ
プSC9に処理を進め、発音レジスタNOTE(CH)
に鍵番号nをストアする。そして、ステップSC10に
進み、発音フラグONF(CH)に「1」をセットして
発音状態にある旨を表わしてから、ステップSC11に
進み、発音チャンネル番号CH、オンイベントおよび発
音レジスタNOTE(CH)にストアされた鍵番号nを
それぞれ音源9側へ転送して発音指示を与える。
【0036】こうして、音源9に発音指示が与えられる
と、CPU3はステップSC12〜SC17を実行し
て、下記a〜c項に列記する場合分けに対応したフラグ
設定を行う。 a.波形メモリ8−1側に演算波形データが書き込まれ
ている場合 この場合、後述する波形転送処理ルーチンの動作にてフ
ラグWF1が「1」にセットされるので、ステップSC
12の判断結果は「YES」となり、ステップSC13
に処理を進め、フラグRF2を「1」にセットする。こ
れにより、波形メモリ8−2側が読み出し対象に設定さ
れる。そして以後、CPU3は前述したステップSC7
(図8参照)に処理を進め、鍵走査を進めるべく鍵番号
nを歩進させる。
【0037】b.波形メモリ8−2側に演算波形データ
が書き込まれている場合 この場合、後述する波形転送処理ルーチンの動作にてフ
ラグWF2が「1」にセットされるので、ステップSC
12の判断結果は「NO」となり、ステップSC14に
処理を進め、ここでの判断結果が「YES」となり、ス
テップSC15に処理を進める。そして、ステップSC
15ではフラグRF1を「1」にセットして、波形メモ
リ8−1側を読み出し対象に設定する。この後、CPU
3は前述したステップSC7(図8参照)に処理を進
め、鍵走査を進めるべく鍵番号nを歩進させる。
【0038】c.波形メモリ8−1側への演算波形デー
タ転送が完了した場合 この場合、後述する波形転送処理ルーチンの動作にてフ
ラグAWAが「0」にセットされるので、ステップSC
16の判断結果が「YES」となり、ステップSC17
に処理を進め、フラグRF1を「1」にセットして、波
形メモリ8−1側を読み出し対象に設定した後、前述し
たステップSC7(図8参照)に処理を進め、鍵走査を
進めるべく鍵番号nを歩進させる。
【0039】以上のように、鍵走査中にオンイベントが
発生し、そのオンイベントをアサインできる発音チャン
ネルが見つかると、CPU3はそのオンイベント、鍵番
号nおよび発音割当てした発音チャンネル番号CHを音
源9に転送すると共に、波形メモリ8−1,8−2の波
形書き込み状況(あるいは転送状況)に応じて読み出し
対象となる波形メモリを表わすフラグを設定する。
【0040】(ロ)オフイベントの場合 次に、鍵走査中にオフイベントが発生した場合の処理に
ついて述べる。鍵番号nに対応した鍵が離鍵され、鍵状
態がオフからオンに変化するオフイベントが発生する
と、CPU3は前述したステップSC2(図7参照)を
介して図8に示すステップSC18に処理を進め、発音
チャンネル番号CHをゼロリセットしてステップSC1
9に処理を進める。ステップSC19では、発音フラグ
ONF(CH)が「1」であるか否か、つまり、発音チ
ャンネル番号CHが発音中であるかどうかを判断する。
【0041】そして、発音チャンネル番号CHが発音中
であると、判断結果は「YES」となり、ステップSC
20に処理を進め、発音レジスタNOTE(CH)の値
が鍵番号nに一致するか否か、すなわち、消音すべき発
音チャンネルであるかどうかを判断する。ここで、発音
レジスタNOTE(CH)の値が鍵番号nに一致し、消
音すべき発音チャンネルであるならば、次のステップS
C21に進み、発音フラグONF(CH)を「0」にセ
ットすると共に、次のステップSC22にて発音チャン
ネル番号CH、オフイベントおよび発音レジスタNOT
E(CH)にストアされた鍵番号nを音源9側へ転送し
て消音指示する。この後、前述したステップSC7,S
C8を介して鍵走査を進行させる。
【0042】一方、上記ステップSC19,SC20の
判断結果が「NO」の場合、すなわち、消音すべき発音
チャンネルでなければ、ステップSC23を経て発音チ
ャンネル番号CHを歩進させ、続くステップSC24で
は全ての発音チャンネルについて検索し終えたかどうか
を判断する。そして、その検索の途中であれば、このス
テップSC24の判断結果は「NO」となり、上述した
ステップSC19に処理を戻して消音すべき発音チャン
ネルを探して行く。これに対し、全ての発音チャンネル
について検索し終えても、オフイベントを発生した鍵の
楽音が割当てられた発音チャンネルが見つからない場
合、例えば、最古離鍵方式などの周知のトランケート処
理によって既に強制的に消音されてしまっている場合に
は、上記ステップSC24の判断結果が「YES」とな
り、ステップSC7,SC8に処理を実行する。
【0043】(ハ)鍵変化無しの場合 鍵番号nに対応した鍵状態が変化しない場合には、前述
したステップSC2(図7参照)を介して図8に示すス
テップSC7に処理を進め、鍵番号nを歩進させた後、
ステップSC8に進み、この歩進した鍵番号nが鍵数を
超えたか否か、つまり、鍵走査が一巡したかどうかを判
断し、一巡していないならば、前述のステップSC2に
処理を戻すが、鍵走査が一巡したならば、本ルーチンを
完了する。
【0044】波形演算処理ルーチンの動作 次に、図9を参照して波形演算処理ルーチンの動作につ
いて説明する。前述したメインルーチンのステップSA
4(図5参照)を介して図9に示す波形演算処理ルーチ
ンが実行されると、CPU3はステップSD1に処理を
進め、要素波形番号eを格納するレジスタeをゼロリセ
ットした後、ステップSD2に進み、波形サンプル番号
数nを格納するレジスタnをゼロリセットする。そし
て、ステップSD3〜SD5では、要素波形番号eの要
素波形データを形成する各波形サンプル毎に、目標合成
比率と現在合成比率との差分を乗算した結果を累算して
演算波形データを形成し、演算波形メモリCWM(図3
参照)中のレジスタAwave(n)にストアする。な
お、ステップSD3において、レジスタElement
(e)(n)とは、要素波形番号eの要素波形データに
おける波形サンプル番号数nの波形値を格納するレジス
タであり、その波形値はROM4から読み出される。
【0045】こうして、ステップSD3〜SD5を介し
て、目標合成比率と現在合成比率との差分が生じた要素
波形番号eの要素波形データの波形サンプルを累算し終
えると、ステップSD5の判断結果が「YES」とな
り、CPU3はステップSD6に処理を進め、要素波形
番号eを歩進する。そして、次のステップSD7では、
歩進された要素波形番号eが「8」に達したか、つま
り、全ての要素波形データを用いた波形演算が完了した
かどうかを判断する。ここで、波形演算の途中であれ
ば、判断結果は「NO」となり、一旦、本ルーチンを完
了させる。すなわち、1つの要素波形を用いた波形演算
が終わる毎に本ルーチンを完了させており、連続して波
形演算を行わないようにするで他の処理の遅延要因とな
らないようにしている。一方、全ての要素波形データを
用いた波形演算が完了した時には、上記ステップSD7
の判断結果は「YES」となり、ステップSD8にて要
素波形番号eをゼロリセットした後、ステップSD9に
進み、転送フラグTENSOFを「1」にセットして演
算波形メモリCWMから波形メモリ8側への転送準備完
了の旨を表わした後、本ルーチンを完了させる。
【0046】波形転送処理ルーチンの動作 次に、図10を参照して波形転送処理ルーチンの動作に
ついて説明する。前述したメインルーチンのステップS
A5(図5参照)を介して図10に示す波形転送処理ル
ーチンが実行されると、CPU3はステップSE1に処
理を進め、転送フラグTENSOFが「0」か否かを判
断する。演算波形メモリCWMから波形メモリ8側への
転送準備が完了していないと、この転送フラグTENS
OFは「0」だから、この場合、判断結果は「YES」
となり、何も処理せずに本ルーチンを完了させる。一
方、全ての要素波形データを用いた波形演算が完了し、
これにより演算波形メモリCWMから波形メモリ8側へ
の転送準備が完了すると、転送フラグTENSOFが上
述した波形演算処理ルーチンにおいて「1」にセットさ
れる為、このステップSE1の判断結果は「NO」とな
り、ステップSE2〜SE4にて転送先の波形メモリ8
−1,8−2の状態を勘案していずれ側に転送するかを
判断する。以下、波形メモリ8−1に転送するケースと
波形メモリ8−2に転送するケースとに場合分けして動
作説明を進める。
【0047】(イ)波形メモリ8−1側に転送する場合 この場合、波形メモリ8−1側が読み出し状態になく、
波形メモリ8−2側が読み出し対象に設定されている時
にはフラグRF1が「0」で、フラグRF2が「1」で
あるから、ステップSE2の判断結果が「YES」、ス
テップSE3の判断結果が「NO」となってステップS
E5に処理を進めるか、あるいは波形メモリ8−1,8
−2が共に読み出し状態ではないが、波形メモリ8−2
側では波形転送完了直後であると、フラグRF1,RF
2が共に「0」で、フラグAWAが「1」になるから、
ステップSE2,SE3の各判断結果が「YES」とな
り、ステップSE4の判断結果が「YES」となってス
テップSE5に処理を進める。
【0048】こうした状況に基づいてステップSE5に
進むと、フラグWF1を「1」にセットし、続くステッ
プSE6にて演算波形メモリCWMの内容を波形メモリ
8−1側に転送する。そして、波形転送が完了すると、
ステップSE7,SE8にてフラグWF1およびフラグ
AWAの双方をゼロリセットする。フラグAWAがゼロ
リセットされることで、波形メモリ8−1側への波形転
送完了の旨が表わされる。そして、この後、ステップS
E9では、転送フラグTENSOFをもゼロリセットす
ると共に、変更データを送信してから本ルーチンを完了
させる。なお、ここで言う変更データとは、合成比率の
変化に応じて新たに波形演算された演算波形データを指
す。
【0049】(ロ)波形メモリ8−2側に転送する場合 この場合、波形メモリ8−1側が読み出し状態にある時
にフラグRF1が「1」となるから、ステップSE2の
判断結果は「NO」となってステップSE10に処理を
進めるか、あるいは波形メモリ8−1,8−2が共に読
み出し状態ではないが、波形メモリ8−1側では波形転
送完了直後であると、フラグRF1,RF2が共に
「0」で、フラグAWAが「0」になるから、ステップ
SE2,SE3の各判断結果が「YES」となり、ステ
ップSE4の判断結果が「NO」となってステップSE
10に処理を進める。そして、ステップSE10では、
フラグWF2を「1」にセットし、続くステップSE1
1にて演算波形メモリCWMの内容を波形メモリ8−2
側に転送する。そして、波形転送が完了すると、ステッ
プSE12,SE13にてフラグWF1をゼロリセット
する一方、フラグAWAに「1」をセットし、波形メモ
リ8−2側への波形転送完了の旨を表わしてから上記ス
テップSE9を介して本ルーチンを完了させる。
【0050】タイマインタラプト処理ルーチンの動作 CPU3では上述のメインルーチンを実行中に、図11
〜図14に図示するタイマインタラプト処理ルーチンを
一定周期毎に起動する。このタイマインタラプト処理ル
ーチンでは、発音が割当てられた発音チャンネルについ
て、発音すべき音高に対応した読み出しアドレスを発生
し、これに従って波形メモリ8−1(あるいは8−2)
から演算波形データを読み出し、これを各発音チャンネ
ル毎に累算して波形形成する処理を担っており、特に、
合成比率の変化に応じて波形メモリ8−1,8−2から
の読み出しを一方側から他方側へ切り替える際に、一方
側から読み出す波形をフェードアウトさせ、他方側から
読み出す波形をフェードインさせる、所謂クロスフェー
ドを行うことを特徴とする。以下、こうした処理を実現
するタイマインタラプト処理ルーチンについて詳述す
る。
【0051】まず、割込みタイミングになると、CPU
3は割込みマスクを解除して図11に示すタイマインタ
ラプト処理ルーチンを実行し、ステップSF1に処理を
進めてポインタレジスタiに格納される発音チャンネル
番号iと、波形累算値を格納するレジスタOUTとを共
にゼロリセットして初期化する。次いで、ステップSF
2に進むと、フラグONF(i)が「1」か否か、つま
り、発音チャンネル番号iが発音状態にあるかどうかを
判断する。ここで、消音状態であれば、判断結果は「N
O」となり、図14に示すステップSF3に処理を進め
て発音チャンネル番号iを1インクリメントして歩進さ
せ、続くステップSF4ではこの歩進された発音チャン
ネル番号iが「8」であるか、すなわち、全ての発音チ
ャンネルについて発音の有無を検索する発音チャンネル
サーチが一巡したかどうかを判断する。そして、発音チ
ャンネルサーチが一巡し終えた場合には、判断結果が
「YES」となり、本ルーチンを完了させるが、発音チ
ャンネルサーチの途中であると、ここでの判断結果は
「NO」となり、再び上述したステップSF2(図11
参照)に処理を戻して発音チャンネルサーチを続ける。
【0052】そして、ステップSF2において発音状態
にあるチャンネルが見つかると、判断結果が「YES」
となり、CPU3はステップSF5に処理を進め、アド
レスレジスタADD(i)に格納される読み出し開始ア
ドレスSTART ADDRESSを、レジスタPIT
CH(i)に格納される鍵番号nに従って歩進させ、読
み出しアドレスを発生する。なお、上記アドレスレジス
タADD(i)には、後述する音源9側処理(発音処理
ルーチン)にて読み出し開始アドレスSTART AD
DRESSがセットされるようになっている。
【0053】こうして、ピッチ(音高)に応じた読み出
しアドレス(以下、読み出しアドレスADD(i)と記
す)が生成されると、CPU3はステップSF6に処理
を進め、読み出しアドレスADD(i)が終端アドレス
END ADDRESSを超えたか否かを判断し、終端
アドレスEND ADDRESSを超えた場合には、次
のステップSF7に進み、読み出しアドレスADD
(i)を読み出し開始アドレスSTART ADDRE
SSにリセットしてステップSF8に処理を進めるが、
終端アドレスEND ADDRESSを超えていない時
にはアドレスリセットせずにステップSF8に処理を進
める。ステップSF8以降では、波形メモリ8−1,8
−2への波形転送状況に応じた読み出し形態、すなわ
ち、波形メモリ8−1,8−2の一方側から読み出した
波形をフェードアウトさせ、他方側から読み出した波形
をフェードインさせるクロスフェード読み出しを行う
か、あるいは波形メモリ8−1,8−2の一方側から読
み出した波形をそのままリリースさせるようになってお
り、以下、各ケース毎に動作説明する。
【0054】(イ)フェードアウト処理 発音中に合成比率が変化し、これに応じて現在読み出し
中の波形メモリから他方側の波形メモリに切り替える場
合、後述する発音処理ルーチンによって現在読み出し中
にある演算波形データをフェードアウトさせるべくフラ
グFOF(i)が「1」にセットされる。そして、フラ
グFOF(i)が「1」になると、ステップSF8の判
断結果が「YES」となり、ステップSF9に処理を進
める。ステップSF9では、フラグAWAが「0」か否
か、つまり、波形メモリ8−1側への波形転送が完了し
ているかどうかを判断する。ここで、波形メモリ8−1
側への波形転送が完了していると、判断結果は「YE
S」となり、ステップSF10に処理を進め、読み出し
アドレスADD(i)に応じて波形メモリ8−1側から
演算波形データを読み出してレジスタWA(i)にスト
アするが、波形メモリ8−1側への波形転送が完了して
いない場合には、判断結果が「NO」となり、ステップ
SF11に処理を進め、読み出しアドレスADD(i)
に応じて波形メモリ8−2側から演算波形データを読み
出す。
【0055】そして、ステップSF12では、レジスタ
WA(i)に格納された演算波形データについて、その
波形値レベルを時間経過に連れて滑らかに低減させるフ
ェードアウト処理を施す。次いで、ステップSF13に
進むと、このフェードアウト処理された演算波形データ
が「0」、つまり、消音レベルに達したかどうかを判断
し、消音レベルに達した場合には判断結果が「YES」
となり、ステップSF14に進み、フラグFOF(i)
をゼロリセットした後、続くステップSF15にてフラ
グONF(i)をゼロリセットして消音状態を表わして
から、図13に示すステップSF16に処理を進める。
【0056】一方、ステップSF13にて演算波形デー
タが消音レベルに達していない場合には、判断結果が
「NO」となり、ステップSF16(図13参照)に処
理を進める。ステップSF16では、レジスタWA
(i)に格納される演算波形データをレジスタOUTに
累算し、続くステップSF17では発音チャンネル番号
iを1インクリメントして歩進させる。次いで、ステッ
プSF18では、全ての発音チャンネルについて発音の
有無を検索する発音チャンネルサーチが一巡したかどう
かを判断し、発音チャンネルサーチの途中ならば、判断
結果は「NO」となり、前述したステップSF2(図1
1参照)に処理を戻す。
【0057】(ロ)フェードイン処理 こうして、現在発音中にある読み出し波形についてのフ
ェードアウト処理が完了すると、フラグFOF(i)が
ゼロリセットされ、これにより上述したステップSF8
(図11参照)の判断結果が「NO」となり、図12に
示すステップSF19に処理を進める。ステップSF1
9ではフラグFIF(i)が「1」であるか否かを判断
するが、この場合、後述する発音処理ルーチンによって
フラグFIF(i)が「1」にセットされるから、判断
結果は「YES」となり、ステップSF20に処理を進
める。ステップSF20では、フラグAWAが「1」か
否か、つまり、波形メモリ8−2側への波形転送が完了
しているかどうかを判断する。ここで、波形メモリ8−
2側への波形転送が完了していると、判断結果は「YE
S」となり、ステップSF21に処理を進め、読み出し
アドレスADD(i)に応じて波形メモリ8−2側から
演算波形データを読み出してレジスタWA(i)にスト
アするが、波形メモリ8−2側への波形転送が完了して
いない場合には、判断結果が「NO」となり、ステップ
SF22に処理を進め、読み出しアドレスADD(i)
に応じて波形メモリ8−1側から演算波形データを読み
出す。
【0058】そして、ステップSF23では、レジスタ
WA(i)に格納された演算波形データについて、その
波形値レベルを時間経過に連れて緩やかに増加させるフ
ェードイン処理を施す。次いで、ステップSF24で
は、このフェードイン処理が完了したか否かを判断し、
完了していなければ、判断結果は「NO」となり、前述
したステップSF16(図13参照)に処理を進める。
一方、フェードイン処理が完了すると、判断結果は「Y
ES」となり、ステップSF25に処理を進めてフラグ
FIF(i)をゼロリセットしてから前述したステップ
SF16に処理を進める。そして、ステップSF16で
は、レジスタWA(i)に格納される演算波形データを
レジスタOUTに累算し、続くステップSF17では発
音チャンネル番号iを1インクリメントして歩進させ
る。次いで、ステップSF18では、全ての発音チャン
ネルについて発音の有無を検索する発音チャンネルサー
チが一巡したかどうかを判断し、発音チャンネルサーチ
が一巡し終えたならば、判断結果は「YES」となり、
ステップSF26に進む。
【0059】そして、ステップSF26に進むと、CP
U3は発音チャンネル番号iをゼロリセットし、続くス
テップSF27では、この発音チャンネル番号iに対応
するフラグFIF(i)およびフラグFOF(i)が共
に「0」であるか、すなわち、上述したフェードアウト
処理とフェードイン処理とにより施されるクロスフェー
ドが完了したかどうかを判断する。そして、クロスフェ
ード中であると、判断結果は「NO」となり、一旦、本
ルーチンを完了させるが、クロスフェード完了したなら
ば、判断結果が「YES」となり、次のステップSF2
8に処理を進め、発音チャンネル番号iを歩進させる。
【0060】次いで、ステップSF29では、全ての発
音チャンネルについてクロスフェード完了の有無を調べ
終えたかどうかを判断する。そして、その途中である
と、ここでの判断結果は「NO」となり、上記ステップ
SF27に処理を戻すが、調べ終えた場合には判断結果
が「YES」となり、ステップSF30に進む。そし
て、ステップSF30では、フラグAWAが「1」、つ
まり、波形メモリ8−2側への波形転送が完了したかど
うかを判断し、波形転送が完了していれば、ステップS
F31に進み、フラグRF1をゼロリセットし、一方、
波形転送が完了していなければ、ステップSF32に進
み、フラグRF2をゼロリセットして本ルーチンを完了
させる。
【0061】(ハ)リリース処理 さて、発音中に合成比率が変化せず、波形メモリ8−
1,8−2の切り替えを必要としない場合には、フラグ
FOF(i)およびフラグFIF(i)は共に「0」に
セットされているので、上述したステップSF8,SF
19の各判断結果は「NO」となり、図12に示すステ
ップSF33に処理を進める。ステップSF33では、
フラグRF1が「1」か否か、つまり、波形メモリ8−
1側が読み出し対象に設定されているかどうかを判断す
る。ここで、波形メモリ8−1側が読み出し対象に設定
されていれば、判断結果は「YES」となり、次のステ
ップSF34に処理を進め、読み出しアドレスADD
(i)に応じて波形メモリ8−1から演算波形データを
読み出してレジスタWA(i)にストアする。
【0062】一方、波形メモリ8−1側が読み出し対象
に設定されていない場合には、上記ステップSF33の
判断結果が「NO」となり、ステップSF35に進み、
波形メモリ8−2側が読み出し対象に設定されているか
否かを判断する。そして、波形メモリ8−2側が読み出
し対象に設定されているならば、ここでの判断結果は
「YES」となり、ステップSF36に処理を進め、読
み出しアドレスADD(i)に応じて波形メモリ8−2
から演算波形データを読み出してレジスタWA(i)に
ストアする。
【0063】こうして、読み出し対象とされた波形メモ
リ8−1(あるいは波形メモリ8−2)から演算波形デ
ータが読み出されると、CPU3はステップSF37に
進み、フラグRELF(i)が「1」、つまり、発音チ
ャンネル番号iの消音に対応したリリース指示が音源9
側から出されているかどうかを判断する。ここで、リリ
ース指示が出されていれば、判断結果が「YES」とな
り、次のステップSF38にてレジスタWA(i)に格
納される演算波形データについてリリース処理を施す。
そしてこの後、図14に示すステップSF39に進み、
レジスタWA(i)に格納される演算波形データの波形
値が「0」以下、すなわち、リリースし終えたかどうか
を判断する。
【0064】ここで、演算波形データがリリースし終え
ていない場合には、判断結果が「NO」となり、ステッ
プSF42に処理を進め、レジスタWA(i)に格納さ
れる演算波形データをレジスタOUTに累算し、この
後、前述したステップSF3以降に処理を進める。な
お、リリース指示が出されず、上述したステップSF3
7の判断結果が「NO」となる場合も、同様にステップ
SF42にて演算波形データをレジスタOUTに累算し
た後、ステップSF3以降に処理を進める。一方、レジ
スタWA(i)に格納される演算波形データの波形値が
「0」以下となり、リリースし終えた場合には、上記ス
テップSF39の判断結果が「YES」となり、ステッ
プSF40に処理を進め、フラグONF(i)をゼロリ
セットして消音状態に設定し、続くステップSF41で
は、フラグRELF(i)をゼロリセットしてリリース
完了状態を設定する。そして、この後、上述したステッ
プSF42に進み、演算波形データをレジスタOUTに
累算した後、ステップSF3以降に処理を進める。
【0065】(2)音源9側動作(発音処理ルーチンの
動作) 次に、音源9側動作として図15〜図16を参照して発
音処理ルーチンの動作について説明する。前述したCP
U3側動作と同様、電源投入と共に音源9では本ルーチ
ンを実行してステップSG1に処理を進め、同時発音チ
ャンネル数をカウントするレジスタmをゼロリセットし
て初期化する。次いで、ステップSG2では、CPU3
側からのイベントを受信したか否かを判断する。以下、
CPU3側からイベントを受信した場合と、合成比率の
変化に対応した変更データを受信した場合とに分けて動
作説明して行く。
【0066】イベント受信時の動作 CPU3側からのイベントを受信すると、ステップSG
2の判断結果は「YES」となり、ステップSG3以降
に進み、受信したイベント内容に応じた処理を実行す
る。以下、オンイベント受信時の動作とオフイベント受
信時の動作とに分けて説明する。 (イ)オンイベント受信時の動作 押鍵操作に対応したオンイベントを受信した場合には、
ステップSG3の判断結果が「YES」となり、ステッ
プSG4に処理を進め、レジスタjに格納される発音チ
ャンネル番号jをゼロリセットする。次いで、ステップ
SG5では、フラグON(j)が「0」、つまり、発音
チャンネル番号jが消音状態にあるかどうかを判断す
る。ここで、発音中であると、判断結果は「NO」とな
り、消音状態にある空きチャンネルを探すべくステップ
SG10に処理を進めて発音チャンネル番号jを歩進さ
せるが、消音状態となる空きチャンネルであれば、判断
結果が「YES」となり、次のステップSG6に処理を
進める。
【0067】ステップSG6では、検索した空きチャン
ネルに新たな発音を割当てるべくフラグON(j)に
「1」をセットし、続くステップSG7では前述した鍵
盤処理ルーチン(図7参照)にて発音レジスタNOTE
(CH)にストアされた鍵番号nをレジスタPITCH
(j)にセットする。次いで、ステップSG8では、読
み出し開始アドレスSTART ADDRESSをレジ
スタADD(j)にセットする。この後、ステップSG
9に進み、同時発音チャンネル数mを1インクリメント
して歩進させる。
【0068】こうして、オンイベントに対応した新たな
発音割当てが完了すると、音源9ではステップSG10
に処理を進め、空きチャンネルを探すべく発音チャンネ
ル番号jを歩進させ、続くステップSG11では、同時
発音チャンネル数mが「4」もしくは発音チャンネル番
号jが「8」のいずれかに達したか否か、すなわち、さ
らなる発音割当てが可能な状態にあるかどうかを判断す
る。そして、いずれの条件にも合致せず、さらなる発音
割当てが可能な場合には、判断結果が「NO」となり、
上述したステップSG4に処理を戻すが、一方、さらな
る発音割当てが不可能な場合には、判断結果が「YE
S」となり後述するステップSG19に処理を進める。
【0069】(ロ)オフイベント受信時の動作 さて、一方、押鍵操作に対応したオフイベントを受信す
ると、前述したステップSG3の判断結果が「NO」と
なり、ステップSG12に処理を進め、発音チャンネル
番号jをゼロリセットした後、次のステップSG13で
は、フラグON(j)が「1」、つまり、発音チャンネ
ル番号jが発音状態にあるかどうかを判断する。ここ
で、消音状態であれば、判断結果は「NO」となり、発
音中のチャンネルを探すべくステップSG17に処理を
進めて発音チャンネル番号jを歩進させるが、発音中の
チャンネルならば、判断結果が「YES」となり、次の
ステップSG14に処理を進める。
【0070】そして、ステップSG14ではレジスタP
ITCH(j)に格納される鍵番号nと、発音レジスタ
NOTE(CH)にストアされた鍵番号nとが同一であ
るか、つまり、消音すべき発音チャンネルであるかどう
かを判断する。ここで、消音すべき発音チャンネルであ
ると、判断結果は「YES」となり、次のステップSG
15に処理を進め、フラグRELF(j)に「1」をセ
ットしてCPU3側にリリース指示した後、ステップS
G16に進む。一方、消音すべき発音チャンネルでない
場合には、上記ステップSG14の判断結果が「NO」
となり、ステップSG17に処理を進める。
【0071】ステップSG16では、消音に応じて同時
発音チャンネル数mを1デクリメントし、続くステップ
SG17では発音中のチャンネルを探すべく発音チャン
ネル番号jを歩進させた後、ステップSG18に進み、
発音チャンネル番号jが「8」に達したか否か、つま
り、全ての発音チャンネルについて発音状態にあるかど
うかを判断する発音検索が完了したかどうかを判断す
る。そして、発音検索が完了した時には、ここでの判断
結果が「YES」となり、後述するステップSG19に
処理を進める。一方、発音検索が完了していなければ、
判断結果は「NO」となり、上述したステップSG12
に処理を戻して発音検索を続ける。
【0072】変更データ受信時の動作 次に、CPU3から変更データを受信した場合、すなわ
ち、合成比率の変化に対応した変更データがCPU3側
から供給されると、音源9では前述したステップSG2
を介して図16に示すステップSG19に処理を進め、
ここでの判断結果が「YES」となり、ステップSG2
0に進む。ステップSG20では、発音チャンネル番号
jをゼロリセットした後、続くステップSG21〜SG
23では発音チャンネル番号jを歩進させながら発音中
のチャンネルを検索する。そして、発音中のチャンネル
が検索された場合、つまり、フラグON(j)が「1」
となる発音チャンネルが見つかると、ステップSG21
の判断結果が「YES」となり、ステップSG24に進
み、その発音チャンネルにアサインされるフラグFOF
(j)に「1」をセットし、CPU3側に発音チャンネ
ル番号jの発音チャンネルから発音中の楽音、つまり、
変更データ以前の発音をフェードアウトさせるよう指示
する。
【0073】次いで、ステップSG25〜SG31で
は、合成比率の変化に対応した変更データをフェードイ
ンさせるよう指示する。すなわち、まずステップSG2
5にて発音チャンネル番号kをゼロリセットし、続くス
テップSG26では発音チャンネル番号kが消音状態に
あるか否かを判断する。そして、消音状態でなければ、
判断結果が「NO」となり、ステップSG30に処理を
進めて発音チャンネル番号kを歩進させる。そしてこの
後、ステップSG31にて全てのチャンネルについて消
音検索し終えたかどうかを判断する。消音検索の途中で
あると、判断結果は「NO」となり、上述したステップ
SG26に処理を戻す。
【0074】そして、ステップSG26にて消音状態に
ある発音チャンネルが見つかると、判断結果が「YE
S」となり、次のステップSG27にてフラグFIF
(k)を「1」にセットしてCPU3側にフェードイン
指示を与える。この後、フェードアウトさせた発音をフ
ェードインに引継ぐ為、レジスタPITCH(j)に格
納されている鍵番号nをレジスタPITCH(k)にス
トアし直す。続いて、ステップSG29では、アドレス
レジスタADD(k)に変更データを読み出す為の読み
出し開始アドレスSTART ADDRESSをセット
した後、上述したステップSG30に処理を進める。
【0075】以上のように、本実施例では、予め各要素
波形データ毎に現在合成比率を乗算し、それら乗算結果
を累算して形成した演算波形データを演算波形メモリに
格納しておき、各要素波形データに対応して設けられた
スライド操作子のいずれかが操作されたら、その操作に
応じて合成比率が変化した要素波形データについて、変
化した合成比率(目標合成比率)と現在合成比率とその
変化差分を乗算し、この乗算結果を演算波形メモリに記
憶済みの演算波形データに加算するようにしたので、合
成比率が変化していない要素波形データについては波形
演算の対象から除外できる。したがって、合成比率が変
化していない要素波形データについても全て加算し直す
という無駄な演算プロセスを回避して演算量を縮小し得
る為、CPU3側の負荷軽減を達成でき、その結果、取
り扱う要素波形データの種類を増やしたり、時間的変化
のある要素波形データを使用可能になるから、各様な音
色の波形を合成することができる。
【0076】また、本実施例では、スライダ操作に応じ
て合成比率が変化した場合、それに応じて新たに波形合
成された演算波形データ(変更データ)が、2系統の波
形メモリ8−1,8−2の内の一方側を読み出している
最中に他方側へ転送されるようにし、例えば、合成比率
が変化する以前の演算波形データ(旧データ)が波形メ
モリ8−1から読み出されている時に、合成比率の変化
に応じて新たに波形合成された変更データが波形メモリ
8−2に転送された場合、波形メモリ8−1側から読み
出される旧データをフェードアウトさせつつ、波形メモ
リ8−2側から読み出される変更データをフェードイン
させる、所謂クロスフェード読み出しを行うようにした
ので、メモリ切り替え時の波形不連続によるノイズ発生
を抑止することができる。さらに、この実施例では、各
要素波形データ毎に合成比率を個別に調整し得るように
対応するスライダ操作子7aや変換テーブルTBLを設
けたので、合成される波形の音色変化を多様化すること
も可能になっている。
【0077】
【発明の効果】請求項1記載の波形合成装置および請求
項2記載の波形合成方法によれば、現在合成比率を各要
素波形にそれぞれ乗算し、それら乗算結果を累算してな
る演算波形を形成して演算波形記憶手段に格納してお
き、新たな合成比率が設定された要素波形についての
み、その新たに設定された合成比率と前記現在合成比率
との変化差分を乗算し、その乗算結果を前記演算波形記
憶手段に格納済みの演算波形に加算するので、合成比率
が変化していない要素波形データについては波形演算の
対象から除外でき、これ故、合成比率が変化していない
要素波形データについても全て加算し直すという無駄な
演算プロセスを回避して演算量を縮小し得る結果、CP
Uの負荷軽減を達成でき、したがって、取り扱う要素波
形データの種類を増やしたり、時間的変化のある要素波
形データを使用可能になる為、各様な音色の波形を合成
することができる。また、請求項3記載の波形合成装置
および請求項4記載の波形合成方法によれば、2系統の
波形記憶手段の内、一方側の波形記憶手段に転送済みの
演算波形を読み出して楽音形成する際に、合成比率の変
化に対応して新演算波形が形成された場合、一方側の波
形記憶手段から読み出した合成比率変化前の旧演算波形
をフェードアウトさせつつ、他方側の波形記憶手段に転
送された合成比率変化後の新演算波形を読み出してフェ
ードインさせ、新旧両演算波形をクロスフェードさせて
楽音形成するので、波形不連続に起因するノイズ発生を
抑止することが可能になる。さらに、請求項5記載の波
形合成装置によれば、各要素波形毎に合成比率を個別に
設定し得るようにしたので、合成される波形の音色変化
を多様化することができる。
【図面の簡単な説明】
【図1】本発明による実施例の全体構成を示すブロック
図である。
【図2】要素波形データW0〜W7の一例を示す波形図
である。
【図3】波形合成機能の構成を示すブロック図である。
【図4】変換テーブルTBL0〜TBL7の各変換特性
の一例を示す図である。
【図5】メインルーチンの動作を示すフローチャートで
ある。
【図6】スイッチ処理ルーチンの動作を示すフローチャ
ートである。
【図7】鍵盤処理ルーチンの動作を示すフローチャート
である。
【図8】鍵盤処理ルーチンの動作を示すフローチャート
である。
【図9】波形演算処理ルーチンの動作を示すフローチャ
ートである。
【図10】波形転送処理ルーチンの動作を示すフローチ
ャートである。
【図11】タイマインタラプト処理ルーチンの動作を示
すフローチャートである。
【図12】タイマインタラプト処理ルーチンの動作を示
すフローチャートである。
【図13】タイマインタラプト処理ルーチンの動作を示
すフローチャートである。
【図14】タイマインタラプト処理ルーチンの動作を示
すフローチャートである。
【図15】音源9側の発音処理ルーチンの動作を示すフ
ローチャートである。
【図16】音源9側の発音処理ルーチンの動作を示すフ
ローチャートである。
【符号の説明】
1 パネルスイッチ群 2 鍵盤 3 CPU(第1および第2の波形形成手段、波形転送
手段、楽音形成手段) 4 ROM(要素波形記憶手段、比率設定手段) 5 RAM(演算波形記憶手段) 6 表示部 7 スライダ操作子群(比率設定手段 8 波形メモリ(2系統の波形記憶手段) 9 音源(楽音形成手段) 10 サウンドシステム

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 波形属性が異なる複数の要素波形を記憶
    する要素波形記憶手段と、 前記各要素波形毎の合成比率を設定する比率設定手段
    と、 この比率設定手段によって設定される現在合成比率を、
    前記要素波形記憶手段から読み出した各要素波形にそれ
    ぞれ乗算し、それら乗算結果を累算してなる演算波形を
    形成して演算波形記憶手段に格納する第1の波形形成手
    段と、 前記比率設定手段にて新たな合成比率が設定された要素
    波形についてのみ、新たに設定された合成比率と前記現
    在合成比率とその変化差分を乗算し、その乗算結果を前
    記演算波形記憶手段に格納済みの演算波形に加算する第
    2の波形形成手段とを具備することを特徴とする波形合
    成装置。
  2. 【請求項2】 複数の要素波形毎の合成比率を設定する
    比率設定過程と、 この比率設定過程にて設定された現在合成比率を各要素
    波形にそれぞれ乗算し、それら乗算結果を累算してなる
    演算波形を形成して演算波形記憶手段に格納する第1の
    波形形成過程と、 前記比率設定過程にて新たな合成比率が設定された要素
    波形についてのみ、新たに設定された合成比率と前記現
    在合成比率との変化差分を乗算し、その乗算結果を前記
    演算波形記憶手段に格納済みの演算波形に加算する第2
    の波形形成過程とを具備することを特徴とする波形合成
    方法。
  3. 【請求項3】 請求項1記載の波形合成装置において、
    さらに、 前記演算波形記憶手段に格納される演算波形を、少なく
    とも2系統の波形記憶手段のいずれかに転送する波形転
    送手段と、 前記2系統の波形記憶手段の内、一方側の波形記憶手段
    に転送済みの演算波形を読み出して楽音形成する際に、
    前記第2の波形形成手段にて合成比率の変化に応じて新
    演算波形が形成された場合、一方側の波形記憶手段から
    合成比率変化前の旧演算波形を読み出してフェードアウ
    トさせる一方、前記波形転送手段にて他方側の波形記憶
    手段に転送された合成比率変化後の新演算波形を読み出
    してフェードインさせ、新旧両演算波形をクロスフェー
    ドさせて楽音形成する楽音形成手段とを設けたことを特
    徴とする波形合成装置。
  4. 【請求項4】 上記請求項2記載の波形合成方法におい
    て、さらに、 前記演算波形記憶手段に格納される演算波形を、少なく
    とも2系統の波形記憶手段のいずれかに転送する波形転
    送過程と、 前記2系統の波形記憶手段の内、一方側の波形記憶手段
    に転送済みの演算波形を読み出して楽音形成する際に、
    前記第2の波形形成過程にて合成比率の変化に対応して
    新演算波形が形成された場合、一方側の波形記憶手段か
    ら読み出した合成比率変化前の旧演算波形をフェードア
    ウトさせつつ、前記波形転送過程にて他方側の波形記憶
    手段に転送された合成比率変化後の新演算波形を読み出
    してフェードインさせ、新旧両演算波形をクロスフェー
    ドさせて楽音形成する楽音形成過程とを設けたことを特
    徴とする波形合成方法。
  5. 【請求項5】 前記比率設定手段は、各要素波形毎に対
    応して設けられた操作子と、これら操作子の操作位置に
    対応した合成比率を発生する合成比率発生手段とから構
    成され、各要素波形毎に個々独立して合成比率を設定す
    ることを特徴とする請求項1記載の波形合成装置。
JP10362016A 1998-12-21 1998-12-21 波形合成装置および波形合成方法 Abandoned JP2000181459A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10362016A JP2000181459A (ja) 1998-12-21 1998-12-21 波形合成装置および波形合成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10362016A JP2000181459A (ja) 1998-12-21 1998-12-21 波形合成装置および波形合成方法

Publications (1)

Publication Number Publication Date
JP2000181459A true JP2000181459A (ja) 2000-06-30

Family

ID=18475628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10362016A Abandoned JP2000181459A (ja) 1998-12-21 1998-12-21 波形合成装置および波形合成方法

Country Status (1)

Country Link
JP (1) JP2000181459A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7544882B2 (en) 2005-09-14 2009-06-09 Casio Computer Co., Ltd. Waveform generating apparatus and waveform generating program
CN111982819A (zh) * 2020-08-21 2020-11-24 国网北京市电力公司 检测六氟化硫气体浓度的装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7544882B2 (en) 2005-09-14 2009-06-09 Casio Computer Co., Ltd. Waveform generating apparatus and waveform generating program
CN111982819A (zh) * 2020-08-21 2020-11-24 国网北京市电力公司 检测六氟化硫气体浓度的装置

Similar Documents

Publication Publication Date Title
US5319151A (en) Data processing apparatus outputting waveform data in a certain interval
US5422431A (en) Electronic musical tone synthesizing apparatus generating tones with variable decay rates
JPH04306697A (ja) ステレオ方式
JP2000181459A (ja) 波形合成装置および波形合成方法
JPH05100671A (ja) 電子楽器
KR0130053B1 (ko) 전자악기, 악음처리장치 및 악음처리방법
US6085309A (en) Signal processing apparatus
JP3567293B2 (ja) 発音チャンネル割当装置
US5449857A (en) Electronic musical instrument capable of free edit and trial of data hierarchy
JP2008015315A (ja) 楽音発生装置および楽音発生処理プログラム
JP4614131B2 (ja) 波形発生装置および波形発生プログラム
JP3137043B2 (ja) 波形メモリ音源装置および楽音発生装置
US5412153A (en) Electronic musical instrument having independent pitch control for each key
JP3744667B2 (ja) 自動伴奏装置および自動伴奏方法
JP3554770B2 (ja) 楽音発生装置
JP3257400B2 (ja) エフェクト装置
JPH1185153A (ja) 演奏装置
JP3305562B2 (ja) Dspを用いた音響効果付加装置
JP2705422B2 (ja) 電子楽器
JP4441928B2 (ja) 音量制御装置および音量制御処理プログラム
JP3148803B2 (ja) 音源装置
JPH01177091A (ja) 演奏操作入力装置
JP4158198B2 (ja) 波形発生装置および波形発生処理プログラム
JP3179333B2 (ja) Dspを用いた音響効果付加装置
JPH11119777A (ja) サンプリング装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050602

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070327

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20070403