JPH07295572A - 電子楽器の音源装置 - Google Patents

電子楽器の音源装置

Info

Publication number
JPH07295572A
JPH07295572A JP6112038A JP11203894A JPH07295572A JP H07295572 A JPH07295572 A JP H07295572A JP 6112038 A JP6112038 A JP 6112038A JP 11203894 A JP11203894 A JP 11203894A JP H07295572 A JPH07295572 A JP H07295572A
Authority
JP
Japan
Prior art keywords
data
event
envelope
signal
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.)
Pending
Application number
JP6112038A
Other languages
English (en)
Inventor
Yasushi 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.)
Kawai Musical Instrument Manufacturing Co Ltd
Original Assignee
Kawai Musical Instrument Manufacturing 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 Kawai Musical Instrument Manufacturing Co Ltd filed Critical Kawai Musical Instrument Manufacturing Co Ltd
Priority to JP6112038A priority Critical patent/JPH07295572A/ja
Publication of JPH07295572A publication Critical patent/JPH07295572A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 本発明は電子楽器の構成を簡単にすることの
できる音源装置に関し、構成を共通化することにより設
計の手間が省けると共に、時分割多重化に容易に対応で
きるようにしてハードウエアの量を削減することができ
る電子楽器の音源装置を提供することを目的とする。 【構成】 本発明の電子楽器の音源装置は、楽音特性を
決定するデータを入力する操作子15と、該操作子から
入力されたデータを補間して出力する補間手段43、4
6と、楽音特性を制御するためのエンベロープデータを
生成するエンベロープジェネレータ44、47とを備
え、前記補間手段で補間されたデータと前記エンベロー
プジェネレータで生成されたエンベロープデータとを演
算して生成された新たなエンベロープデータに応じて楽
音信号を変更することにより所定の楽音特性を有する楽
音信号を生成する電子楽器の音源装置であって、前記補
間手段43、46と前記エンベロープジェネレータ4
4、47とは同一の構成であることを特徴とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は電子楽器の音源装置に関
し、特に、その構成を簡単にする技術に関する。
【0002】
【従来の技術】近年、電子ピアノ、電子オルガン、シン
グルキーボード等といった電子楽器が開発され、広く普
及されるに至っている。このような電子楽器では、例え
ば鍵盤や操作パネルを操作することにより生成される演
奏データを、電子楽器の内部に設けられた音源に与える
ことにより楽音が発生される。
【0003】かかる電子楽器では、予め複数の音色に対
応した音色データ(波形データ、フィルタ係数、エンベ
ロープデータ等で構成される)をメモリに記憶してい
る。そして、例えば操作パネルに設けられた音色選択ス
イッチで所定の音色が選択されると、その音色に対応す
る音色データがメモリから読み出され音源に送られる。
これにより、音源は、音色データに応じた楽音信号を生
成する。
【0004】
【発明が解決しようとする課題】音源は、大きく分ける
と、デジタル制御発振器(DCO)、デジタル制御フィ
ルタ(DCF)及びデジタル制御増幅器(DCA)によ
り構成されている。
【0005】デジタル制御発振器は、メモリから波形デ
ータを読み出して楽音信号を生成する。この楽音信号
は、デジタル制御フィルタに送られる。デジタル制御フ
ィルタでは、入力された楽音信号を外部から供給される
制御信号に応じてフィルタリングすることにより音色変
更された楽音信号を生成する。例えば、外部から制御信
号として送られてくるフィルタ係数に応じてカットオフ
周波数等をダイナミックに変更することにより、音色が
変更された楽音信号を生成する。この信号はデジタル制
御増幅器に送られる。
【0006】デジタル制御増幅器は、デジタル制御フィ
ルタから送られてきた楽音信号を外部から供給される制
御信号に応じて増幅すると共にエンベロープを付加す
る。このデジタル制御増幅器で増幅されてエンベロープ
が付加された楽音信号が音源の出力として外部に送出さ
れ、発音に供されることになる。
【0007】ところで、上記デジタル制御フィルタやデ
ジタル制御増幅器に与えるための制御信号は、補間回
路、エンベロープジェネレータ及び演算器等を用いて生
成される。例えば、デジタル制御フィルタに与えられる
制御信号は、外部からダイナミックに与えられるカット
オフ周波数値を補間回路で補間して得られた信号と、こ
れとは別にエンベロープジェネレータで作成されたエン
ベロープ信号とを演算して作成される。また、デジタル
制御増幅器に与えられる制御信号は、外部からダイナミ
ックに与えられる音量値を補間回路で補間して得られた
信号と、これとは別にエンベロープジェネレータで作成
されたエンベロープ信号とを演算して作成される。
【0008】このように、従来の音源は、デジタル制御
フィルタに与える制御信号を作成するための補間回路及
びエンベロープジェネレータ、デジタル制御増幅器に与
える制御信号を作成するための補間回路及びエンベロー
プジェネレータをそれぞれ独立に備えていた。そして、
それぞれの補間回路及びエンベロープジェネレータは、
異なる性質の制御信号を生成するために異なる回路構成
となっていた。
【0009】従って、音源を開発する場合に、補間回路
やエンベロープジェネレータの設計に時間がかかるとい
う欠点があった。また、上記補間回路やエンベロープジ
ェネレータをLSI化する際にチップの種類が増加し、
LSIの開発に時間がかかると共に管理が煩雑になると
いう欠点もあった。更に、近年は、回路素子自体の性能
向上に伴って、音源にも時分割多重化技術が採用され、
少ないハードウエア量で高性能・高機能の電子楽器が実
現されつつあるが、異なる回路構成が多種類存在する場
合には、時分割多重化に対応するのが困難であるという
問題があった。
【0010】本発明は、かかる事情に鑑みてなされたも
ので、構成を共通化することにより設計の手間が省ける
と共に、時分割多重化に容易に対応できるようにしてハ
ードウエアの量を削減することができる電子楽器の音源
装置を提供することを目的とする。
【0011】
【課題を解決するための手段】上記目的を達成するため
に、請求項1に記載の発明の電子楽器の音源装置は、楽
音特性を決定するデータを入力する操作子と、該操作子
から入力されたデータを補間して出力する補間手段と、
楽音特性を制御するためのエンベロープデータを生成す
るエンベロープジェネレータとを備え、前記補間手段で
補間されたデータと前記エンベロープジェネレータで生
成されたエンベロープデータとを演算して生成された新
たなエンベロープデータに応じて楽音信号を変更するこ
とにより所定の楽音特性を有する楽音信号を生成する電
子楽器の音源装置であって、前記補間手段と前記エンベ
ロープジェネレータとは同一の構成であることを特徴と
する。
【0012】同様の目的で、請求項2に記載の発明の電
子楽器の音源装置は、入力された楽音信号に所定のフィ
ルタ処理を施して出力するデジタル制御フィルタを備え
た電子楽器の音源装置において、カットオフ周波数デー
タを入力する操作子と、該操作子で入力されたカットオ
フ周波数データを補間して出力する補間手段と、押鍵に
応じて変化するカットオフ周波数のエンベロープデータ
を生成するエンベロープジェネレータとを備え、前記補
間手段で補間されたデータと前記エンベロープジェネレ
ータで生成されたエンベロープデータとを演算して生成
された新たなエンベロープデータを前記デジタル制御フ
ィルタに与えることにより、前記入力された楽音信号の
カットオフ周波数が変更された楽音信号を生成する電子
楽器の音源装置であって、前記補間手段と前記エンベロ
ープジェネレータとは同一の構成であることを特徴とす
る。
【0013】同様の目的で、請求項3に記載の発明の電
子楽器の音源装置は、入力された楽音信号を所定の増幅
率で増幅して出力するデジタル制御増幅器を備えた電子
楽器の音源装置において、音量データを入力する操作子
と、該操作子で入力された音量データを補間して出力す
る補間手段と、押鍵に応じて変化する音量のエンベロー
プデータを生成するエンベロープジェネレータとを備
え、前記補間手段で補間されたデータと前記エンベロー
プジェネレータで生成されたエンベロープデータとを演
算して生成された新たなエンベロープデータを前記デジ
タル制御増幅器に与えることにより、前記入力された楽
音信号の振幅が変更された楽音信号を生成する電子楽器
の音源装置であって、前記補間手段と前記エンベロープ
ジェネレータとは同一の構成であることを特徴とする。
【0014】
【作用】本発明は、補間データの生成とエンベロープデ
ータの生成とは、時間経過に伴って所定のレベルから他
のレベルへ変化するデータを順次出力することにより実
現可能であるという点に着目してなされたものである。
【0015】請求項1に記載の発明においては、例え
ば、ボリューム操作子、エクスプレッションペダル或は
カットオフ周波数操作子等を操作することにより入力さ
れたデータを補間する補間手段と、例えば押鍵に応じて
変化するカットオフ周波数や音量等のエンベロープデー
タを同一の構成で実現したものである。
【0016】このように補間手段とエンベロープジェネ
レータとを共通化することにより設計の手間が省ける。
また、同一構成の補間手段とエンベロープジェネレータ
とを時分割多重化で動作するように構成することが容易
にできる。更に、かかる時分割多重化構成とすることに
よりハードウエアの量を削減することができるという効
果がある。
【0017】請求項2に記載の発明においては、例えば
カットオフ周波数操作子を操作することにより入力され
たカットオフ周波数データを補間して出力する補間手段
と、例えば押鍵に応じて変化するカットオフ周波数のエ
ンベロープデータを生成するエンベロープジェネレータ
を同一の構成で実現し、これら補間手段及びエンベロー
プジェネレータの各出力データを演算してデジタル制御
フィルタに与えることにより、生成すべき楽音信号のカ
ットオフ周波数の特性を制御するようにしている。
【0018】このように、例えばカットオフ周波数操作
子の操作に応じて補間をとる補間手段と例えば押鍵に応
じて変化するカットオフ周波数のエンベロープデータを
生成するエンベロープジェネレータとを共通化すること
により補間手段又はエンベロープジェネレータの設計の
手間が省ける。また、同一構成の補間手段とエンベロー
プジェネレータとを時分割多重化で動作するように構成
することが容易にできる。更に、かかる時分割多重構成
とすることによりハードウエアの量を削減することがで
きるという効果がある。
【0019】請求項3に記載の発明においては、例えば
ボリューム操作子又はエクスプレッションペダル等の音
量を制御する操作子を操作することにより入力された音
量データを補間して出力する補間手段と、例えば押鍵に
応じて変化する音量のエンベロープデータを生成するエ
ンベロープジェネレータを同一の構成で実現し、これら
補間手段及びエンベロープジェネレータの各出力データ
を演算してデジタル制御増幅器に与えることにより、生
成すべき楽音信号の音量特性を制御するようにしてい
る。
【0020】このように、例えばカットオフ周波数操作
子の操作に応じて補間をとる補間手段と例えば押鍵に応
じて変化する音量のエンベロープデータを生成するエン
ベロープジェネレータとを共通化することにより補間手
段又はエンベロープジェネレータの設計の手間が省け
る。また、同一構成の補間手段とエンベロープジェネレ
ータとを時分割多重化で動作するように構成することが
容易にできる。更に、かかる時分割多重構成とすること
によりハードウエアの量を削減することができるという
効果がある。
【0021】
【実施例】以下、本発明の電子楽器の実施例につき図面
を参照しながら詳細に説明する。なお、以下では、音源
を構成するハードウエアの中の共通化の対象となる補間
回路及びエンベロープジェネレータの構成及び動作を中
心に説明する。また、説明を簡単にするために、全て正
論理で構成された論理回路を例に挙げて説明するが、そ
の一部又は全部を適宜負論理で構成しても良いことは勿
論である。更に、波形データ、エンベロープデータ、補
間データはそれぞれ16ビット幅のデータとして説明す
るが、要求される性能・機能に応じて任意のビット幅の
データを用いることができる。
【0022】(1)全体構成の説明 図1は、本発明に係る電子楽器の構成を示すブロック図
である。図1において、本電子楽器の主要構成要素であ
る中央処理装置(CPU)10、ROM11、RAM1
2、キーボード(KBD)13、操作パネル(PNL)
14、ボリューム装置(VOL)15、アドレスデコー
ダ(DEC)16及び音源(SPU)17は、アドレス
バス21、データバス22及びコントロールバス23
(以下、これらを総称して「システムバス」と呼ぶこと
もある)を介して相互に接続されている。なお、アドレ
スデコーダ16は、データバス23へは接続されていな
い。
【0023】アドレスバス21は、24本のアドレス信
号(アドレス0〜23)で成るバスラインである。デー
タバス22は、16本のデータ信号(データ0〜15)
で成るバスラインである。このアドレスバス21及びデ
ータバス22は、アクセス元となるCPU10と音源1
7とにより時分割で交互に使用される。即ち、アクセス
元であるCPU10又は音源17は、アドレスバス20
にアドレスを出力することによりアクセス先を特定し、
この特定されたアクセス先とアクセス元との間でデータ
バス21を用いてデータの送受が行われる。
【0024】コントロールバス23は、制御信号を送受
するバスラインである。このコントロールバス23で送
受される制御信号には、リード信号RD、ライト信号W
R、チップセレクト信号CS0〜7等が含まれる。
【0025】CPU10は、ROM11に格納されてい
る制御プログラムに従って、本電子楽器の全体を制御す
るものである。このCPU10には、一定間隔で割り込
みを発生するインタバルタイマ(図示しない)が内臓さ
れている。このインタバルタイマによる割り込みは、キ
ーボード13及び操作パネル14を走査するタイミング
として使用される。
【0026】また、このCPU10には、2つの割込端
子IT0及びIT1が設けられている。割込端子IT0
には、音源17からの割込信号INT0が供給される。
この割込信号INT0は、補間処理又はエンベロープ信
号生成処理の終了をCPU10に知らせるために使用さ
れる。また、割込端子IT1には、ボリューム装置15
からの割込信号INT1が供給される。この割込信号I
NT1は、ボリューム装置15にイベントが発生したこ
とをCPU10に知らせるために使用される(これらの
詳細については後述する)。
【0027】ROM11には、上述したように、CPU
10を動作させるための制御プログラムが記憶されてい
る。また、ROM11には、CPU10が各種処理に用
いる種々の固定データも記憶されている。更に、このR
OM11には、各種音色に対応した音色データ(波形デ
ータ、フィルタ係数、エンベロープデータ等で構成され
る)が記憶されている。波形データとしては、例えばパ
ルスコード変調(PCM)されたデータが用いられ、各
音色毎に、スタートアドレス(STA)、ループトップ
アドレス(LTA)及びループエンドアドレス(LE
A)で規定される領域に記憶されている。なお、ROM
11内の音色データが記憶された部分を、特に波形メモ
リと呼ぶ。
【0028】このROM11の記憶内容は、システムバ
スを介してCPU10又は音源17により読み出され
る。即ち、CPU10は、システムバスを用いてROM
11から制御プログラム(命令)を読み出して解釈・実
行すると共に、所定の固定データを読み出して各種演算
処理に使用する。また、音源17は、システムバスを用
いてROM11から音色データを読み出してデジタル楽
音信号を生成する。
【0029】RAM12は、制御プログラムの実行に必
要な種々のデータを一時的に記憶するものである。この
RAM12には、例えばデータバッファ、レジスタ、フ
ラグ等の各領域が定義されている。このRAM12も、
システムバスを介してCPU10又は音源17によりア
クセスされる。
【0030】キーボード13は、演奏者が楽音の音高、
音長、強弱等を指示するための複数の鍵、及び各鍵の押
下又は離反に応じて開閉する2個のキースイッチ、これ
らのキースイッチの開閉状態を検出するキースキャン回
路等により構成される。このキーボード13の各キース
イッチのオン/オフは、上記キースキャン回路で検出さ
れ、各鍵に対応したビット列でなるキーデータとしてC
PU10に送られる。このキーデータは、CPU10の
制御の下にRAM12に記憶され、キーイベントの有無
の判断に用いられる(詳細は後述する)。
【0031】操作パネル14は、詳細は図示しないが、
本電子楽器に種々の動作を指示するスイッチ類とこのス
イッチ類の設定状態を検出するパネルスキャン回路、所
定の情報を表示する表示器等から構成されている。
【0032】上記スイッチ類には、例えば所望の音色を
選択するための音色選択スイッチが含まれている。操作
パネル14上の各スイッチのオン/オフ状態は、パネル
スキャン回路で検出され、パネルデータとしてCPU1
0に送られる。このパネルデータは、CPU10の制御
の下にRAM12に記憶され、パネルイベントの有無の
判断に用いられる(詳細は後述する)。
【0033】上記表示器は、例えばLCDで構成される
ものであり、各種メッセージや電子楽器の状態を表示す
るために使用される。この表示器の表示内容は、CPU
10から送られてくるデータに従う。
【0034】ボリューム装置15は、音量、エクスプレ
ッション、カットオフ周波数を指定するためのボリュー
ム操作子、エクスプレッションベダル、カットオフ周波
数操作子等を備えている。このボリューム装置15で設
定された音量、エクスプレッション、カットオフ周波数
等はCPU10に送られ、補間の対象となる。この際、
これらの操作子が操作された後の設定値が補間の目標値
として用いられる(詳細は後述する)。なお、本実施例
においては、ボリューム装置15と操作パネル14とを
別個独立に設けた構成としているが、ボリューム装置1
5の操作子の一部は物理的には操作パネル14上に配置
することができる。このボリューム装置15の詳細な構
成については後述する。
【0035】アドレスデコーダ16は、アドレスバス2
1から供給されるアドレスデータの上位3ビットをデコ
ードして8つのチップセレクト信号CS0〜7を生成す
るものである。このデコーダ回路16で生成された8つ
のチップセレクト信号CS0〜7は、コントロールバス
23を介してROM11、RAM12、キーボード1
3、操作パネル14、ボリューム装置15及び音源17
に送られ、これらをアクティブにするために使用され
る。例えばROM11からデータを読み出す場合は、チ
ップセレクト信号がROM11に送られることにより、
ROM11がアクティブになり、データの読み出しが可
能となる。
【0036】音源17は、CPU10から送られてくる
音色データに従って、デジタル楽音信号を生成する。こ
の音源17の詳細については後述する。この音源17で
生成されたデジタル楽音信号は、D/A変換器(DA
C)18に送られる。
【0037】D/A変換器18は、入力されたデジタル
楽音信号をアナログ楽音信号に変換する。D/A変換器
18から出力されたアナログ楽音信号は、増幅器19に
送られる。増幅器19は、入力されたアナログ楽音信号
を所定の増幅率で増幅して出力するものである。この増
幅器19から出力されたアナログ楽音信号は、スピーカ
20に送られる。スピーカ20は、電気信号としてのア
ナログ楽音信号を音響信号に変換するものである。この
スピーカ20により、キーボード13の鍵操作に応じた
楽音が放音されることになる。
【0038】クロックジェネレータ(CKG)24は、
本電子楽器で使用するクロック信号CK1,BC1,C
K2,BC2及びCKSLを生成するものである。これ
らのクロック信号は、以下のように使用される。 クロック信号CK1…CPU10及び音源17に供給
され、CPU10及び音源17を動作させるために使用
される。 クロック信号BC1…システムバスを制御するために
使用される。このクロック信号BC1がHレベルの期間
にCPU10がシステムバスを使用する。 クロック信号CK2…音源17に供給され、音源17
を動作させるために使用される。 クロック信号BC2…システムバスを制御するために
使用される。このクロック信号BC2がHレベルの期間
に音源17がシステムバスを使用する。 クロック信号CKSL…ボリューム装置15に供給さ
れ、後述するA/D変換のタイミングを規定するために
使用される。
【0039】 (2)クロックジェネレータ(CKG)の説明 クロックジェネレータ24で生成される各クロック信号
CK1,BC1,CK2,BC2の位相関係を図2に示
す。クロック信号CK1及びBC1とクロック信号CK
2及びBC2とは位相が180度ずれた信号として作成
される。これにより、1サイクルの前半で音源17が、
後半でCPU10がそれぞれシステムバスを使用すると
いう時分割制御が実現されている。
【0040】このクロックジェネレータ24の更に詳細
な構成は図12に示されている。発振回路120は、所
定周波数の矩形波信号を生成するものである。この発振
回路120においては、水晶発振素子121の一端側は
コンデンサ124を介して接地されると共に抵抗122
を介してインバータ125の入力端子に接続されてい
る。また、水晶発振素子121の他端側はコンデンサ1
23を介して接地されると共にインバータ125の出力
端子及びインバータ126の入力端子に共通に接続され
ている。
【0041】そして、電源が投入されると、水晶発振素
子121の発振周波数に応じた周波数を有する矩形波信
号が、インバータ126から出力されてDタイプフリッ
プフロップ127の入力端子に供給される。この発振回
路120自体は周知であるので、詳細な説明は省略す
る。なお、上記発振回路120では、水晶発振素子12
1の代わりにセラミック発振素子を用いることもでき
る。更に、発振回路120としては、図示した回路構成
に限らず、例えばLC発振回路、RC発振回路等の種々
の形式の発振回路を用いることができる。
【0042】Dタイプフリップフロップ127は、発振
回路120から送られてくる矩形波信号をクロック入力
として1/2分周するものである。このDタイプフリッ
プフロップ127の出力は、カウンタ128の入力端子
CKに供給される。なお、このDタイプフリップフロッ
プ127は、発振回路120で生成される矩形波信号の
周波数と実際に使用するクロック信号CK1、BC1、
CK2、BC2の周波数との整合をとるために設けられ
ている。従って、発振回路120で生成される矩形波信
号の周波数を適宜選択すれば、このDタイプフリップフ
ロップ127は不要とすることもできる。逆に、発振回
路120で生成されるクロック信号の周波数が高すぎる
場合は、必要に応じて複数段の分周回路(Dタイプフリ
ップフロップ)を設ければ良い。
【0043】カウンタ128は、Dタイプフリップフロ
ップ127から供給される信号をクロックとして動作す
る6ビットのシンクロナスカウンタであり、ノーマル出
力端子Xi(i=1〜6、以下も同じ)と反転出力端子
Yiとを備えている。反転出力端子Yiからは、ノーマ
ル出力端子Xiから出力される信号に対し位相が180
度ずれた信号が出力される。
【0044】クロック信号BC1として、カウンタ12
8の出力端子X2から出力される信号がそのまま用いら
れ、クロック信号BC2として、カウンタ128の出力
端子Y2から出力される信号がそのまま用いられる。ま
た、クロック信号CK1は、カウンタ128の出力端子
X1から出力される信号と出力端子X2から出力される
信号とをANDゲート129で論理積をとって作成され
る。同様に、クロック信号CK2は、カウンタ128の
出力端子X1から出力される信号と出力端子Y2から出
力される信号とをANDゲート130で論理積をとって
作成される。このようにして作成されたクロック信号C
K1、CK2、BC1、BC2は、図2に示したような
位相関係を有する。
【0045】なお、カウンタ128の出力端子X3,X
4,X5及びX6から出力される信号IRA0、IRA
1、IRA2及びIRA3は、この音源17を16音同
時発音可能な音源として構成する場合に使用する信号で
あり、16個のタイムスロットを形成するために使用さ
れる。音源17を16音同時発音可能な音源として構成
する場合の構成及び動作については後述する。
【0046】また、図12においては、クロックジェネ
レータ24からボリューム装置15に供給されるクロッ
ク信号CKSLについては示されていない。クロック信
号CKSLの周波数は、ボリューム装置15に搭載され
るA/D変換器31(図3参照)の特性に依存して決定
される。従って、A/D変換器31で要求される周波数
の信号がカウンタ128の出力端子Xi又はYiから得
られる場合は、カウンタ128の出力端子Xi又はYi
の出力をそのままクロック信号CKSLとして用いるこ
とができる。A/D変換器31で要求される周波数の信
号がカウンタ128の出力端子Xi又はYiから得られ
ない場合は、更にカウンタを追加して所望の周波数の信
号を生成してクロック信号CKSLとすることができ
る。更に、別途独立の発振回路を設けてクロック信号C
KSLを生成することもできる。
【0047】(3)ボリューム装置(VOL)の説明 ボリューム装置15には、ボリューム操作子、エクスプ
レッションペダル、カットオフ周波数操作子等といっ
た、バリューを入力するための複数の操作子が設けられ
ている。図3には、これらの操作子の中の1つの操作子
に対応する回路が示されている。
【0048】ボリューム装置15の1つの操作子に対応
する回路は、例えば図3に示されるように、ボリューム
30、A/D変換器31、ラッチ32、比較回路33及
びバッファ34で構成されている。ボリューム30は、
スライド式又は回転式の操作子に連動する摺動子を備え
た可変抵抗器で構成することができる。即ち、ボリュー
ム30は、一端側が接地され他端側が電源に接続された
抵抗器の摺動子から電圧を取り出し、これをA/D変換
器31に供給する。
【0049】A/D変換器(ADC)31は、入力され
たアナログ電圧をデジタル信号(例えば16ビットの2
進数)に変換し、クロック信号CKSLの立ち下がりの
エッジに同期して外部に出力する。このA/D変換器3
1の出力は、ラッチ32及びバッファ34に供給され
る。
【0050】ラッチ32は、A/D変換器31の出力
を、クロック信号CKSLの立ち下がりのエッジでラッ
チする16ビットのラッチ回路である。A/D変換器3
1及びラッチ32には、同一のクロック信号CKSLが
供給されている。従って、ラッチ32には、常に1サイ
クル(クロック信号CKSLのサイクル)前のA/D変
換器31の出力がラッチされる。このラッチ32の出力
は比較回路33に供給される。
【0051】比較回路33は、A/D変換器31の出力
とラッチ32の出力とを比較し、一致しなかった場合に
アクティブ信号(割込信号INT1)を出力する。この
割込信号INT1がアクティブになるということは、1
サイクル前のボリューム30の設定値と現サイクルにお
けるボリューム30の設定値とが相違することを意味す
る。即ち、ボリューム30のイベントがあったことを意
味する。この比較回路33から出力される割込信号IN
T1は、上述したようにCPU10の割込端子IT1に
供給される。
【0052】バッファ34は、入力端子G1及びG2が
共にアクティブにされたときに入力側に供給されている
信号を外部に伝え、そうでないときは出力側がハイイン
ピーダンス状態になるゲート付きの16ビットのトライ
ステートバッファである。このバッファ34の出力側は
データバス22に接続されている。
【0053】CPU10は、このバッファ34の入力端
子G1及びG2をアクティブにすることにより、ボリュ
ーム装置15で設定されたデータを演奏データとして読
み取ることができる。即ち、CPU10が、ボリューム
装置15の操作子で設定されたデータを読み取る場合
は、アドレスバス21に上位3ビットが「101B」
(末桁の「B]は2進数であることを表わす。以下同
じ)となるアドレスデータを出力する。これにより、ア
ドレスデコーダ16はチップセレクト信号CS5をアク
ティブにしてコントロールバス23に出力する。また、
CPU10は、リード信号RDをアクティブにしてコン
トロールバス23に出力する。これにより、ボリューム
装置15のバッファ34がイネーブルになり、A/D変
換器31の出力がデータバス22に出力される。CPU
10は、データバス22に出力されているデータを取り
込むことにより、ボリューム装置15の操作子で設定さ
れたデータを読み取る。
【0054】なお、上記の実施例では、複数の操作子に
対応して同一構成の回路を複数備えてボリューム装置1
5を構成したが、共通部分を時分割共有して使用するよ
うに構成しても良い。かかる構成によればハードウエア
の量を少なくすることができるという利点がある。
【0055】(4)音源(SPU)の説明 音源17は、図4に示すように、大きく分けるとデジタ
ル制御発振器(DCO)40、デジタル制御フィルタ
(DCF)41及びデジタル制御増幅器(DCA)42
で構成され、更に、デジタル制御フィルタ41に与える
エンベロープ信号E0を生成するための補間回路(IP
0)43、エンベロープジェネレータ(EG0)44及
び加算器45、並びに、デジタル制御増幅器42に与え
るエンベロープ信号E1を生成するための補間回路(I
P1)46、エンベロープジェネレータ(EG1)47
及び乗算器48で構成されている。
【0056】デジタル制御発振器40は、ROM11に
形成された波形メモリから波形データを読み出すもので
ある。即ち、音源17は、アドレスバス21に波形デー
タのアドレスを送出し、次いでリード信号RDを送出す
る。これにより、ROM11から波形データが読み出さ
れてデータバス22に流されるので、音源17は、デー
タバス22から波形データを取り込む。なお、波形デー
タを予めRAM12に記憶しておき、このRAM12か
ら波形データを読み出すように動作させることも可能で
ある。
【0057】このデジタル制御発振器40で読み出され
た波形データはデジタル楽音信号SIG1として、デジ
タル制御フィルタ41に供給される。このデジタル制御
発振器40の詳細な説明は省略するが、本実施例では、
周知の種々の構成のデジタル制御発振器を使用すること
ができる。
【0058】デジタル制御フィルタ41は、エンベロー
プ信号E0に応じて、入力されたデジタル楽音信号SI
G1のカットオフ周波数を変更(周波数帯域変調)す
る。このデジタル制御フィルタ41でカットオフ周波数
が変更された信号は、デジタル楽音信号SIG2として
デジタル制御増幅器42に供給される。このデジタル制
御フィルタ41の詳細については後述する。
【0059】デジタル制御増幅器42は、エンベロープ
信号E1に応じて、入力されたデジタル楽音信号SIG
2の増幅率を変更(振幅変調)するものである。このデ
ジタル制御増幅器42で増幅率が変更された信号は、デ
ジタル楽音信号SIG3としてD/A変換器18(図1
参照)に供給される。このデジタル制御増幅器42の詳
細についても後述する。
【0060】上記補間回路43、46、エンベロープジ
ェネレータ44、47は、詳細は後述するが、全て同じ
回路構成となっている。以下、それぞれの概略の機能を
説明する。
【0061】補間回路(IP0)43は補間手段に対応
するものであり、CPU10から与えられたカットオフ
周波数値COFの補間をとって出力するものである。C
PU10は、ボリューム装置15に搭載されたカットオ
フ周波数操作子のイベントがある毎にカットオフ周波数
値を取り込む。しかし、このカットオフ周波数値は、ク
ロック信号CKSLに同期したタイミングでしかCPU
10に取り込まれないので、操作子を素早く操作した場
合等は、急激に変化するカットオフ周波数値が得られ
る。このような急激に変化するカットオフ周波数値をデ
ジタル制御フィルタ41に送出してそのカットオフ周波
数を制御しようとすると雑音が発生する。そこで、この
補間回路43で補間をとって滑らかに変化するカットオ
フ周波数値を得るようになっている。この補間回路43
の出力は加算器45に供給される。
【0062】エンベロープジェネレータ(EG0)44
は、CPU10から与えられたパラメータセットPRS
0に基づいてカットオフ周波数のエンベロープを生成す
るものである。パラメータセットPRS0は、1つのフ
ェーズにおける到達目標レベルを指示するレベルデータ
LEVと到達目標レベルに至るまでの速度を指示する速
度データSPDとで構成される。このエンベロープジェ
ネレータ44は、押鍵又は離鍵に伴って変化するカット
オフ周波数を制御するために使用される。例えば、自然
楽器においては、押鍵直後は、多くの倍音を含んだ楽音
が発生されるが時間の経過と共に倍音の数は高音側から
徐々に減少する。また、鍵タッチによっても楽音に含ま
れる倍音の数が異なってくる。例えば強い鍵タッチで押
鍵すると多くの倍音が含まれる楽音が、弱い鍵タッチで
押鍵すると倍音の数が少ない楽音が、それぞれ発生され
る。
【0063】かかる自然楽器の特性を模擬してリアルな
楽音を発生するために、デジタル制御フィルタ41のカ
ットオフ周波数を徐々に変化させる制御が行われる。エ
ンベロープジェネレータ44は、かかるカットオフ周波
数の変化を実現するためのエンベロープ信号を生成す
る。即ち、CPU10は、押鍵又は離鍵の強さに応じた
パラメータセットPRS0をエンベロープジェネレータ
44に供給する。エンベロープジェネレータ44は、こ
のパラメータセットPRS0に基づいてエンベロープ信
号を生成する。このエンベロープジェネレータ44の出
力は加算器45に供給される。
【0064】加算器45は、上記補間回路43から供給
されるデータと上記エンベロープジェネレータ44から
供給されるデータとを加算する16ビットのデジタル加
算器である。この加算器45は、加算結果が負の値にな
った場合はゼロを出力し、加算結果が正の最大値を越え
た場合は正の最大値を出力する機能(以下、「正ゼロリ
ミッタ機能」という)を有する。ここで、補間回路43
から供給されるデータとエンベロープジェネレータ44
から供給されるデータとを混合するに際し加算器を用い
ているのは、本実施例では、カットオフ周波数を対数周
波数で得られるものとしているからである。従って、カ
ットオフ周波数が通常の周波数で得られる場合は、上記
加算器45の代わりに乗算器を用いて構成すれば良い。
この加算器45の出力がエンベロープ信号E0としてデ
ジタル制御フィルタ41に送られる。
【0065】補間回路(IP1)46は補間手段に対応
するものであり、CPU10から与えられたラウドネス
値LOUの補間をとって出力するものである。ここでラ
ウドネス値LOUは、ボリューム操作子から得られたデ
ータとエクスプレッションペダルから得られたデータと
を乗算して得られる値である。なお、この乗算はCPU
10の機能を用いて行われる。CPU10は、ボリュー
ム装置15に搭載されたボリューム操作子又はエクスプ
レッションペダルのイベントがある毎にボリューム値又
はエクスプレッション値を取り込むが、上記カットオフ
周波数を取り込む場合と同様に、ボリューム値又はエク
スプレッション値が急激に変化すると雑音が発生する。
そこで、この補間回路46で補間をとって滑らかに変化
するボリューム値又はエクスプレッション値を反映した
ラウドネス値LOUを得るようになっている。この補間
回路46の出力は乗算器48に供給される。
【0066】エンベロープジェネレータ(EG1)47
は、CPU10から与えられたパラメータセットPRS
1によって動作する増幅率のエンベロープを生成するも
のである。このエンベロープジェネレータ47は、押鍵
又は離鍵に伴って変化する音量を制御するために使用さ
れる。例えば、自然楽器においては、押鍵直後は、大き
い音量の楽音が発生されるが時間の経過と共に音量は小
さくなる。また、鍵タッチによっても楽音の音量は異な
ってくる。例えば強い鍵タッチで押鍵すると大きい音量
の楽音が、弱い鍵タッチで押鍵すると小さい音量の楽音
が、それぞれ発生される。
【0067】かかる自然楽器の特性を模擬してリアルな
楽音を発生するために、デジタル制御増幅器42の音量
を徐々に変化させる制御が行われる。エンベロープジェ
ネレータ47は、かかる音量の変化を実現するためのエ
ンベロープ信号を生成する。即ち、CPU10は、押鍵
又は離鍵の強さに応じたパラメータセットPRS1をエ
ンベロープジェネレータ47に供給する。エンベロープ
ジェネレータ47は、このパラメータセットPRS1に
基づいてエンベロープ信号を生成する。このエンベロー
プジェネレータ47の出力は乗算器48に供給される。
【0068】乗算器48は、上記補間回路46から供給
されるデータと上記エンベロープジェネレータ47から
供給されるデータとを乗算する16ビットのデジタル乗
算器である。この乗算器48は、乗算結果の下位16ビ
ットを切り捨て、上位16ビットのみを出力する(以
下、この機能を「下位切捨て機能」という)。この乗算
器48の出力がエンベロープ信号E1としてデジタル制
御増幅器42に送られる。なお、音量データが対数音量
で得られる場合は、この乗算器48の代わりに加算器を
用いることができる。
【0069】(4−1)補間回路及びエンベロープジェ
ネレータの説明 上述したように、補間回路43,46及びエンベロープ
ジェネレータ44,47は、全て同一の回路構成を有す
る。従って、以下においては、これらを総称する場合は
「汎用制御回路」と呼ぶ。
【0070】図5は、汎用制御回路の概略構成を示すブ
ロック図である。図において、この汎用制御回路は、ア
キュムレータ(ACC)50、オフセッタ(OFS)5
1、関数生成回路(FCG)52、乗算器53及び加算
器54から構成されている。
【0071】アキュムレータ(ACC)50は、CPU
10から与えられる16ビットの速度データSPDをク
ロック信号CK2の1サイクル毎に累算するものであ
る。ここで、速度データSPDは、当該汎用制御回路が
補間回路として動作する場合は補間速度を指示するデー
タであり、エンベロープジェネレータとして動作する場
合はエンベロープの進行速度を指示するデータである。
【0072】アキュムレータ50の入力端子CKには、
クロックジェネレータ25から1ビットのクロック信号
CK2が供給される。同様に、アキュムレータ50の入
力端子WにはCPU10からの1ビットのライト信号W
Rが、入力端子Sにはオフセッタ51からの1ビットの
下降識別信号SSが、入力端子NにはCPU10からの
16ビットの上昇係数SNが、入力端子NXにはCPU
10からの16ビットの下降係数SNXが、それぞれ入
力される。
【0073】そして、アキュムレータ50の出力端子D
からは、累算された16ビットのデータDATが出力さ
れ、関数生成回路52に供給される。また、出力端子C
からは累算結果により発生したキャリ信号CRYがオフ
セッタ51に供給されると共に、割込信号INT0とし
てCPU10に供給される。このアキュムレータ50の
更に詳細な構成は後述する。
【0074】オフセッタ(OFS)51は、CPU10
から16ビットのレベルデータLEVが与えられた場合
に、新しい目標値のレベルデータと今まで出力されてい
た補間値又はエンベロープ値(中間値)OUTとから上
昇方向に向かうのか下降方向に向かうのかを示す下降識
別信号SSを生成して出力し、今まで出力されていた補
間値又はエンベロープ値(中間値)OUTをオフセット
値として出力し、また、新しい目標値のレベルデータと
今まで出力されていた補間値又はエンベロープ(中間
値)OUTとの差分をとった係数SKを出力するもので
ある。
【0075】オフセッタ51の入力端子LVには、CP
U10から与えられる16ビットの補間目標値を示すレ
ベルデータ又はエンベロープ目標値を示すレベルデータ
が供給される。入力端子Cには、アキュムレータ50か
らの1ビットのキャリ信号CRYが、入力端子Iには、
加算器54が出力する16ビットの補間値又はエンベロ
ープ値(中間値)OUTが、入力端子WにはCPU10
が出力する1ビットのライト信号WRが、それぞれ入力
される。
【0076】そして、オフセッタ51の出力端子Sから
は、1ビットの下降識別信号SSが出力されてアキュム
レータ50及び関数生成回路52に供給される。同様
に、出力端子Kからは、16ビットの乗算係数SKが出
力されて乗算器53に供給される。同様に、出力端子O
からは、16ビットのオフセット値SOが出力されて加
算器54に供給される。このオフセッタ51の更に詳細
な構成は後述する。
【0077】関数生成回路(FCG)52は、アキュム
レータ50から供給されるデータを変数として入力し、
所定の関数を実現するべく変換を施して出力するもので
ある。この関数生成回路52の出力は乗算器53に供給
される。
【0078】関数生成回路52の入力端子Aには、アキ
ュムレータ50から16ビットの被変換値が供給され
る。入力端子Sには、オフセッタ51からの1ビットの
下降識別信号SSが、入力端子C1及びC2にはクロッ
クジェネレータ24からのクロック信号CK1及びCK
2が、それぞれ入力される。そして、出力端子Yから
は、16ビットの変換値DT1が出力され、乗算器53
に供給される。この変換値DT1は、0≦DT1<65
536の範囲の値である。この関数生成回路52の更に
詳細な構成は後述する。
【0079】乗算器53は、上記関数生成回路52から
供給されるデータと上記オフセッタ51から供給される
データとを乗算する16ビットの下位切捨て機能付きデ
ジタル乗算器である。この乗算器53の出力は加算器5
4に送られる。
【0080】加算器54は、上記乗算器53から供給さ
れるデータと上記オフセッタ51から供給されるデータ
とを加算する16ビットの正ゼロリミッタ機能付きデジ
タル加算器である。この加算器54の出力が、汎用制御
回路が出力する補間値OUTとして外部に出力される。
【0081】(4−1−1)アキュムレータの説明 アキュムレータ50の詳細な構成は、図6に示されてい
る。図6において、ラッチ60は、ライト信号WRの立
ち下がりのエッジで、CPU10から送られてくる上昇
係数SNを記憶するものである。このラッチ60の出力
は、セレクタ62の「0」側の入力端子に供給される。
【0082】ラッチ61は、ライト信号WRの立ち下が
りのエッジで、CPU10から送られてくる下降係数S
NXを記憶するものである。このラッチ61の出力は、
セレクタ62の「1」側の入力端子に供給される。
【0083】セレクタ62は、オフセッタ51から供給
される下降識別信号SSがアクティブ(「1」)である
ときにラッチ61の出力を選択し、そうでないときはラ
ッチ60の出力を選択して出力するものである。ここ
で、下降識別信号SSは、下降傾向の補間又はエンベロ
ープデータ生成を行っているときにアクティブ
(「1」)となる信号である。このセレクタ62の出力
は乗算器65に供給される。
【0084】セレクタ63は、CPU10からのライト
信号WRがアクティブ(「1」)のときに、CPU10
から供給される速度データSPD、即ち、当該汎用制御
回路が補間回路として動作している場合は補間速度を示
すデータ、エンベロープジェネレータとして動作してい
る場合はエンベロープの進行速度を示すデータを選択
し、そうでないときは、後述する乗算器65の出力が選
択される。このセレクタ63の出力はラッチ64に送ら
れる。
【0085】ラッチ64は、ORゲート66が出力する
信号の立ち下がりのエッジでセレクタ63の出力をラッ
チするものである。ここで、ORゲート66の入力に
は、CPU10からのライト信号WR及びクロックジェ
ネレータ24からのクロック信号CK2が供給される。
従って、このラッチ64には、CPU10からライト信
号WRが供給された場合に、CPU10からセレクタ6
3を介して供給される速度データSPDが記憶される。
それ以外の場合は、クロックジェネレータ24から供給
されるクロック信号CK2の立ち下がりエッジに同期し
て乗算器65からセレクタ63を介して供給されるデー
タが記憶される。このラッチ64の出力は、乗算器65
に供給される。
【0086】乗算器65は、上記セレクタ62から供給
されるデータ(上昇係数SN又は下降係数SNX)と上
記ラッチ64から供給されるデータとを乗算する16ビ
ットの下位切捨て機能付きデジタル乗算器である。この
乗算器65の出力はセレクタ63の「0」側の入力端子
に供給されると共に、後述する加算器69に送られる。
【0087】以上の構成により、乗算器65からは下式
で示されるデータが出力される。 乗算器65の出力=SPD×(SN又はSNX)T ここで「T」は、クロック信号CK2で規定される時間
である。即ち、例えば図13(A)に示したように、上
昇係数SN又は下降係数SNXが「1」の場合は、乗算
器65からは速度データSPDがそのまま出力され続け
る。上昇係数が「1」より大きい場合は、乗算器65か
らは速度データSPDから指数関数的に増加するデータ
が出力される。上昇係数が「1」より小さい場合は、乗
算器65からは速度データSPDから指数関数的に減少
するデータが出力される。
【0088】ラッチ68は、加算器69の出力をクロッ
ク信号CK2の立ち下がりエッジでラッチするものであ
る。このラッチ68の出力は加算器69に供給される。
また、このラッチ68は、ORゲート67の出力信号で
クリアされる。ここで、ORゲート68の入力には、C
PU10からのライト信号WR及び加算器69のキャリ
信号CRYが供給されている。従って、このラッチ68
は、CPU10からライト信号WRが供給された場合、
又は加算器69からキャリ信号CRYが出力された場合
にクリアされる。
【0089】加算器69は、上記乗算器65から供給さ
れるデータと上記ラッチ68から供給されるデータとを
加算する16ビットのデジタル加算器である。この加算
器69は、加算の結果16ビットで表現できる範囲を越
えた場合にキャリ信号CRYを出力する。このキャリ信
号CRYは、上述したようにラッチ68をクリアするた
めに使用される他、CPU10に対して割込信号INT
0として供給される。このキャリ信号CRYは、汎用制
御回路が補間回路として使用される場合は補間が終了し
たことを示し、エンベロープジェネレータとして使用さ
れる場合はエンベロープの目標値に到達したことを示
す。なお、補間回路として動作する汎用制御回路の場合
は、このキャリ信号CRYをCPU10に送る必要はな
いので、補間回路43又は46の出力端子CからCPU
10に接続する必要はない。
【0090】以上の構成により、加算器69から出力さ
れるデータDATは、例えば図13(B)に示したよう
な特性を有することになる。即ち、上昇係数SNが
「1」の場合は、時間経過に連れてリニアに増加するデ
ータが得られる。上昇係数が「1」より大きい場合は、
時間経過に連れて増加率が大きくなるデータが得られ
る。上昇係数が「1」より小さい場合は、時間経過と共
に増加率が小さくなるデータが得られる。
【0091】上記のように構成されるアキュムレータ5
0を用いれば、上昇係数SN又は下降係数SNXを適宜
選択することにより、時間の経過に連れて速度データS
PDの値から種々の増加率で増加するデータを得ること
ができる。
【0092】(4−1−2)オフセッタの説明 オフセッタ51の詳細な構成は、図7に示されている。
図7において、セレクタ70は、キャリ信号CRYがア
クティブであるときにラッチ73の出力を選択し、そう
でないときは加算器54(図5参照)から供給される現
在の補間値(中間値)OUTを選択して出力する。この
セレクタ71の出力は、ラッチ71に供給される。
【0093】ラッチ71は、ORゲート72が出力する
信号の立ち下がりのエッジでセレクタ70の出力をラッ
チするものである。ここで、ORゲート72の入力に
は、CPU10からのライト信号WR及びアキュムレー
タ50からのキャリ信号CRYが供給されている。従っ
て、このラッチ71には、CPU10からライト信号W
Rが供給された場合に、加算器54からセレクタ70を
介して供給される中間値OUTが記憶される。一方、ア
キュムレータ50からキャリ信号CRYが供給された場
合は、後述するラッチ73からセレクタ70を介して供
給される目標値データが記憶される。このラッチ71の
出力は、加算器74に供給されると共に、外部に出力さ
れて加算器54に供給される。
【0094】ラッチ73は、ライト信号WRの立ち下が
りのエッジで、CPU10から送られてくる目標値を指
示するレベルデータLEVを記憶するものである。この
ラッチ73の出力は、セレクタ70の「1」側の入力端
子に供給されると共に、加算器74に供給される。
【0095】加算器74は、上記ラッチ71から供給さ
れるデータと上記ラッチ73から供給されるデータとを
2の補数加算、つまり減算する16ビットのデジタル加
算器である。この加算器74では、ラッチ73の出力か
らラッチ71の出力を減算する機能が実現されている。
この加算器74は、減算結果が負の最大値を越えた場合
は負の最大値を出力し、正の最大値を越えた場合は正の
最大値を出力する機能(以下、「正負リミッタ機能」と
いう)を有する。また、この加算器45は、減算の都
度、MSB(サインビット)を出力する。
【0096】上記のように構成されるオフセッタ51で
は、CPU10からレベルデータLEVの書込みがある
と、このレベルデータLEVはラッチ73にラッチされ
る。この際、現在の補間値(中間値)OUTがラッチ7
1にラッチされる。これにより、新たな目標値を示すレ
ベルデータLEVから現在の補間値(中間値)OUTを
減算した結果の16ビットのデータが加算器74から出
力される。このデータは、乗算係数SKとして乗算器5
3(図5参照)に与えられる。また、上記減算の結果、
MSB(サインビット)が加算器74から出力される。
従って、中間値OUTより小さいレベルデータLEVを
与えた場合はMSBが「1」となり、下降識別信号SS
は下降傾向を指示することになる。一方、中間値OUT
より大きいレベルデータLEVを与えた場合はMSBが
「0」となり、下降識別信号SSは上昇傾向を指示する
ことになる。なお、アキュムレータ50からのキャリ信
号CRYがアクティブになった場合は、目標レベルに到
達したことを意味するので、ラッチ73に設定されてい
る値がセレクタ70を介してラッチ71にラッチされ、
新しいオフセット値となる。
【0097】(4−1−3)関数生成回路の説明 関数生成回路52の詳細な構成は、図8に示されてい
る。図8において、インクリメンタ80は、入力端子A
に供給されるアキュムレータ50からの16ビットのデ
ータDATのうち、上位8ビットを入力してインクリメ
ントするものである。このインクリメンタ80の出力は
バッファ82に供給される。
【0098】バッファ81は、入力端子Gがアクティブ
にされているときに入力側に供給されている信号を外部
に伝え、そうでないときは出力側がハイインピーダンス
状態になるゲート付きの8ビットのトライステートバッ
ファである。このバッファ81の入力側には、データD
ATのうちの上位8ビットが供給され、その出力は関数
回路(FA)83及び関数回路(FB)84に供給され
る。バッファ82も、上記バッファ81と同じ構成のト
ライステートバッファである。このバッファ82の入力
側には、上記インクリメンタ80の出力が供給され、そ
の出力は関数回路(FA)83及び関数回路(FB)8
4に供給される。
【0099】関数回路83及び84は、例えば8ビット
×256ワードのROMで構成されるものである。関数
回路83には、上昇時の関数を実現するべく所定のデー
タが記憶されている。関数回路84には、下降時の関数
を実現するべく所定のデータが記憶されている。
【0100】セレクタ85は、オフセッタ51から供給
される下降識別信号SSがアクティブ(「1」)である
ときに関数回路84の出力を選択し、そうでないときは
関数回路83の出力を選択して出力するものである。こ
のセレクタ85の出力は、ラッチ86及び87に供給さ
れるようになっている。
【0101】ラッチ86は、セレクタ85の出力を、ク
ロック信号CK1の立ち下がりのエッジでラッチする8
ビットのラッチ回路である。このラッチ86の出力は、
加算器75及び加算器77に供給される。同様に、ラッ
チ87は、セレクタ85の出力を、クロック信号CK2
の立ち下がりのエッジでラッチする8ビットのラッチ回
路である。このラッチ87の出力は、加算器75に供給
される。
【0102】加算器75は、上記ラッチ86から供給さ
れるデータと上記ラッチ87から供給されるデータとを
2の補数加算、つまり減算する8ビットの正負リミッタ
機能付きデジタル加算器である。この加算器75では、
ラッチ87の出力からラッチ86の出力を減算する機能
が実現されている。この加算器75の出力は、乗算器7
6に供給される。
【0103】乗算器76は、上記加算器75から供給さ
れるデータと、入力端子Aに供給されるアキュムレータ
50からの16ビットのデータDATのうち、下位8ビ
ットとを乗算するデジタル乗算器である。この乗算器7
6は、乗算結果の下位8ビットを切り捨て、上位8ビッ
トのみを出力する。この乗算器76の出力は、加算器7
7に供給される。
【0104】加算器77は、上記ラッチ86の出力を8
ビットだけ左にシフトして作成した16ビットのデータ
と上記乗算器76の出力の符号を拡張して作成した16
ビットのデータとを加算する16ビットの正ゼロリミッ
タ機能付きデジタル加算器である。この加算器77の出
力は、ラッチ88に送られる。
【0105】ラッチ88は、加算器77の出力を、クロ
ック信号CK2の立ち下がりのエッジでラッチする16
ビットのラッチ回路である。このラッチ88の出力DT
1は、乗算器53(図5参照)に供給される。
【0106】上記のように構成される関数生成回路52
の動作について説明する。今、下降識別信号SSが
「0」であり、関数回路83に記憶されたデータを用い
て関数が生成されるものとする。
【0107】アキュムレータ50から供給されたデータ
DATの中の上位8ビットのデータ(整数部:INT)
は、クロック信号CK1がHレベルの間にバッファ81
を通過して関数回路83に与えられる。これにより、関
数回路83からは所定のデータXが出力される。このデ
ータXはセレクタ85を介してクロック信号CK1の立
ち下がりのエッジでラッチ86にラッチされる。
【0108】次に、データDATの中の上位8ビットの
データは、クロック信号CK2がHレベルの間にインク
リメンタ81でインクリメントされ、バッファ81を通
過して関数回路83に与えられる。これにより、関数回
路83からは所定のデータYが出力される。このデータ
Yはセレクタ85を介してクロック信号CK2の立ち下
がりのエッジでラッチ87にラッチされる。
【0109】ここに、データXは関数回路83の所定番
地のデータであり、データYは、上記所定番地の次の番
地のデータである。この2つのデータX,Yに対して加
算器75、77及び乗算器76を用いて、データDAT
の中の下位8ビットのデータ(小数部:FRC)に応じ
た補間がとられる。
【0110】即ち、加算器75においてデータYからデ
ータXを減算して差分を算出し、この差分にデータDA
Tの中の下位8ビットのデータを乗算する。この乗算に
より、データXからの変位量が算出される。この変位量
とデータXとを加算器77で加算すれば、データDAT
に応じた変換値が得られることになる。なお、加算器7
7では、整数部(データX)を上位8ビットに対応させ
るために左8ビットのシフトを行ったデータと、小数部
(変位量)を下位8ビットに対応させるために上位8ビ
ットに符号ビットを拡張したデータとの加算が行われ
る。この加算結果は、クロック信号CK2の立ち下がり
のエッジでラッチ88にラッチされ、関数生成回路52
の出力DT1として外部に出力される。
【0111】なお、以上は上昇傾向にある場合の関数生
成について説明したが、下降傾向にある場合の関数生成
は、下降識別信号が「1」であり、セレクタ85で関数
回路84が選択されて動作することを除けば同一の動作
で実現されるので、説明は省略する。また、上記実施例
では、整数部と小数部がそれぞれ8ビットである場合に
ついて説明したが、これに限定されるものではなく、整
数部及び小数部は任意のビット幅のデータで構成するこ
とができる。
【0112】このように、所定の関数を実現するため
に、上位8ビット分だけのデータを備え、下位8ビット
分のデータは補間により算出するようにしたので、関数
を実現するためのデータが少なくて済み、比較的小さい
容量のROMを用いて関数生成回路を実現できる。ま
た、上昇傾向にある場合に使用する関数回路83と下降
傾向にある場合に使用する関数回路84とを別途設けた
ので、上昇傾向にある場合の補間特性と下降傾向にある
補間特性とを異ならしめることができ、それぞれ最適な
補間特性で演奏データを補間することができる。
【0113】なお、上記の実施例では、ROMの容量を
小さくするために補間を行って関数値を算出する構成と
したが、大容量のROMを用いて同様の機能を実現する
こともできる。例えば16ビットのアドレス空間を有す
るROMを用いれば、アキュムレータ50から供給され
た16ビットのデータを直接ROMのアドレス入力と
し、その出力を直接変換値とすることができる。
【0114】また、上記実施例では、関数回路83、8
4としてROMを用いたが、RAMを用いて構成するこ
ともできる。この場合、RAMにデータを書き込むため
の若干の回路を付加し、予め関数値をロードしておけ
ば、上記と同様の動作で関数生成が可能となる。この場
合、必要に応じてRAMの内容を変更することができる
ので、関数を変更することが可能となる。従って、より
汎用性のある音源を実現できるという利点がある。
【0115】また、この関数生成回路52は、関数回路
83、84を除き、共通の回路を用いて時分割で使用す
るように構成することができる。かかる構成によれば、
少ないハードウエアで関数生成回路52を構成できると
いう利点がある。
【0116】(4−2)デジタル制御フィルタの説明 次に、デジタル制御フィルタ41につき詳細に説明す
る。本実施例では、デジタル制御フィルタ41として、
IIR形フィルタを用いている。このデジタル制御フィ
ルタ41は、与えられるフィルタ係数により、種々のフ
ィルタ特性を有するべく構成されている。
【0117】図9及び図10は、デジタル制御フィルタ
(DCO)41の構成を示すブロック図である。このデ
ジタル制御フィルタ41は、16ビットのデジタル楽音
信号SIG1を入力し、カットオフ周波数を制御するエ
ンベロープ信号E0に応じたフィルタ処理を行って、1
6ビットのデジタル楽音信号SIG2を出力するもので
ある。このデジタル制御フィルタ41は、図9に示され
るフィルタ部と図10に示される係数発生部とに分けら
れている。
【0118】係数発生部は、フィルタ部に与えるフィル
タ係数A1、A2、B1、B2、B3を生成するもので
ある。この係数発生部は、各係数A1、A2、B1、B
2、B3に対応してそれぞれ別個に設けられているが、
各係数発生部の構成は同一であるので、図10では1つ
の係数発生部のみを示している。
【0119】なお、この係数発生部は、関数回路103
を除き、共通の回路を用いて時分割で使用するように構
成することができる。かかる構成によれば、少ないハー
ドウエアでデジタル制御フィルタを構成できるという利
点がある。
【0120】(4−2−1)デジタル制御フィルタのフ
ィルタ部の説明 デジタル制御フィルタ41のフィルタ部(図9参照)
は、ラッチ90〜93、乗算器78、79、94〜96
及び加算器97〜99で構成されている。
【0121】ラッチ90〜93は、入力された信号をク
ロック信号CK2の立ち下がりのエッジでラッチするも
のである。このラッチ90〜93は、それぞれ入力され
た信号を1サイクル分だけ遅延させる遅延回路として作
用するものである。乗算器78、79、94〜96は、
16ビットの下位切捨て機能を有するデジタル乗算器で
ある。加算器97〜99は、正負リミッタ機能を有する
16ビットのデジタル加算器である。
【0122】このデジタル制御フィルタ41のフィルタ
部は、上記各要素が以下のように接続されてIIR形の
デジタルフィルタ機能が実現されている。
【0123】即ち、デジタル制御発振器40から送られ
てきたデジタル楽音信号(波形データ)SIG1は、乗
算器94及びラッチ90に供給される。乗算器94は、
上記デジタル楽音信号(波形データ)SIG1と、係数
発生部から供給されるフィルタ係数B0とを乗算し、加
算器97に送出する。一方、ラッチ90は、上記デジタ
ル楽音信号(波形データ)SIG1を1サイクル分だけ
遅延させて乗算器95及びラッチ91に送る。
【0124】乗算器95は、ラッチ90から供給される
データと、係数発生部から供給されるフィルタ係数B1
とを乗算し、加算器98に送出する。一方、ラッチ91
は、ラッチ90からのデータを1サイクル分だけ遅延さ
せて乗算器96に送る。乗算器96は、ラッチ91から
供給されるデータと、係数発生部から供給されるフィル
タ係数B2とを乗算し、加算器99に送る。
【0125】また、上記加算器97の出力は、フィルタ
リングされたデジタル楽音信号(波形データ)SIG2
として、外部(デジタル制御増幅器42)及びラッチ9
2に送出される。ラッチ92は、上記デジタル楽音信号
(波形データ)SIG2を1サイクル分だけ遅延させて
乗算器78及びラッチ93に送る。乗算器78は、ラッ
チ92から供給されるデータと、係数発生部から供給さ
れるフィルタ係数A1とを乗算し、加算器98に送出す
る。一方、ラッチ93は、ラッチ92からのデータを1
サイクル分だけ遅延させて乗算器79に送出する。
【0126】乗算器79は、ラッチ93から供給される
データと、係数発生部から供給されるフィルタ係数A2
とを乗算し、加算器99に送出する。加算器99は、上
述した乗算器96から供給されるデータと、上記乗算器
79から供給されるデータとを加算し、加算器98に送
出する。
【0127】加算器98は、上述した乗算器95から供
給されるデータと、上記加算器78から供給されるデー
タとを加算し、更に加算器99から供給されるデータを
加算して加算器97に送出する。加算器97は、上述し
た乗算器94から供給されるデータと、上記加算器98
から供給されるデータとを加算する。この加算器97の
出力は、上述したように、このデジタル制御フィルタ3
1が出力するフィルタリングされたデジタル楽音信号
(波形データ)SIG2として、外部(デジタル制御増
幅器42)に送出される。
【0128】上記のように構成されるデジタルフィルタ
の動作は周知であるので、詳細な説明は省略するが、こ
の実施例の特徴は、フィルタ係数を係数発生部の関数回
路(ROM)103に記憶しておき、加算器45(図4
参照)から供給されるエンベロープ信号E0に応じて所
定の変換を施してフィルタ係数とする点である。かかる
構成により、所望の特性を有するデジタル制御フィルタ
の構成が容易になっている。
【0129】(4−2−2)デジタル制御フィルタの係
数発生部の説明 デジタル制御フィルタ41の係数発生部の詳細な構成
は、図10に示されている。図10において、インクリ
メンタ100は、入力端子Aに供給されるカットオフ周
波数を示す16ビットのエンベロープ信号E0のうち、
上位8ビットを入力してインクリメントして出力する。
この際、入力されたエンベロープ信号E0が「FFH」
(末桁の「H」は16進数であることを表わす。以下、
同じ)であればインクリメントは行わず、「FFH」を
そのまま出力する。このインクリメンタ100の出力は
バッファ102に供給される。
【0130】バッファ101は、入力端子Gがアクティ
ブにされているときに入力側に供給されている信号を外
部に伝え、そうでないときは出力側がハイインピーダン
ス状態になるゲート付きの8ビットのトライステートバ
ッファである。このバッファ101の入力側には、エン
ベロープ信号E0のうちの上位8ビットが供給され、そ
の出力は関数回路(FX)103に供給される。同様
に、バッファ102も、上記バッファ101と同じ構成
のトライステートバッファである。このバッファ102
の入力側には、インクリメンタ100の出力が供給さ
れ、その出力は関数回路(FX)103に供給される。
【0131】関数回路103は、例えば8ビット×25
6ワードのROMで構成されるものである。関数回路1
03は、係数A1、A2、B1、B2、B3毎に異なる
内容の係数を出力する。この関数回路には、対数周波数
となるデータが記憶されている。この関数回路103の
出力は、ラッチ104及び105に供給されるようにな
っている。
【0132】ラッチ104は、関数回路103の出力
を、クロック信号CK1の立ち下がりのエッジでラッチ
する8ビットのラッチ回路である。このラッチ104の
出力は、加算器106及び加算器108に供給される。
同様に、ラッチ105は、関数回路103の出力を、ク
ロック信号CK2の立ち下がりのエッジでラッチする8
ビットのラッチ回路である。このラッチ105の出力
は、加算器106に供給される。
【0133】加算器106は、上記ラッチ104から供
給されるデータと上記ラッチ105から供給されるデー
タとを2の補数加算、つまり減算する8ビットの正負リ
ミッタ機能付きのデジタル加算器である。この加算器1
06では、ラッチ105の出力からラッチ104の出力
を減算する機能が実現されている。この加算器106の
出力は、乗算器107に供給される。
【0134】乗算器107は、上記加算器106から供
給されるデータと、入力端子Aに供給される16ビット
のエンベロープ信号E0のうち、下位8ビットとを乗算
する下位切捨て機能付きデジタル乗算器である。この乗
算器107の出力は、加算器108に供給される。
【0135】加算器108は、上記ラッチ104の出力
を8ビットだけ左にシフトして作成した16ビットのデ
ータと上記乗算器107の出力の符号を拡張して作成し
た16ビットのデータとを加算する16ビットの正負リ
ミッタ機能付きデジタル加算器である。この加算器10
8の出力は、ラッチ109に送られる。
【0136】ラッチ109は、加算器108の出力を、
クロック信号CK2の立ち下がりのエッジでラッチする
16ビットのラッチ回路である。このラッチ109の出
力が、係数A1、A2、B1、B2、B3としてフィル
タ部に供給される。
【0137】上記のように構成されるデジタル制御フィ
ルタ41の係数発生部の動作は、図8を参照して説明し
た関数回路と略同じであるので、以下、簡単に説明す
る。
【0138】加算器45(図4参照)エンベロープ信号
E0の上位8ビットのデータ(整数部:INT)は、ク
ロック信号CK1がHレベルの間にバッファ101を通
過して関数回路103に与えられる。これにより、関数
回路103からは所定のデータXが出力される。このデ
ータXはクロック信号CK1の立ち下がりのエッジでラ
ッチ104にラッチされる。
【0139】次に、エンベロープ信号E0の上位8ビッ
トのデータは、クロック信号CK2がHレベルの間にイ
ンクリメンタ100でインクリメントされ、バッファ1
02を通過して関数回路103に与えられる。これによ
り、関数回路103からは所定のデータYが出力され
る。このデータYはクロック信号CK2の立ち下がりの
エッジでラッチ105にラッチされる。
【0140】ここに、データXは関数回路103の所定
番地のデータであり、データYは、上記所定番地の次の
番地のデータである。この2つのデータX,Yに対して
加算器106、107及び乗算器108を用いて、エン
ベロープ信号E0の下位8ビットのデータ(小数部:F
RC)に応じた補間がとられる。
【0141】即ち、加算器106においてデータYから
データXを減算して差分を算出し、この差分にエンベロ
ープ信号E0の下位8ビットのデータを乗算する。この
乗算により、データXからの変位量が算出される。この
変位量とデータXとを加算器108で加算すれば、エン
ベロープ信号E0に応じた変換値が得られることにな
る。なお、加算器108の加算では、整数部(データ
X)を上位8ビットに対応させるために左8ビットのシ
フトを行ったデータと、小数部(変位量)を下位8ビッ
トに対応させるために上位8ビットに符号ビットを拡張
したデータとの加算が行われる。この加算結果は、クロ
ック信号CK2の立ち下がりのエッジでラッチ88にラ
ッチされ、フィルタ係数A1、A2、B0、B1、B2
としてフィルタ部に送られる。
【0142】このように、所定の関数を実現するため
に、上位8ビット分だけのデータを備え、下位8ビット
分のデータは補間により算出するようにしたので、関数
を実現するためのデータが少なくて済み、比較的小さい
容量のROMを用いて関数生成回路を実現できるものと
なっている。
【0143】なお、上記実施例では、整数部と小数部が
それぞれ8ビットである場合について説明したが、これ
に限定されるものではなく、整数部及び小数部は任意の
ビット幅のデータで構成することができる。
【0144】また、上記の実施例では、ROMの容量を
小さくするために補間を行って関数値を算出する構成と
したが、大容量のROMを用いて同様の機能を実現する
こともできる。例えば16ビットのアドレス空間を有す
るROMを用いれば、16ビットのエンベロープ信号E
0を直接ROMのアドレス入力とし、その出力を直接変
換値とすることができる。
【0145】また、上記実施例では、関数回路103と
してROMを用いたが、RAMを用いて構成することも
できる。この場合、RAMにデータを書き込むための若
干の回路を付加し、予め関数値をロードしておけば、上
記と同様の動作で関数生成が可能となる。この場合、必
要に応じてRAMの内容を変更することができるので、
関数を変更することが可能となる。従って、より汎用性
のある音源を実現できるという利点がある。 (4−3)デジタル制御増幅器の説明 デジタル制御増幅器42は、デジタル制御発振器40か
らデジタル制御フィルタ41を介して送られてくるデジ
タル楽音信号に、乗算器48(図4参照)から送られて
くるエンベロープ信号E1を付加するものである。
【0146】図11は、デジタル制御増幅器42の回路
構成の一例を示す図である。乗算器115は、デジタル
制御フィルタ41から送られてくるデジタル楽音信号S
IG2と乗算器48から送られてくるエンベロープ信号
E1とを乗算する16ビットの下位切捨て機能付きデジ
タル乗算器である。この乗算器48の出力が、エンベロ
ープが付加されたデジタル楽音信号SIG3としてD/
A変換器18(図1参照)に送られる。
【0147】次に、上記のように構成された音源17が
適用された電子楽器の動作につき、図14〜図18に示
したフローチャートを参照しながら詳細に説明する。各
図に示されたフローチャートは、ROM11に格納され
た制御プログラムに従って動作するCPU10によって
実現されるものである。なお、以下においては、本発明
に関係する部分のみをフローチャートに示して説明す
る。
【0148】図14は、本発明のメインルーチンを示す
フローチャートである。このメインルーチンは、電源の
投入又はリセットスイッチ(図示しない)の押下によっ
て図示しないリセット信号がアクティブにされることに
より起動される。
【0149】即ち、電源投入等によりメインルーチンが
起動されると、先ず、CPU10の初期化処理が行われ
る(ステップS10)。この処理では、CPU10内の
レジスタ、フラグ等に初期値を設定する処理が行われ
る。
【0150】次いで、音源(SPU)17の初期化処理
が行われる(ステップS11)。この処理では、目標値
を指示するレベルデータLEVとして「0」、進行速度
を指示する速度データSPDとして「0FFFFH」を
有するパラメータセットPRS0及びPRS1をエンベ
ロープジェネレータ44及び47に設定し、また、補間
速度を指示する速度データSPDとして適当な値を補間
回路43及び補間回路46の補間速度に設定する。
【0151】次いで、ワークエリアの初期化処理が行わ
れる(ステップS12)。即ち、この処理では、RAM
12にワークエリアとして定義されている各種レジス
タ、カウンタ、フラグ等に初期値を設定する処理が行わ
れる。例えば、イベントキューのクリア、イベントポイ
ンタとイベントカウンタのゼロクリア、イベント読出バ
ッファのクリア、イベント書込バッファのクリア等が行
われる。
【0152】ここで、イベントキューは、例えばFIF
O(ファーストイン・ファーストアウト)メモリとして
RAM12中に形成され、4バイトのイベントデータを
キューイングするものである。このイベントキューは、
最後にイベントデータが書き込まれた位置を示すイベン
トカウンタと最後にイベントデータを読み出した位置を
示すイベントポインタにより制御される。
【0153】即ち、イベントセット(イベントキューへ
の書き込み)要求が発生すると、イベント書込バッファ
の内容をイベントカウンタで示される位置に書き込んだ
後にイベントカウンタをインクリメント(+4)する。
また、イベントキューからの読み出し要求が発生する
と、イベントポインタで示される位置から4バイトのイ
ベントデータをイベント読出バッファに読み出した後
に、イベントポインタをインクリメント(+4)する。
なお、イベントカウンタ及びイベントポインタは、イベ
ントキューの大きさに対応して巡回するように制御され
る。
【0154】このイベントキューに格納されるイベント
データは、例えば図19(A)に示されるように4バイ
ト(バイト0〜3)で構成されている。「バイト0」に
はイベントの種類を示すコードが格納される。「バイト
1」にはバリューの上位バイトが、「バイト2」にはバ
リューの下位バイトがそれぞれ格納される。このバリュ
ーは、イベントの種類を示すコードによってそれぞれ異
なった意味で用いられる。「バイト3」にはチャンネル
番号が格納される。なお、このチャンネル番号は、当該
音源17をポリフォニックで動作させる場合に使用され
る。
【0155】イベントの種類としては、本実施例では、
例えば図19(B)に示されるように、10種類が定義
されている。なお、イベントの種類としては、同図に示
したものに限定されず、上記以外の種々のイベントを定
義することができる。
【0156】上記ステップS12のワークエリアの初期
化が終了すると、次いで、イベントがあるかどうかが調
べられる(ステップS13)。これは、イベントカウン
タの内容とイベントポインタの内容とが一致するかどう
かを調べることにより行われる。ここでイベントがない
ことが判断されると、ステップS13を繰り返し実行し
ながらイベントキューにイベントデータが書き込まれる
のを待つ。なお、イベントキューへのイベントデータの
書き込みは、後述するインタバルタイマ割込処理、IN
T0割込処理又はINT1割込処理によって行われる。
【0157】上記ステップS13の繰り返し実行の過程
でイベントがあることが判断されると、イベントキュー
から1つ(4バイト)のイベントデータをイベント読出
バッファに読み出し、イベントポインタを+4する。次
いで、イベント読出バッファに読み出されたイベントデ
ータに対応したイベント処理が行われる(ステップS1
4)。このイベント処理の詳細については後述する。イ
ベント処理が完了するとステップS13に戻り、上述し
たと同様の処理が繰り返される。このようにして、キー
ボード13、操作パネル14、ボリューム装置15等の
操作に伴って発生するイベント、又は音源17における
補間処理又はエンベロープデータ生成処理が終了するこ
とにより発生するイベントに応じてイベント処理がリア
ルタイムに行われることにより、電子楽器としての諸機
能が発揮される。
【0158】次に、インタバルタイマ割込処理につい
て、図15に示したフローチャートを参照しながら詳細
に説明する。このインタバルタイマ割込処理ルーチン
は、CPU10に内蔵される図示しないインタバルタイ
マにより一定周期で起動されるものである。このインタ
バルタイマ割込処理により、キーボード13又は操作パ
ネル14のイベントを検出し、イベントキューにイベン
トデータが書き込まれる。
【0159】インタバルタイマ割込処理では、先ず、ス
キャン処理が行われる(ステップS20)。このスキャ
ン処理には、キーボード13に対するスキャン処理及び
操作パネル14に対するスキャン処理が含まれる。
【0160】キーボード13に対するスキャン処理は、
キーボード13に対してスキャンデータを送出し、この
スキャンデータに応答してキーボード13から送られて
くる、各鍵のオン又はオフを示すビット列でなるデータ
(以下、「新キーデータ」という)を取り込んでRAM
12に設けられた新キーデータ領域に格納する処理であ
る。
【0161】操作パネル14に対するスキャン処理は、
操作パネル14に対してスキャンデータを送出し、この
スキャンデータに応答して操作パネル14から送られて
くる、各スイッチのオン又はオフを示すビット列でなる
データ(以下、「新パネルデータ」という)を取り込ん
でRAM12の所定領域に格納する処理である。
【0162】次いで、イベントの有無が調べられる(ス
テップS21)。即ち、キーボード13のイベントの有
無は、上記ステップS20でRAM12の所定領域に格
納された新キーデータと、前回のインタバルタイマ割込
処理でキーボード13から取り込んでRAM12の所定
領域に格納されているデータ(以下、「旧キーデータ」
という)とを比較し、相違するビットが存在するかどう
かを調べることにより行われる。即ち、相違するビット
が存在すればキーイベントがあったと判断され、相違す
るビットが存在しなければキーイベントはなかったと判
断される。
【0163】同様に、操作パネル14のイベントの有無
は、上記ステップS20でRAM12の所定領域に格納
された新パネルデータと、前回のインタバルタイマ割込
処理で操作パネル14から取り込んでRAM12の所定
領域に格納されているデータ(以下、「旧パネルデー
タ」という)とを比較し、相違するビットが存在するか
どうかを調べることにより行われる。即ち、相違するビ
ットが存在すればキーイベントがあったと判断され、相
違するビットが存在しなければキーイベントはなかった
と判断される。
【0164】そして、イベント(キーイベント又はパネ
ルイベント)があったことが判断されると、イベントセ
ット処理が行われる(ステップS22)。一方、イベン
トがなかったことが判断されると、このインタバルタイ
マ割込処理ルーチンからリターンして、元のルーチン
(インタバルタイマ割込処理に入る直前に実行していた
ルーチン)に戻る。
【0165】上記イベントセット処理(ステップS2
2)におけるキーイベントに対する処理は、以下のよう
にして行われる。先ず、発生したキーイベントがキーオ
ンイベントであるかどうかが調べられる。これは、上記
新キーデータと旧キーデータとが相違するビットに対応
する、新キーデータ中のビットが「1」(キーオンを示
す)になっているか否かにより判断される。ここで、キ
ーオンイベントが発生したことが判断されると、キーオ
ンを示すイベントデータをイベント書込バッファに作成
する。
【0166】キーオンを示すイベントデータは、例え
ば、コード「08H」(バイト0)、鍵番号(バイト
1)、鍵タッチ(バイト2)及びチャンネル番号(バイ
ト3)で構成される。鍵番号は押下されたキーの位置を
示すものであり、上記新キーデータ中の変化のあったビ
ット位置を調べることにより作成される。鍵タッチは、
押鍵の速度(強さ)を示すものであり、1つの鍵に設け
られた第1のキースイッチがオンになってから第2のキ
ースイッチがオンになるまでの時間情報から作成され
る。チャンネル番号は、発音に使用するチャンネルをア
サイナで決定することにより作成される。
【0167】このようにしてイベント書込バッファにイ
ベントデータが作成されると、次いで、イベント書込バ
ッファの内容がイベントキューに書き込まれる。即ち、
イベントカウンタで示される位置にイベント書込バッフ
ァの内容が記憶され、その後、イベントカウンタがイン
クリメント(+4)される。
【0168】一方、発生したイベントがキーオンイベン
トでないことが判断されると、キーオフイベントである
かどうかが調べられる。これは、上記新キーデータと旧
キーデータとが相違するビットに対応する、新キーデー
タ中のビットが「0」(キーオフを示す)になっている
か否かにより判断される。ここで、キーオフイベントが
発生したことが判断されると、キーオフを示すイベント
データをイベント書込バッファ上に作成する。
【0169】キーオフを示すイベントデータは、例え
ば、コード「09H」(バイト0)、鍵番号(バイト
1)及びチャンネル(バイト3)の各情報で構成され
る。バイト2は使用されない。鍵番号は離鍵位置を示す
ものであり、上記新キーデータ中の変化のあったビット
位置を調べることにより作成される。チャンネル情報
は、消音すべきチャンネルをオフアサイナで検索するこ
とにより作成される。
【0170】このようにしてイベント書込バッファにイ
ベントデータが作成されると、次いで、イベント書込バ
ッファの内容がイベントキューに書き込まれる。即ち、
イベントカウンタで示される位置にイベント書込バッフ
ァの内容が記憶され、その後、イベントカウンタがイン
クリメント(+4)される。
【0171】上記イベントセット処理(ステップS2
2)におけるパネルイベントに対する処理は、以下のよ
うにして行われる。先ず、発生したパネルイベントが音
色選択スイッチのイベントであるかどうかが調べられ
る。これは、上記新パネルデータと旧パネルデータとが
相違するビットが音色選択スイッチに割り当てられたビ
ットであるかどうかを調べることにより行われる。ここ
で、音色選択スイッチのイベントが発生したことが判断
されると、音色変更を示すイベントデータをイベント書
込バッファに作成する。
【0172】音色変更を示すイベントデータは、例え
ば、コード「0AH」(バイト0)、音色番号(バイト
1)及びチャンネル情報(バイト3)で構成される。バ
イト2は使用されない。音色番号は、音色毎に用意され
た音色データに付された番号を示すものである。チャン
ネル番号は、当該音色が適用されるチャンネルを指示す
る情報である。
【0173】このようにしてイベント書込バッファにイ
ベントデータが作成されると、次いで、イベント書込バ
ッファの内容がイベントキューに書き込まれる。即ち、
イベントカウンタで示される位置にイベント書込バッフ
ァの内容が記憶され、その後、イベントカウンタがイン
クリメント(+4)される。以上のイベントセット処理
が終了するとこのインタバルタイマ割込処理ルーチンか
らリターンして、元のルーチンに戻る。
【0174】なお、上記ではパネルイベントの一例とし
て、音色選択スイッチのイベントを例に挙げて説明した
が、操作パネル14に搭載される音色選択スイッチ以外
のスイッチのイベントに対しても、音色選択スイッチの
イベントと同様にしてイベントデータがイベントキュー
に書き込まれる。
【0175】次に、INT1割込処理について、図16
に示したフローチャートを参照しながら詳細に説明す
る。このINT1割込処理ルーチンは、ボリューム装置
15に搭載されているボリューム操作子、エクスプレッ
ションペダル又はカットオフ周波数操作子が操作される
ことにより発生される割込によって起動されるものであ
る。このINT1割込処理により、ボリューム操作子、
エクスプレッションペダル又はカットオフ周波数操作子
のイベントを検出し、イベントキューにイベントデータ
を書き込む。
【0176】INT1割込処理では、先ず、ボリューム
操作子のイベントであるかどうかが調べられる(ステッ
プS30)。これは、ボリューム装置15から送られて
きた割込信号INT1のうち、ボリューム操作子に対応
する信号(図示しない)がアクティブになっているかど
うかを調べることにより行われる。ここで、ボリューム
操作子のイベントであることが判断されると、ボリュー
ムデータ作成処理が行われる(ステップS31)。
【0177】ボリュームデータ作成処理では、ボリュー
ム操作子が操作されたことを示すイベントデータをイベ
ント書込バッファに作成する。このイベントデータは、
例えば、コード「05H」(バイト0)、ボリュームデ
ータ(バイト1、2)及びチャンネル番号(バイト3)
で構成される。ボリュームデータは、発音すべき楽音の
音量を示すものであり、ボリューム装置15のボリュー
ム操作子から入力された値が用いられる。チャンネル番
号は、音量変更すべきチャンネルを指示する情報であ
る。このボリュームデータ作成処理が終了すると、ステ
ップS36へ分岐し、イベントセット処理が行われる。
このイベントセット処理の詳細については後述する。
【0178】上記ステップS30でボリューム操作子の
イベントでないことが判断されると、次いで、エクスプ
レッションペダルのイベントであるかどうかが調べられ
る(ステップS32)。これは、ボリューム装置15か
ら送られてきた割込信号INT1のうち、エクスプレッ
ションペダルに対応する信号(図示しない)がアクティ
ブになっているかどうかを調べることにより行われる。
ここで、エクスプレッションペダルのイベントであるこ
とが判断されると、エクスプレッションデータ作成処理
が行われる(ステップS33)。
【0179】エクスプレッションデータ作成処理では、
エクスプレッションペダルが操作されたことを示すイベ
ントデータをイベント書込バッファに作成する。このイ
ベントデータは、例えば、コード「06H」(バイト
0)、ペダル位置データ(バイト1)及びチャンネル番
号(バイト3)で構成される。バイト2は使用されな
い。ペダル位置データは、エクスプレッションペダルの
踏み込み量を示すデータであり、ボリューム装置15の
エクスプレッションペダルで検出された値が用いられ
る。チャンネル番号は、当該エクスプレッションデータ
が適用されるチャンネルを指示する情報である。このエ
クスプレッションデータ作成処理が終了すると、ステッ
プS36へ分岐し、イベントセット処理が行われる。こ
のイベントセット処理の詳細については後述する。
【0180】上記ステップS32でエクスプレッション
ペダルのイベントでないことが判断されると、次いで、
カットオフ周波数操作子のイベントであるかどうかが調
べられる(ステップS34)。これは、ボリューム装置
15から送られてきた割込信号INT1のうち、カット
オフ周波数操作子に対応する信号(図示しない)がアク
ティブになっているかどうかを調べることにより行われ
る。ここで、カットオフ周波数操作子に対応する信号が
アクティブになっていることが判断されると、カットオ
フ周波数データ作成処理が行われる(ステップS3
5)。
【0181】カットオフ周波数データ作成処理では、カ
ットオフ周波数操作子が操作されたことを示すイベント
データをイベント書込バッファに作成する。このイベン
トデータは、例えば、コード「07H」(バイト0)、
周波数データ(バイト1、2)及びチャンネル番号(バ
イト3)で構成される。周波数データは、変更すべきカ
ットオフ周波数を示すものであり、例えばボリューム装
置15のカットオフ周波数操作子から入力された値が用
いられる。チャンネル番号は、カットオフ周波数を変更
すべきチャンネルを指示する情報である。
【0182】このカットオフ周波数データ作成処理が終
了すると、次いで、イベントセット処理が行われる(ス
テップS36)。このイベントセット処理では、イベン
ト書込バッファの内容がイベントキューに書き込まれ
る。即ち、イベントカウンタで示される位置にイベント
書込バッファの内容が記憶され、その後、イベントカウ
ンタがインクリメント(+4)される。その後、このI
NT1割込処理ルーチンからリターンして、元のルーチ
ン(INT1割込処理に入る直前に実行していたルーチ
ン)に戻る。上記ステップS34でカットオフ周波数操
作子のイベントでないことが判断された場合も、同様
に、このINT1割込処理ルーチンからリターンして、
元のルーチンに戻る。
【0183】以上のようにしてイベントキューに書き込
まれたイベントデータは、上述したメインルーチンで取
り出されて各イベントに対応するイベント処理が行われ
ることになる。
【0184】なお、上記の実施例では、ボリューム装置
15には、ボリューム操作子、エクスプレッションペダ
ル、カットオフ周波数操作子が設けられている場合につ
いて説明したが、これ以外に、例えば、アタック特性を
切り換えるアタック操作子、リリース特性を切り換える
リリース操作子等が設けられている場合でも、上記と同
様にしてイベントデータを作成するように構成すること
ができる。
【0185】次に、INT0割込処理について、図16
に示したフローチャートを参照しながら詳細に説明す
る。このINT0割込処理ルーチンは、補間回路43
(IP0)、補間回路(IP1)46、エンベロープジ
ェネレータ(EG0)44又はエンベロープジェネレー
タ(EG1)45から発生される割込信号によって起動
されるものである。このINT0割込処理により、補間
回路43(IP0)、補間回路(IP1)46、エンベ
ロープジェネレータ(EG0)44又はエンベロープジ
ェネレータ(EG1)45の動作が終了したことを検出
し、その旨を示すイベントデータをイベントキューに書
き込むようになっている。
【0186】INT0割込処理では、先ず、補間回路
(IP0)43からの割り込みであるかどうかが調べら
れる(ステップS40)。これは、音源17から送られ
てきた割込信号INT0のうち、補間回路(IP0)4
3に対応する信号(図示しない)がアクティブになって
いるかどうかを調べることにより行われる。ここで、補
間回路(IP0)43からの割り込みであることが判断
されると、IP0イベントデータ作成処理が行われる
(ステップS41)。
【0187】このIP0イベントデータ作成処理では、
補間回路(IP0)43の補間処理が終了したイベント
であることを示すイベントデータをイベント書込バッフ
ァに作成する。このイベントデータは、例えば、コード
「01H」(バイト0)及びチャンネル番号(バイト
3)で構成される。バイト1及びバイト2は使用されな
い。チャンネル番号は、カットオフ周波数値COFの補
間処理が終了したチャンネルを指示する情報である。こ
のイベントデータ作成処理が終了すると、ステップS4
8へ分岐し、イベントセット処理が行われる。このイベ
ントセット処理の詳細については後述する。
【0188】上記ステップS40で、補間回路(IP
0)43からの割り込みでないことが判断されると、次
に、補間回路(IP1)46からの割り込みであるかど
うかが調べられる(ステップS42)。これは、音源1
7から送られてきた割込信号INT0のうち、補間回路
(IP1)46に対応する信号(図示しない)がアクテ
ィブになっているかどうかを調べることにより行われ
る。ここで、補間回路(IP1)46からの割り込みで
あることが判断されると、IP1イベントデータ作成処
理が行われる(ステップS43)。
【0189】このIP1イベントデータ作成処理では、
補間回路(IP1)46の補間処理が終了したイベント
であることを示すイベントデータをイベント書込バッフ
ァに作成する。このイベントデータは、例えば、コード
「02H」(バイト0)及びチャンネル番号(バイト
3)で構成される。バイト1及びバイト2は使用されな
い。チャンネル番号は、ラウドネス値LOUの補間処理
が終了したチャンネルを指示する情報である。このIP
1イベントデータ作成処理が終了すると、ステップS4
8へ分岐し、イベントセット処理が行われる。このイベ
ントセット処理の詳細については後述する。
【0190】上記ステップS42で、補間回路(IP
1)46からの割り込みでないことが判断されると、次
に、エンベロープジェネレータ(EG0)44からの割
り込みであるかどうかが調べられる(ステップS4
4)。これは、音源17から送られてきた割込信号IN
T0のうち、エンベロープジェネレータ(EG0)44
に対応する信号(図示しない)がアクティブになってい
るかどうかを調べることにより行われる。ここで、エン
ベロープジェネレータ(EG0)44からの割り込みで
あることが判断されると、EG0イベントデータ作成処
理が行われる(ステップS45)。
【0191】このEG0イベントデータ作成処理では、
エンベロープジェネレータ(EG0)44のエンベロー
プデータ生成処理が終了したイベントであることを示す
イベントデータをイベント書込バッファに作成する。こ
のイベントデータは、例えば、コード「03H」(バイ
ト0)、アドレス(バイト1、2)及びチャンネル番号
(バイト3)で構成される。アドレスは、次のエンベロ
ープデータが格納されているROM11のアドレスであ
る。チャンネル番号は、カットオフ周波数値COFのエ
ンベロープデータ生成処理が終了したチャンネルを指示
する情報である。このEG0イベントデータ作成処理が
終了すると、ステップS48へ分岐し、イベントセット
処理が行われる。このイベントセット処理の詳細につい
ては後述する。
【0192】上記ステップS44で、エンベロープジェ
ネレータ(EG0)44からの割り込みでないことが判
断されると、次に、エンベロープジェネレータ46(E
G1)からの割り込みであるかどうかが調べられる(ス
テップS46)。これは、音源17から送られてきた割
込信号INT0のうち、エンベロープジェネレータ46
(EG1)に対応する信号(図示しない)がアクティブ
になっているかどうかを調べることにより行われる。こ
こで、エンベロープジェネレータ46(EG1)からの
割り込みであることが判断されると、EG1イベントデ
ータ作成処理が行われる(ステップS47)。
【0193】このEG1イベントデータ作成処理では、
エンベロープジェネレータ46(EG1)のエンベロー
プデータ生成処理が終了したイベントであることを示す
イベントデータをイベント書込バッファに作成する。こ
のイベントデータは、例えば、コード「04H」(バイ
ト0)、アドレス(バイト1、2)及びチャンネル番号
(バイト3)で構成される。アドレスは、次のエンベロ
ープデータが格納されているROM11のアドレスであ
る。チャンネル番号は、ラウドネス値LOUのエンベロ
ープデータ生成処理が終了したチャンネルを指示する情
報である。このイベントデータ作成処理が終了すると、
ステップS48へ進み、イベントセット処理が行われ
る。
【0194】このイベントセット処理では、イベント書
込バッファの内容がイベントキューに書き込まれる。即
ち、イベントカウンタで示される位置にイベント書込バ
ッファの内容が記憶され、その後、イベントカウンタが
インクリメント(+4)される。その後、このINT0
割込処理ルーチンからリターンして、元のルーチン(I
NT0割込処理に入る直前に実行していたルーチン)に
戻る。上記ステップS46で、エンベロープジェネレー
タ(EG0)44からの割り込みでないことが判断され
た場合も、同様に、このINT0割込処理ルーチンから
リターンして、元のルーチンに戻る。
【0195】以上のようにしてイベントキューに書き込
まれたイベントデータは、上述したメインルーチンで取
り出されて各イベントに対応するイベント処理が行われ
ることになる。
【0196】次に、メインルーチンのステップS14で
行うイベント処理の詳細につき、図18に示したフロー
チャートを参照しながら説明する。
【0197】イベント処理ルーチンでは、イベントキュ
ーから取り出されたイベントデータのバイト0を調べる
ことにより、イベントデータの種類を認識し、各イベン
トに対応する処理が実行される。
【0198】即ち、先ず、イベントキューから取り出さ
れたイベントデータがキーオンを示しているかどうかが
調べられる(ステップS50)。ここで、キーオンのイ
ベントデータであることが判断されるとキーオン処理が
行われる(ステップS51)。
【0199】キーオン処理では、先ず、波形アドレスが
生成される。即ち、その時点で音色データアドレスバッ
ファ(RAM12に設けられている)にセットされてい
るアドレスで指定されるROM11の音色データの中か
ら、その音色に対応する波形データが記憶されている波
形メモリのSTA、LTA及びLEAが生成される。次
いで、イベントデータ中の鍵番号に基づいて周波数デー
タが生成される。この波形アドレス及び周波数データは
デジタル制御発振器40にセットされる。
【0200】また、上記音色データの中からデジタル制
御増幅器42用のパラメータセットPRS1を取り込
み、エンベロープジェネレータ47にセットする。同様
に、上記音色データの中からデジタル制御フィルタ41
用のパラメータセットPRS0を取り込み、エンベロー
プジェネレータ44にセットする。
【0201】以上の処理が終了すると、このイベント処
理ルーチンからリターンしてメインルーチンに戻る。こ
れにより、音源17では、設定された各データに基づき
デジタル楽音信号が生成されることになる。
【0202】上記ステップS50で、キーオンのイベン
トデータでないことが判断されると、次いで、イベント
キューから取り出されたイベントデータがキーオフを示
しているかどうかが調べられる(ステップS52)。こ
こで、キーオフのイベントデータであることが判断され
るとキーオフ処理が行われる(ステップS53)。
【0203】キーオフ処理では、先ず、その時点で音色
データアドレスバッファにセットされているアドレスで
指定されるROM11の音色データの中から、デジタル
制御増幅器42用のパラメータセットPRS1を取り込
み、エンベロープジェネレータ47にセットする。同様
に、音色データの中からデジタル制御フィルタ41用の
パラメータセットPRS0を取り込み、エンベロープジ
ェネレータ44にセットする。
【0204】以上の処理が終了すると、このイベント処
理ルーチンからリターンしてメインルーチンに戻る。こ
れにより、音源17では、設定された各データに基づき
デジタル楽音信号の消音が行われることになる。
【0205】上記ステップS52で、キーオフのイベン
トデータでないことが判断されると、次いで、イベント
キューから取り出されたイベントデータが音色変更を示
しているかどうかが調べられる(ステップS54)。こ
こで、音色変更のイベントデータであることが判断され
ると音色変更処理が行われる(ステップS55)。
【0206】音色変更処理では、操作パネル14の操作
された音色選択スイッチに対応する音色データが記憶さ
れたROM11の先頭アドレスを、RAM12に設けら
れた音色データアドレスバッファにセットする処理が行
われる。その後、このイベント処理ルーチンからリター
ンしてメインルーチンに戻る。これにより、音源17で
は、上述したようにキーオン処理においてこの音色デー
タアドレスバッファにセットされたアドレスに基づき波
形アドレスが生成され、選択された音色のデジタル楽音
信号が生成されることになる。
【0207】上記ステップS54で、音色変更のイベン
トデータでないことが判断されると、次いで、イベント
キューから取り出されたイベントデータがボリューム変
更を示しているかどうかが調べられる(ステップS5
6)。ここで、ボリューム変更のイベントデータである
ことが判断されるとボリューム変更処理が行われる(ス
テップS57)。
【0208】ボリューム変更処理では、ボリューム装置
15のボリューム操作子から取り込んだボリューム値を
RAM12に設けられたボリュームバッファに格納す
る。そして、RAM12に設けられたエクスプレッショ
ンバッファに記憶されたエクスプレッション値を読み出
し、このエクスプレッション値と上記ボリューム値と乗
算して音源17の補間回路46にラウドネス値LOUと
して送出する。
【0209】以上の処理が終了すると、このイベント処
理ルーチンからリターンしてメインルーチンに戻る。こ
れにより、音源17の補間回路46で補間が開始され、
ボリューム装置15のボリューム操作子で設定されたボ
リュームでのデジタル楽音信号の発生が開始される。
【0210】上記ステップS56で、ボリューム変更の
イベントデータでないことが判断されると、次いで、イ
ベントキューから取り出されたイベントデータがエクス
プレッション変更を示しているかどうかが調べられる
(ステップS58)。ここで、エクスプレッション変更
のイベントデータであることが判断されるとエクスプレ
ッション変更処理が行われる(ステップS59)。
【0211】エクスプレッション変更処理では、ボリュ
ーム装置15のエクスプレッションペダルから取り込ん
だエクスプレッション値をRAM12に設けられたエク
スプレッションバッファに格納する。そして、RAM1
2に設けられたボリュームバッファに記憶されたボリュ
ーム値を読み出し、このボリューム値と上記エクスプレ
ッション値と乗算して音源17の補間回路46にラウド
ネス値LOUとして送出する。
【0212】以上の処理が終了すると、このイベント処
理ルーチンからリターンしてメインルーチンに戻る。こ
れにより、音源17の補間回路46で補間が開始され、
エクスプレッションペダルで設定されたボリュームでの
デジタル楽音信号の発生が開始される。
【0213】上記ステップS58で、エクスプレッショ
ン変更のイベントデータでないことが判断されると、次
いで、イベントキューから取り出されたイベントデータ
がカットオフ周波数変更を示しているかどうかが調べら
れる(ステップS60)。ここで、カットオフ周波数変
更のイベントデータであることが判断されるとカットオ
フ周波数変更処理が行われる(ステップS61)。
【0214】カットオフ周波数変更処理では、ボリュー
ム装置15のカットオフ周波数操作子から取り込んだデ
ータを音源17の補間回路43にカットオフ周波数値C
OFとして送出する。これにより、カットオフ周波数が
変更されたデジタル楽音信号の発生が開始される。
【0215】以上の処理が終了すると、このイベント処
理ルーチンからリターンしてメインルーチンに戻る。上
記ステップS60で、カットオフ周波数変更のイベント
データでないことが判断されると、このイベント処理ル
ーチンからリターンしてメインルーチンに戻る。
【0216】なお、図18に示したイベント処理ルーチ
ンでは、音源17の補間回路43、46及びエンベロー
プジェネレータ44、47のイベントに対する処理は省
略してある。補間回路43、46のイベントに対して
は、実際には何も行われない。また、エンベロープジェ
ネレータ44、47のイベントに対しては、次のフェー
ズのエンベロープデータを音色データから取り出して音
源17に送る処理が行われる。
【0217】なお、以上説明した実施例では、音源17
は、主にモノフォニックの音源として構成した場合につ
いて説明したが、上記構成に若干の変更を加えることに
より、複数同時発音可能なポリフォニック音源として構
成することもできる。
【0218】この場合、アキュムレータ50のラッチ6
0、61、64及び68、オフセッタ51のラッチ71
及び73、関数生成回路52のラッチ86、87及び8
8、並びに、デジタル制御フィルタ41のラッチ90、
91、92、93、104、105及び109を、例え
ば16ビット×16ワードのRAMに置き換える。そし
て、これらRAMにクロックジェネレータ24から出力
されるアドレス信号IRA0〜IRA3を供給する。
【0219】そして、デジタル制御増幅器42から出力
されるデジタル楽音信号SIG3を、例えば図20に示
したように構成される合成回路で累積加算することによ
り合成し、デジタル楽音信号SIG3’としてD/A変
換器18に供給する。
【0220】合成回路は、NORゲート200、AND
ゲート201、ラッチ202及び加算器203で構成さ
れている。NORゲート200には、上記アドレス信号
IRA0〜IRA3が供給されている。従って、このN
ORゲート200からは、アドレス信号IRA0〜IR
A3の全てがLレベルのとき、即ち、第1番目のタイム
スロットのときにのみHレベルの信号が出力される。こ
のNORゲート200の出力は、ANDゲート201の
一方の入力端子に供給される。
【0221】ANDゲート201の他方の入力端子には
クロック信号CK2が供給されている。従って、このA
NDゲート201からは、第1番目のタイムスロットの
時にのみ、クロック信号CK2と同位相の信号が出力さ
れてラッチ202のクリア入力端子に供給される。従っ
て、ラッチ202は、第1番目のタイムスロットの略中
央付近でクリアされることになる。
【0222】加算器203は、デジタル制御増幅器42
から出力されるデジタル楽音信号SIG3とラッチ20
2の出力とを加算してラッチ202に供給する。そし
て、ラッチ202では、クロック信号CK1の立ち下が
りに同期して上記加算器203の信号をラッチする。そ
して、このラッチ203にラッチされたデータは加算器
203に供給される。これらラッチ202と加算器20
3とにより累算器が構成されている。
【0223】この合成回路によれば、第1番目のタイム
スロットから第16番目のタイムスロットまでのデジタ
ル楽音信号SIG3を累積加算し、デジタル楽音信号S
IG3’として出力することができる。
【0224】かかる構成によれば、順次インクリメント
されるアドレス信号IRA0〜IRA3によって形成さ
れる16個の各タイムスロットでそれぞれ1つの楽音に
対応する発音を行うことができ、全部で16個の同時発
音が可能となる。
【0225】なお、上記実施例では、補間又はエンベロ
ープ生成機能を汎用制御回路というハードウエアで構成
した場合について説明したが、汎用制御回路で実現して
いる機能と同等の機能をソフトウエアで構成することも
できる。
【0226】
【発明の効果】以上詳述したように、この発明によれば
構成を共通化することにより設計の手間が省けると共
に、時分割多重化に容易に対応できるようにしてハード
ウエアの量を削減することができる電子楽器の音源装置
を提供することができる。
【図面の簡単な説明】
【図1】本発明に係る電子楽器の実施例の概略構成を示
すブロック図である。
【図2】本発明の実施例で使用するクロック信号の位相
関係を示す図である。
【図3】本発明の実施例のボリューム装置(VOL)の
詳細な構成を示す回路図である。
【図4】本発明の実施例の音源(SPU)の詳細な構成
を示すブロック図である。
【図5】本発明の実施例の補間回路及びエンベロープジ
ェネレータとして共通に使用される汎用制御回路の構成
を示すブロック図である。
【図6】図5に示した汎用制御回路のアキュムレータ
(ACC)の詳細な構成を示すブロック図である。
【図7】図5に示した汎用制御回路のオフセッタ(OF
S)の詳細な構成を示すブロック図である。
【図8】図5に示した汎用制御回路の関数生成回路(F
CG)の詳細な構成を示すブロック図である。
【図9】本発明の実施例のデジタル制御フィルタ(DC
F)の構成(フィルタ部)を示すブロック図である。
【図10】本発明の実施例のデジタル制御フィルタ(D
CF)の構成(係数発生部)を示すブロック図である。
【図11】本発明の実施例のデジタル制御増幅器の詳細
な構成を示す図である。
【図12】本発明の実施例のクロックジェネレータの詳
細な構成を示す回路図である。
【図13】本発明の実施例のアキュムレータの動作を説
明するための図である。
【図14】本発明の実施例の動作(メインルーチン)を
説明するための図である。
【図15】本発明の実施例の動作(インタバルタイマ割
込処理)を説明するための図である。
【図16】本発明の実施例の動作(INT1割込処理)
を説明するための図である。
【図17】本発明の実施例の動作(INT0割込処理)
を説明するための図である。
【図18】本発明の実施例の動作(イベント処理)を説
明するための図である。
【図19】本発明の実施例で使用するイベントデータの
形式及びその種類を説明するための図である。
【図20】本発明の他の実施例で使用される合成回路の
回路図である。
【符号の説明】
10 CPU 11 ROM 12 RAM 13 キーボード 14 操作パネル 15 ボリューム装置 17 音源 40 デジタル制御発振器 41 デジタル制御フィルタ 42 デジタル制御増幅器 43、46 補間回路 44、47 エンベロープ 45 加算器 48 乗算器

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 楽音特性を決定するデータを入力する操
    作子と、 該操作子から入力されたデータを補間して出力する補間
    手段と、 楽音特性を制御するためのエンベロープデータを生成す
    るエンベロープジェネレータとを備え、前記補間手段で
    補間されたデータと前記エンベロープジェネレータで生
    成されたエンベロープデータとを演算して生成された新
    たなエンベロープデータに応じて楽音信号を変更するこ
    とにより所定の楽音特性を有する楽音信号を生成する電
    子楽器の音源装置であって、 前記補間手段と前記エンベロープジェネレータとは同一
    の構成であることを特徴とする電子楽器の音源装置。
  2. 【請求項2】 入力された楽音信号に所定のフィルタ処
    理を施して出力するデジタル制御フィルタを備えた電子
    楽器の音源装置において、 カットオフ周波数データを入力する操作子と、 該操作子で入力されたカットオフ周波数データを補間し
    て出力する補間手段と、 押鍵に応じて変化するカットオフ周波数のエンベロープ
    データを生成するエンベロープジェネレータとを備え、
    前記補間手段で補間されたデータと前記エンベロープジ
    ェネレータで生成されたエンベロープデータとを演算し
    て生成された新たなエンベロープデータを前記デジタル
    制御フィルタに与えることにより、前記入力された楽音
    信号のカットオフ周波数が変更された楽音信号を生成す
    る電子楽器の音源装置であって、 前記補間手段と前記エンベロープジェネレータとは同一
    の構成であることを特徴とする電子楽器の音源装置。
  3. 【請求項3】 入力された楽音信号を所定の増幅率で増
    幅して出力するデジタル制御増幅器を備えた電子楽器の
    音源装置において、 音量データを入力する操作子と、 該操作子で入力された音量データを補間して出力する補
    間手段と、 押鍵に応じて変化する音量のエンベロープデータを生成
    するエンベロープジェネレータとを備え、前記補間手段
    で補間されたデータと前記エンベロープジェネレータで
    生成されたエンベロープデータとを演算して生成された
    新たなエンベロープデータを前記デジタル制御増幅器に
    与えることにより、前記入力された楽音信号の振幅が変
    更された楽音信号を生成する電子楽器の音源装置であっ
    て、 前記補間手段と前記エンベロープジェネレータとは同一
    の構成であることを特徴とする電子楽器の音源装置。
JP6112038A 1994-04-27 1994-04-27 電子楽器の音源装置 Pending JPH07295572A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6112038A JPH07295572A (ja) 1994-04-27 1994-04-27 電子楽器の音源装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6112038A JPH07295572A (ja) 1994-04-27 1994-04-27 電子楽器の音源装置

Publications (1)

Publication Number Publication Date
JPH07295572A true JPH07295572A (ja) 1995-11-10

Family

ID=14576463

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6112038A Pending JPH07295572A (ja) 1994-04-27 1994-04-27 電子楽器の音源装置

Country Status (1)

Country Link
JP (1) JPH07295572A (ja)

Similar Documents

Publication Publication Date Title
US4875400A (en) Electronic musical instrument with touch response function
JPH09114462A (ja) 楽音発生方法
JP2722795B2 (ja) 楽音合成装置
JPS6113758B2 (ja)
JPH0782340B2 (ja) 楽音波形信号発生装置
JPS5925235B2 (ja) 電子楽器
JPH07295572A (ja) 電子楽器の音源装置
JPH07295569A (ja) 電子楽器の補間装置
JP2950461B2 (ja) 楽音発生装置
JPH07295565A (ja) 電子楽器の演奏データ補間装置
JP2537340B2 (ja) 楽音発生装置
JPH04116598A (ja) 楽音信号生成装置
JP2970438B2 (ja) 波形メモリ型楽音発生装置
JPH05249954A (ja) 効果付与装置
JPH0643863A (ja) エフェクタ
JP3095323B2 (ja) 電子楽器
JPH0320797A (ja) サンプリング装置
JPS5827519B2 (ja) デンシガツキ
JP3029056B2 (ja) 電子楽器
JPS6352399B2 (ja)
JP3288500B2 (ja) 電子楽器の楽音発生装置
JP3353516B2 (ja) 楽音合成装置
JP3245411B2 (ja) 電子楽器
JP2897680B2 (ja) 楽音信号発生装置
JPH02179693A (ja) 処理装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000207