JPH033239B2 - - Google Patents
Info
- Publication number
- JPH033239B2 JPH033239B2 JP57083449A JP8344982A JPH033239B2 JP H033239 B2 JPH033239 B2 JP H033239B2 JP 57083449 A JP57083449 A JP 57083449A JP 8344982 A JP8344982 A JP 8344982A JP H033239 B2 JPH033239 B2 JP H033239B2
- Authority
- JP
- Japan
- Prior art keywords
- cent
- address
- harmonic
- frequency
- data
- 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.)
- Expired - Lifetime
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
本発明は、電子楽器に適した、周波数を表現す
るためのデータを発生する周波数制御装置に関
し、特にデイジタル方式で周波数を制御するよう
にしたものである。 従来、デイジタル方式を用いた楽音発生装置に
は種々の提案がなされている。これらの中で、正
弦波や楽音の一波形のデイジタルデータをメモリ
に記憶しておき、これを順次繰返して読み出して
連続的な楽音波形とし、これに、エンベロープ信
号に相当するエンベロープデータを掛け算して、
その振幅値を変化させることにより、音の立上り
から立下りまでの楽音信号を形成するようにした
ものがある。発生する波形の周波数を変更するに
は、デイジタルデータの各サンプルを順次連続的
に読み出さずに、所定のサンプル数だけ飛び越し
て読み出せばよい。飛越数をJとすると、Jに正
比例して周波数を設定できる。このような信号の
発生方法の手順については1969年にTHE M.I.T.
PRESSより出版された書物「The Technology
of Computer Music」の第134頁〜138頁に記述
されている。また、雑誌IEEE Trans.on Audio
and Electroacoustics,19巻、No.1,48−58,
1971の文献A Digital Frequeney Synthesizer」
には、具体的な構成が示されている。これらの公
知例にもとづいてさらに具体的かつ実際的な方式
として、特開昭58−65493号公報に記載のものが
ある。 これらの楽音合成方式に対しては、飛越数Jを
発生して供給する必要がある。本発明は、飛越数
Jを発生し供給する方法に関するもので、とくに
種々の周波数を効率的に発生させるように工夫し
たものである。 つぎに本発明の方式と従来例との関連について
述べる。 従来、ミユージツクシンセサイザでは、鍵盤の
各鍵に対応する鍵電圧VKを発生させ、これに周
波数を設定する電圧VF、ビブラート電圧VVを重
畳してV1=(VK+VF+VV)を得、指数変換器を
通してV0=K1exp(VK+VF+VV)を得、電圧V0
によつて、電圧制御発振器(VCO)の発振周波
数を決定する。電圧VFが0Vのときは、鍵電圧
VKによつて決まる周波数、すなわち、楽音の音
階に対応する(C3であれば261.625Hz)周波数が
発生する。通常鍵電圧VKは、オクターブ当り1V
が標準とされている。電圧VFとして1Vを加える
と、1オクターブ上昇して513.25Hzが発生する。
これは、C4に当ると同時に、C3の第2高調波に
も当る。電圧VFとして1V以外の電圧を与える
と、第3,第4など任意の高調波成分が得られ
る。ビブラート電圧VVは、上記各周波数を中心
に上下に周波数変調させるものであるが、ここで
重要なことは、VKやVFが種々の値をとつても周
波数の変動の割合い、すなわち、ピツチの変動
は、VVが一定なら、一定に保たれる点である。
このような方式をデイジタル演算におきかえたも
のとして特開昭54−81824が知られている。しか
しながら、このような従来のものでは、アナログ
回路で作るために不安定であつたり、デイジタル
演算の演算器が、高精度かつ多数必要とするなど
の欠点があつた。 また、特開昭56−74298号公報公報に示すよう
に、デイジタル処理方式において、周波数情報を
セント尺度上で扱うものがあるが、非高調波成分
を扱うことができないものであつた。 本発明は、周波数制御値に比例する周波数を発
生する楽音波形発生方法または装置に対応して、
周波数制御値を演算する装置に関するもので、特
に、基音の周波数の非整数次倍音の高調波を持つ
楽音を発生させるための周波数制御値を得ること
が出来るものである。この為に、基音の音高周波
数、正高調波周波数をセント数により定義し、更
に、非整数次倍の高調波と正高調波との差セント
数を新たに導入することにより、非高調波の表現
を柔軟に行なえるようにしたものである。 また、次の目的として、音階の12平均率の基本
原則に着目して、セントアドレスの中位の桁を特
別の扱いにすることにより、合理的な演算を行な
えるようにしたものである 本発明は上記目的を達するため、基音および高
調波からなる発生すべき楽音の基音の音高周波数
に対応する音高情報、上記楽音の高調波次数に関
する正高調波情報、上記高調波周波数が基音の周
波数の整数倍から偏移する量を表す非高調波情報
を入力とし、少なくとも1オクターブ区間を等間
隔の所定のセント間隔を持つ複数の区間に分け、
上記区間の境界に対してセント尺度上のアドレス
を割り付け、上記音高情報をセントアドレスの形
式で与え、上記正高調波周波数情報を音高情報か
らの差の形のセントアドレスとして出力させ、上
記非高調波情報を上記偏移に対応した非高調波差
セントアドレスの形で与え、上記音高情報のセン
トアドレス、上記正高調波周波数情報に対応する
差セントアドレス、および上記非高調波差セント
アドレスを加算して和セントアドレスを得、和セ
ントアドレスを周波数に正比例する周波数制御値
に変換する変換器に加えて周波数制御値を得るよ
うにするものであつて、上記音高情報、正高調波
数情報、非高調波情報を格納する格納手段と、上
記格納手段に結合された情報伝達用の少なくとも
1本のバスラインと、上記バスラインに接続され
た演算器と、その演算結果を格納する格納手段
と、演算結果を上記バスラインに出力する装置
と、上記変換器とを備えた構成となつている。 第1図は、本発明の周波数制御装置を採用した
電子楽器のブロツク図である。1は鍵盤部、2は
音色タブレツトスイツチやビブラート効果のオン
オフスイツチ、ビブラート効果の深さを設定する
ボリユームなどにより構成される操作部、3は中
央処理装置(CPU)で、コンピユータなどに用
いられているものと同様のもの、4は読み書き可
能な記憶装置(ランダムアクセスメモリ、通常
RAMと呼ぶ)、5はCPU3の動作を決定するプ
ログラムが格納された読み出し専用記憶装置(リ
ードオンリーメモリ、通常RMと呼ぶ)、6は、
音色の合成するためのパラメータのうちエンベロ
ープパラメータを記憶しているROM、7は音色
の合成を行なうためのパラメータのうち周波数に
関するデータを記憶しているROMである。8は
本発明の周波数制御装置、9は先に引用した正弦
波発生器、10はエンベロープデータ発生器、1
1は、正弦波とエンベロープデータを掛け合わせ
る掛算器、12は時分割多重化されている掛算結
果のうち、所定のものを加え合わせたり、時分割
多重の順序と入れかえるタイムスロツト制御装
置、13は時分割多重化された位相変調器、14
はデイジタルアナログ変換器、15,16は電気
音響変換器である。 鍵盤部1、操作部2、CPU3、RAM4、
ROM5、ROM7、周波数制御装置8、エンベ
ロープデータ発生器10は、データバス、アドレ
スバスおよびコントロール線で結合されている。
このようにデータバスとアドレスバスとコントロ
ール線とで結合する方法そのものは、ミニコンピ
ユータやマイクロコンピユータを中心とした構成
方法として公知のものである。データバスとして
は8〜16本位用いられ、このバス線上をデータが
一方向でなく多方向に時分割的に送受信される。
アドレスバスも複数本たとえば16本用意され、通
常はCPU3がアドレスコードを出力し、他の部
分がアドレスコードを受け取る。コントロール線
は、通常、メモリ・リクエスト線()、
I/リクエスト線(IRQ)、リード線
()、ライト線()などが用いられる。 は、メモリを読み書きすることを示し、
IRQは入出力装置(I/)の内容を取り出
しすることを示し、はメモリやI/からデ
ータを読み出すタイミングを示し、はメモリ
やI/にデータを書き込むタイミングを示す。
このようなコントロール線を用いたものとして
は、ザイログ社のマイクロプロセツサZ80があげ
られる。 つぎに第1図の電子楽器の動作について述べ
る。鍵盤部1は、複数の鍵スイツチを複数の群に
分けて、群内の鍵スイツチのN−FF状態を
一括してデータバスに送ることができるように構
成される。たとえば、5オクターブの鍵盤の場合
61鍵を6鍵(半オクターブ)ずつの10群と1鍵の
みの1群の11群に分け、各群にアドレスコードを
1つずつ割りつける。アドレスラインに、上記各
群のうちの1つを示すアドレスコードが到来し、
IRQとが印加されると、鍵盤部1はその
アドレスコードを解読して対応する群内のキース
イツチのN−FFを示す6ビツトまたは1ビ
ツトのデータをデータバスに出力する。これら
は、デコーダ、バスドライバおよび若干のゲート
回路を用いて構成することができる。操作部2の
うち、タブレツトスイツチについては、鍵盤部1
と同様の構成をとることができる。ボリユームの
設定状態については、ボリユームの出力する電圧
をアナログデイジタル変換器によりデイジタルコ
ードに変換し、これを、アドレスコードとコント
ロール線IRQとにより読み出すようにす
る。 CPU3はその内部にあるプログラムカウンタ
のコードに対応するRM5のアドレスから命令
コードを読み取り、これを解読して、算術演算、
論理演算データの読み込みと書き込み、プログラ
ムカウンタの内容の変更による命令のジヤンプな
どの作業を行なう。これらの作業の手順はRM
5に書き込まれている。まずCPU3はROM5よ
り鍵盤部1のデータを取り込むための命令を読み
取り鍵盤部1の各鍵のN−FFを示すコード
を各群ごとに取り込んで行く。そして、押鍵され
ている鍵コードを、楽音発生部の有限のチヤンネ
ルに割り当ててゆく。 つぎにCPU3は、操作部2よりデータを取り
込むための一群の命令を順次RM5から読み取
り、これらを解読して、操作部2に対応するアド
レスコードとコントロール信号IRQとを
出力し、データバスに操作部2のスイツチやボリ
ユームの状態を表現するコードを出力させ、
CPU3内に読み込む。そして、どの音色の楽音
信号を合成すべきかをCPU3は知る。 以上で、楽音発生部のどのチヤンネルにどの周
波数をもつたどの音色を発生させるべきかが明確
になつたので、CPU3は、各音色の周波数に関
するデータを記憶しているROM7より、所望の
音色の周波数パラメータを格納してあるアドレス
コードとコントロール信号ととを出力
して、データバスに所望の周波数パラメータを読
み出してCPU3内に取り込み、周波数制御装置
8に書き込む。書き込むためには、周波数制御装
置8の内部に設けられたデータレジスタに対応す
るアドレスコードをCPU3が出力し、同時にI
ORQととを出力すると、信号の立上り
時にデータバス上に出力されている周波数パラメ
ータを表わすデータが上記データレジスタに書き
込まれる。 つぎに、出力すべき音色の内容を表わす音色パ
ラメータをRM6より読み出し、エンベロープ
発生器10の内部のレジスタに書き込む。つぎに
周波数制御装置8とエンベロープ発生器10の両
方に、発音出力指令を与えると、周波数制御装置
8は、飛越数Jを正弦波発生器9に与え、エンベ
ロープ発生器10はエンベロープデータを発生す
る。正弦波発生器9の出力する正弦波データとエ
ンベロープデータは掛算されて、エンベロープが
正弦波に付与される。正弦波データとエンベロー
プデータとはそれぞれ時分割多重化されて発生す
る。時分割多重は、例えば、160多重とし、1チ
ヤンネル当り20の正弦波を割り当て、8チヤンネ
ル設けることによる。通常は、20本の正弦波の合
成により、ひとつの楽音を合成することになる。
したがつて、フーリエ級数の式で知られるとお
り、20の正弦波データを加算することになる。
このためのタイムスロツト間のデータ加算を、タ
イムスロツト変換器12で実施する。タイムスロ
ツト変換器は、160のタイムスロツトで時分割多
重されて入力される、エンベロープデータで変調
された正弦波データ列のうち、所定のデータを加
算しタイムスロツトの数を減らしたり、あるい
は、特開昭58−103244号公報に記載の時分割多重
変換装置のようにタイムスロツチの交換を行なう
ものである。時分割多重位相変換器13は、特開
昭58−83894号公報に記載の「デイジタル楽音変
調装置」のように、時分割多重で複数種の変調を
同時に実施するものである。時分割多重位相変調
装置13の出力はアナログデイジタル変換器14
によりアナログ信号に直されて、電気音響変換器
15,16より出力される。 第1図では図示を省いたが、タイムスロツト変
換器12や時分割多重位相変調装置13に対して
も、アドレスバス、データバス、コントロール線
を介してCPU3と結合して、操作部2によつて
行なわれる音色や変調効果の設定に対応して、タ
イムスロツトの変換や変調条件を変えて設定する
ようにすることができる。 本発明の周波数制御は、まず、各鍵のノートオ
クターブ、各高調波の周波数などを、セント尺度
上に配置して処理する。出力すべき楽音の基本波
のノートやオクターブの位置、基本波を基準とし
た高調波の位置、非高調波の相対的なずれなどを
セント単位で表現し、セント尺度上でのセントア
ドレスの加減算を行なつて、実際の周波数成分の
セント値に対するセントアドレスを求め、これを
指数変換する。システムをデイジタル化し、か
つ、多数のスペクトルに対する飛越数Jを求める
ために、セント尺度上で1オクターブを量子化し
て扱い、かつ、時分割多重で演算処理を行なうよ
うに考慮している。また、演算されたJが、正弦
波発生器9に適切に転送されるようにタイミング
を考えている。 本発明は、第1図の如き電子楽器の一部分とし
て、CPU3より供給される周波数パラメータを
受け入れて、正弦波発生器9に対し飛越数Jを供
給する機能を実現する、周波数制御装置8に関す
るものである。その1実施例を第2図に示す。 第2図の周波数制御装置は、データバスDB、
アドレスバスADR、コントロール線IRQと
WRとチツプセレクト線CSとにより、CPU3と
結合して、周波数パラメータを受け取り、マイコ
ンインタフエース回路(MIF)25でアドレス
バスADRのコードを解読して、内部のレジスタ
群に書き込み、内部に設けた飛越数Jを計算する
機構を介して、必要な複数個のJiを計算させ、バ
ツフアメモリ29、オクターブシフタ30を介し
て、正弦波発生器9に供給する。 まず、構成要素について説明する。21は、タ
イムミングパルスを供給するプログラムカウンタ
(PC)、22はタイミングパルスから論理をとつ
て必要なアドレスコードをつくつたり、コントロ
ール用のフラグ(FLG)信号を受けとつて制御
信号をつくり出すタイミングパルス発生器
(TPG)、23は、タイミングパルスや制御信号
により読み出され、後述する算術演算や論理演算
の内容と手順とを記憶しているシーケンサ
(SEQ)でRMから成るもの、24はシーケン
サの内容を解読して、アドレスコード、出力指令
信号(OC1〜12)、書込指令信号(0〜
3)、演算指令信号(Pコード)などを出力す
る命令解読器である。25はマイコンインタフエ
ース回路(MIF)で先に説明したものである。
26は演算装置(ALU)で、加算、減算、比較
を、2つの入力であるAバスとBバスの間で行な
い、Cバスに演算結果を出力し、演算結果のうち
の符号、上位ビツトなどをFLGとして出力する。
FLGはTPG22に供給される。 27はワーキングレジスタ(WREG)で
WREG1とWREG2の2ワードのメモリで構成
され、Cバスより入力を受け入れ、Bバスに出力
を供給する。AD2が2ワードのどちらかを選択
し1の立上りで書き込み、C8が“H”の
とき出力を供給する。28は160ワード×15ビツ
トより成るRAMで、Cバスより入力を受け取り
Dバスに出力を供給する。160ワードは20ワード
ずつ8チヤンネルに分けられており、20ワード内
の任意の1ワードを5ビツトのアドレスコード
AD1で指定し、8チヤンネルのうちの任意の1
チヤンネルを3ビツトのアドレスコードAD4で
選択し、2の立上り時にCバス上のデータを
書き込む。出力はDバスに出たままである。ただ
し、出力の上位5ビツトはバツフアメモリ29に
供給される。バツフアメモリ29は160ワード×
17ビツトのRAMで、CバスのデータとRAM2
8の上位5ビツトを入力として受け入れる。160
ワードは20ワードずつ8チヤンネルに分けられて
おり、20ワード内の1ワードをアドレスコード
AD3で選択し、8チヤンネルのうちの1つをア
ドレスコードAD4で選択し、3の立上りで
入力データを書き込み、OC9が“H”のとき出
力する。バツフアメモリ29の出力はオクターブ
シフタ30に供給される。バツフアメモリ29の
上位5ビツトのコードにより、それより下位のデ
ータが、所定のビツト数だけビツトシフトされて
出力される。 この出力は、正弦波発生器9の内部に設けられ
飛越数を格納するレジスタのうち所定のアドレス
に対応するものに転送される。 33はノートオクターブレジスタ(ND
(n))で最新のノートオクターブデータを、
CPU3よりデータバスDBを介して受け入れ、必
要な時に、Aバスに出力する。書き込みをMRW
2で、読出しをOC2で行なう。34はノートオ
クターブレジスタ(ND(n−1))で、前回の
ノートオクターブデータを、CPU3よりデータ
バスDBを介して受け入れ、必要な時にBバスに
出力する。また、Bバスから途中の処理データを
受け取り記憶する。DBよりのデータの書き込み
を3で、Bバスよりの書き込みを0で
行ない、Bバスへの出力をC3で行なう。35
はハーモニツクデータメモリ(HMD)で、64ワ
ード×13ビツトのRMにより構成されている。
64ワードのうちのどれを選択するかは、パーシヤ
ル番号メモリ36が出力する6ビツトのコードに
より決定される。パーシヤル番号メモリ36は、
20ワード×6ビツトのRAMで、データバスDB
から入力を受け入れる。20ワードのうちの1ワー
ドをアドレスコードAD1で選択し、4の
立上りで書き込む。出力は常にハーモニツクデー
タメモリ35に供給される。ハーモニツクデータ
メモリの出力はC4が“H”のときAバスに出
力される。37は非高調波メモリ(INH)で、
20ワード×6ビツトのRAMにより構成される。
20ワードのうちの1ワードがアドレスコードAD
1で選択され、5の立上りでデータバス
DBのデータが書き込まれ、C5が“H”のと
きAバスに出力される。38は、指数変換テーブ
ル(EXP)で、RMにより構成される。Dバ
スを入力とし、C6が“H”のときその内容を
Aバスに出力する。39は差分指数変換テーブル
(DEXP)で、RMにより構成され、Dバスを
入力とし、C6が“H”のとき、記憶内容をB
バスに出力する。これら2つのテーブルの内容に
ついては後述する。40はゲートであつて、Dバ
スを入力としC7が“H”のときBバスに出力
する。 32は、ポルタメントレジスタ(PRT)であ
つて、ポルタメントスピードを表わすコードをデ
ータバスより受け入れ、1の立上りで記憶
する。31は、ポルタメントデータ変換器であつ
て、周波数の増減データをポルタメントレジスタ
32の内容をもとにつくり出し、C1が“H”
のときにAバスに出力する。通常ポルタメントレ
ジスタ32の内容と同じものを出力する。42は
ビブラートデータ発生器で、ビブラート波形を表
わすコードを発生すると共に、C10が“H”
のときVIB(n)をBバスに、C11が“H”
のときVIB(n)をAバスに、C12が“H”
のときVIB(n−1)をBバスに出力する。VIB
(n)は、現在のビブラートデータを表わし、
VIB(n−1)は前回のビブラートデータを表わ
す。41はステータスフリツプフロツプ(SFF)
で、データバスDBのデータを6の立上り
で記憶し、その内容を、TPG22に供給する。 TPG22は、周波数制御装置が新たなデータ
を外部のCPU3に要求するとき割込信号と、
割込内容を示す割込ベクトルコードをデータバス
DB上に出力する。出力指令信号C1〜12が
“L”のときは、それらに対応しているメモリや
レジスタの出力は、高インビーダンスになつてA
バスやBバスに何ら影響を及ぼさないようにして
いる。 <データ構造> つぎに、本発明で行なう周波数制御の指数変換
の機構C変換前と変換後のデータ構造について述
べる。 1オクターブは周波数比で1:2の関係であ
る。周波数に正比例する数値として、飛越数J
をつぎのように定義する。音源の1波形を記憶し
ているメモリが、218ワード(サンプル)より成
り立つているとする。サンプルの読出周波数をc
KHzとすると、1サンプルずつ全サンプルを読み
出す場合出力波形の周波数はc/218Hzとなる。
これは飛越数J=1に当る。飛越数Jに対して一
般的に周波数は F=c/218×J ……(1) と表わせる。 本発明では、1オクターブをセント尺度上で量
子化し、演算されたセント尺度で表わされた周波
数値を指数変換により、周波数に正比例する飛越
数に変換している。 指数変換の方法についてつぎに述べる。 1オクターブをセント(cent)で表わすと、
1200セントになる。2つの周波数AとFBの比はセ
ント尺度CEではつぎのようになる。 CE(cent)=1200log2(FA/FB) …(2) 周波数A,FBの飛越数をJA,JBとすると JBを平均律12半音階のCに対応するものとし、
かつその値を2048とし、JAをJと表わすと となる。これを、CE=0〜1200(セント)の範囲
について書くと第3図Aのようになる。(5)式は曲
線であるがこれをつぎのように折線で近似する。 CE(0〜1200)を、12に等分すると、100セン
ト間隔になる。これは、12平均律の半音階に対応
する。100セント内をさらに8等分し、12.5セン
ト間隔とする。このようにすると、12×8=96の
点になる。これらの96の点 CEi=12.5×i(i=0〜L−1,L=96) に対するJをJiとする。 iとi+1との間、12.5セントをさらに8等分
する。 CEi,j=12.5i+12.5/8j ……(7) (i=0〜L−1,L=96 j=0〜M−1,M=8) (7)式のCEi,j(j=1〜7)に対しては、直線補
間した値を用いる。すなわちJi,jは次式となる。 一般的には Jc:基準点での飛越数 L:1オクターブの分割数 M:直線補間区間内の分割数 i=0,1,2,……L−1 j=0,1,2,……M−1 と表わすことができる。 先に述べたように、L=96,M=8とすると
1200セント区間は、1.5625セント間隔で768点に
量子化される。誤差は±0.78125セント以下とな
る。この768点に対してアドレスを割りつける。
これをセントアドレスとする。 つぎに、(8)式のJi,jを計算する方法について説
明する。 第3図によれば、Jは、1オクターブに対し
て、2進12ビツトで表わされる2048〜4096で表わ
されている。CE=0〜100(セント)の範囲を詳
しく示したものが第3図Bである。100セント内
が12.5セントで等分されている。 (8)式は と表わせる。iを2進化96進数で表わす。 96=4×3×8 であるから、上位2進2桁、中位を2進化3進
数、下位を2進3桁で表わすことができる。中位
は2ビツトであればよいから、合計7ビツトにな
る。jは2進3桁で表わされ、iの下位となる。
すなわち、1200セント内の96×8=768点は第4
図AのN3〜N0,S5〜S0の10ビツトのコードで表
わすことができる。このコードをセントアドレス
と呼ぶ、このうちN1とN0とが2進化3進表示と
なる。このような(i,j)の値に対して、Ji,p
の値96通りを、第2図のEXP38に用意する。ア
ドレス96通り、それぞれ12ビツトとすると96×12
=1152ビツトのROMとなる。このJi,pは(10)式の第
1項に相当する。 つぎに、差分として、(10)の第2項の一部であ
る。 を第2図のDEXP39に用意する。DJi,jの最大値
は、i=95,j=7のときで、DJ95.7=25.784に
なるから、DJi,jは5ビツトの2進数で表わせる。
また、(i,j)は、96×8=768通りである。し
たがつて、セントアドレス768通り、786×5=
3840ビツトのRMになる。 EXP38のROMに対するセントアドレス入力
は、第4図Aの{N3〜N0,S5〜S3}の7ビツ
ト、DEXP39のROMに対するアドレスすなわ
ちセントアドレスは、第4図Aの{N3〜N0,S5
〜S0}の10ビツトのコードにすればよい。EXP
38とDEXP39の出力を加算すれば、(10)式の
Ji,jが2進数12桁の表示が得られる。 第4図Aは、セント尺度上に量子化されたピツ
チを表現する2進数すなわち拡張されたセントア
ドレスを表わしている。O4,O3,O2,O1,O0
は、オクターブを表わす。N3,N2,N1,N0は
1オクターブ内の12平均律半音階の各音(ノー
ト)を表わす。このうち(N1,N0)は2進位3
進数の(0,0),(0,1),(1,0)を表わ
し、(1,1)は発生しない。したがつて、(N3,
N2,N1,N0)は12進数となる。第5図に(N3
〜N0)と音階の対応を示す。S5,S4,S3,S2,
S1,S0は6ビツトの2進数で、半音区間を64等分
した各ピツチを表現する。1オクターブは、1200
セントで、半音は100セントであるから、{S5〜
S0}は、1.5625セツト間隔で100セントの区間を
表現する。 第4図Bは、ND(n)のデータフオーマツ
トで、下位4ビツトがノートを、上位4ビツトが
オクターブを示す。ND(n)は、指定される
オクターブとノートをもつ楽音の基本周波数1に
対応する。 第4図Cは、高調波性をもつた楽音に含まれる
各高調波成分の周波数kの基本周波数1に対する
比をセントで表わした、ハーモニツクデータ
HMDkである。 HMDk=1200log2(k/1) ……(12) (k=1,2,3,……,64) を2進数で表わしたものである。(H12〜H0)の
13ビツトを用いると、±0.78125セントの精度で、
28=256次高調波まで実現できる。{H7,H6}は
{N1,N0}と同様2進化3進数表示である。 第4図Dは、非高調波性を表わすインハーモニ
シテイデータINHのフオーマツトである。INH
は、第4図CのHMDデータからの何セントかの
ずれで表わすことにしているので、半音内の区間
を表現する6ビツトデータ{I5〜I0}で良い。 第4図Eは、ビブラートやグライドなどの過渡
的または定常的な変動をセント尺度で表現するも
のである。変動の巾を±100セント以内とすると
{V6〜V0}の7ビツトのコードで表わすことがで
きる。このうち、V6は符号ビツトになる。 これらの第4図に示されたデータから、所望の
飛越数Jを求める手順について説明する。まず、
各記号はつぎの意味を持つものとする。 (1) ND(n):時刻nにおけるノートオクター
ブデータ(音高情報)に対する音高周波数
をセントアドレスで表わしたもの (2) HMDk:基本周波数に対するk次の正高調
波周波数のセント表示であつて2進表示し
たもの(正高調波差セントアドレス) HMDk=1200log2(k/1),k=k1(k=1
,
2,3……,64) ……(13) (3) INHk:k次の正高調波周波数からの周波数
のずれたセント表示で、かつ2進表示した
もの(非高調波差セントアドレス)。 k=k1+dkとすると INHk=1200log2(k1+dk/k1)……(14) を基本とするが、INHkが100セントを越
えるときには、取り扱い上、100セント以
下のINHkを求めるためにつぎのようにす
る。 INHk+p=1200log2k1+p1+(dk−p1)/k1+
p1 ……(15) (p=0,1,2,3,……,かつdk−p1
0) すなわち、k次の高調波からdkだけずれた
ものであるが、これを(k+p)次高調波
から(dk−p1)だけ、ずれたものとみる
ことを意味する。 (4) VIB(n):時刻nにおけるビブラートやグラ
イドによる周波数の偏移をセント表示し、
かつ2進表示したもの。(変調セントアド
レス) 以上の変数から、k次高調波の周波数のセント
表示すなわちセントアドレスを、記号LGJ
(i,j)で表わすと LGJi,j=ND(n)+VIB(n)+HMDk+
INHk ……(16) となる。LGJi,jは、第4図Aのデータフオーマ
ツトを持つ。このうち{N3,N2,N1,N0,S5,
S4,S3}の7ビツトは、96進数で、(10)式における
iを表わす。{S2,S1,S0}の3ビツトは同じく
jを表わす。これらのコードを前述のEXP38
とDEXP39の指数変換テーブルと差分指数変換
テーブルのアドレスデータをして与えると、(10)式
にしたがつた指数変換ができる。これを次式で表
わす。 J* i,j=EXP〔LGJi,p〕+DEXP〔LGJi,j〕
……(17) 第3図Aより、指数変換テーブルは1オクター
ブの範囲しか設けていない。J* i,jは、この範囲内
での値を示すものである。オクターブを越える範
囲にある場合は、第4図Aのオクターブデータ
{O4,O3,O2,O1,O0}にしたがつてJ* i,jをビツ
トシフトすればよい。たとえば、 {O4〜O1}=(00011) のときは、3ビツト上位へシフトすればよい。何
ビツトシフトするかについては、正弦波発生器9
のビツト位置に合わせるようにすればよい。 以上で、データ構造とそれにもとづく飛越数J
の計算の手順が明らかになつた。 (16)式、(17)式、(18)式を一気に実行する
構成も実現できるが、本発明の実施例(第2図)
では、順次手順を追つて実行するようにしてい
る。(16)式、(17)式、(18)式を手順を追つて
実行するには、種々の方法が考えられる。先に述
べた第2図の構成による手順を、第1表に示す。
るためのデータを発生する周波数制御装置に関
し、特にデイジタル方式で周波数を制御するよう
にしたものである。 従来、デイジタル方式を用いた楽音発生装置に
は種々の提案がなされている。これらの中で、正
弦波や楽音の一波形のデイジタルデータをメモリ
に記憶しておき、これを順次繰返して読み出して
連続的な楽音波形とし、これに、エンベロープ信
号に相当するエンベロープデータを掛け算して、
その振幅値を変化させることにより、音の立上り
から立下りまでの楽音信号を形成するようにした
ものがある。発生する波形の周波数を変更するに
は、デイジタルデータの各サンプルを順次連続的
に読み出さずに、所定のサンプル数だけ飛び越し
て読み出せばよい。飛越数をJとすると、Jに正
比例して周波数を設定できる。このような信号の
発生方法の手順については1969年にTHE M.I.T.
PRESSより出版された書物「The Technology
of Computer Music」の第134頁〜138頁に記述
されている。また、雑誌IEEE Trans.on Audio
and Electroacoustics,19巻、No.1,48−58,
1971の文献A Digital Frequeney Synthesizer」
には、具体的な構成が示されている。これらの公
知例にもとづいてさらに具体的かつ実際的な方式
として、特開昭58−65493号公報に記載のものが
ある。 これらの楽音合成方式に対しては、飛越数Jを
発生して供給する必要がある。本発明は、飛越数
Jを発生し供給する方法に関するもので、とくに
種々の周波数を効率的に発生させるように工夫し
たものである。 つぎに本発明の方式と従来例との関連について
述べる。 従来、ミユージツクシンセサイザでは、鍵盤の
各鍵に対応する鍵電圧VKを発生させ、これに周
波数を設定する電圧VF、ビブラート電圧VVを重
畳してV1=(VK+VF+VV)を得、指数変換器を
通してV0=K1exp(VK+VF+VV)を得、電圧V0
によつて、電圧制御発振器(VCO)の発振周波
数を決定する。電圧VFが0Vのときは、鍵電圧
VKによつて決まる周波数、すなわち、楽音の音
階に対応する(C3であれば261.625Hz)周波数が
発生する。通常鍵電圧VKは、オクターブ当り1V
が標準とされている。電圧VFとして1Vを加える
と、1オクターブ上昇して513.25Hzが発生する。
これは、C4に当ると同時に、C3の第2高調波に
も当る。電圧VFとして1V以外の電圧を与える
と、第3,第4など任意の高調波成分が得られ
る。ビブラート電圧VVは、上記各周波数を中心
に上下に周波数変調させるものであるが、ここで
重要なことは、VKやVFが種々の値をとつても周
波数の変動の割合い、すなわち、ピツチの変動
は、VVが一定なら、一定に保たれる点である。
このような方式をデイジタル演算におきかえたも
のとして特開昭54−81824が知られている。しか
しながら、このような従来のものでは、アナログ
回路で作るために不安定であつたり、デイジタル
演算の演算器が、高精度かつ多数必要とするなど
の欠点があつた。 また、特開昭56−74298号公報公報に示すよう
に、デイジタル処理方式において、周波数情報を
セント尺度上で扱うものがあるが、非高調波成分
を扱うことができないものであつた。 本発明は、周波数制御値に比例する周波数を発
生する楽音波形発生方法または装置に対応して、
周波数制御値を演算する装置に関するもので、特
に、基音の周波数の非整数次倍音の高調波を持つ
楽音を発生させるための周波数制御値を得ること
が出来るものである。この為に、基音の音高周波
数、正高調波周波数をセント数により定義し、更
に、非整数次倍の高調波と正高調波との差セント
数を新たに導入することにより、非高調波の表現
を柔軟に行なえるようにしたものである。 また、次の目的として、音階の12平均率の基本
原則に着目して、セントアドレスの中位の桁を特
別の扱いにすることにより、合理的な演算を行な
えるようにしたものである 本発明は上記目的を達するため、基音および高
調波からなる発生すべき楽音の基音の音高周波数
に対応する音高情報、上記楽音の高調波次数に関
する正高調波情報、上記高調波周波数が基音の周
波数の整数倍から偏移する量を表す非高調波情報
を入力とし、少なくとも1オクターブ区間を等間
隔の所定のセント間隔を持つ複数の区間に分け、
上記区間の境界に対してセント尺度上のアドレス
を割り付け、上記音高情報をセントアドレスの形
式で与え、上記正高調波周波数情報を音高情報か
らの差の形のセントアドレスとして出力させ、上
記非高調波情報を上記偏移に対応した非高調波差
セントアドレスの形で与え、上記音高情報のセン
トアドレス、上記正高調波周波数情報に対応する
差セントアドレス、および上記非高調波差セント
アドレスを加算して和セントアドレスを得、和セ
ントアドレスを周波数に正比例する周波数制御値
に変換する変換器に加えて周波数制御値を得るよ
うにするものであつて、上記音高情報、正高調波
数情報、非高調波情報を格納する格納手段と、上
記格納手段に結合された情報伝達用の少なくとも
1本のバスラインと、上記バスラインに接続され
た演算器と、その演算結果を格納する格納手段
と、演算結果を上記バスラインに出力する装置
と、上記変換器とを備えた構成となつている。 第1図は、本発明の周波数制御装置を採用した
電子楽器のブロツク図である。1は鍵盤部、2は
音色タブレツトスイツチやビブラート効果のオン
オフスイツチ、ビブラート効果の深さを設定する
ボリユームなどにより構成される操作部、3は中
央処理装置(CPU)で、コンピユータなどに用
いられているものと同様のもの、4は読み書き可
能な記憶装置(ランダムアクセスメモリ、通常
RAMと呼ぶ)、5はCPU3の動作を決定するプ
ログラムが格納された読み出し専用記憶装置(リ
ードオンリーメモリ、通常RMと呼ぶ)、6は、
音色の合成するためのパラメータのうちエンベロ
ープパラメータを記憶しているROM、7は音色
の合成を行なうためのパラメータのうち周波数に
関するデータを記憶しているROMである。8は
本発明の周波数制御装置、9は先に引用した正弦
波発生器、10はエンベロープデータ発生器、1
1は、正弦波とエンベロープデータを掛け合わせ
る掛算器、12は時分割多重化されている掛算結
果のうち、所定のものを加え合わせたり、時分割
多重の順序と入れかえるタイムスロツト制御装
置、13は時分割多重化された位相変調器、14
はデイジタルアナログ変換器、15,16は電気
音響変換器である。 鍵盤部1、操作部2、CPU3、RAM4、
ROM5、ROM7、周波数制御装置8、エンベ
ロープデータ発生器10は、データバス、アドレ
スバスおよびコントロール線で結合されている。
このようにデータバスとアドレスバスとコントロ
ール線とで結合する方法そのものは、ミニコンピ
ユータやマイクロコンピユータを中心とした構成
方法として公知のものである。データバスとして
は8〜16本位用いられ、このバス線上をデータが
一方向でなく多方向に時分割的に送受信される。
アドレスバスも複数本たとえば16本用意され、通
常はCPU3がアドレスコードを出力し、他の部
分がアドレスコードを受け取る。コントロール線
は、通常、メモリ・リクエスト線()、
I/リクエスト線(IRQ)、リード線
()、ライト線()などが用いられる。 は、メモリを読み書きすることを示し、
IRQは入出力装置(I/)の内容を取り出
しすることを示し、はメモリやI/からデ
ータを読み出すタイミングを示し、はメモリ
やI/にデータを書き込むタイミングを示す。
このようなコントロール線を用いたものとして
は、ザイログ社のマイクロプロセツサZ80があげ
られる。 つぎに第1図の電子楽器の動作について述べ
る。鍵盤部1は、複数の鍵スイツチを複数の群に
分けて、群内の鍵スイツチのN−FF状態を
一括してデータバスに送ることができるように構
成される。たとえば、5オクターブの鍵盤の場合
61鍵を6鍵(半オクターブ)ずつの10群と1鍵の
みの1群の11群に分け、各群にアドレスコードを
1つずつ割りつける。アドレスラインに、上記各
群のうちの1つを示すアドレスコードが到来し、
IRQとが印加されると、鍵盤部1はその
アドレスコードを解読して対応する群内のキース
イツチのN−FFを示す6ビツトまたは1ビ
ツトのデータをデータバスに出力する。これら
は、デコーダ、バスドライバおよび若干のゲート
回路を用いて構成することができる。操作部2の
うち、タブレツトスイツチについては、鍵盤部1
と同様の構成をとることができる。ボリユームの
設定状態については、ボリユームの出力する電圧
をアナログデイジタル変換器によりデイジタルコ
ードに変換し、これを、アドレスコードとコント
ロール線IRQとにより読み出すようにす
る。 CPU3はその内部にあるプログラムカウンタ
のコードに対応するRM5のアドレスから命令
コードを読み取り、これを解読して、算術演算、
論理演算データの読み込みと書き込み、プログラ
ムカウンタの内容の変更による命令のジヤンプな
どの作業を行なう。これらの作業の手順はRM
5に書き込まれている。まずCPU3はROM5よ
り鍵盤部1のデータを取り込むための命令を読み
取り鍵盤部1の各鍵のN−FFを示すコード
を各群ごとに取り込んで行く。そして、押鍵され
ている鍵コードを、楽音発生部の有限のチヤンネ
ルに割り当ててゆく。 つぎにCPU3は、操作部2よりデータを取り
込むための一群の命令を順次RM5から読み取
り、これらを解読して、操作部2に対応するアド
レスコードとコントロール信号IRQとを
出力し、データバスに操作部2のスイツチやボリ
ユームの状態を表現するコードを出力させ、
CPU3内に読み込む。そして、どの音色の楽音
信号を合成すべきかをCPU3は知る。 以上で、楽音発生部のどのチヤンネルにどの周
波数をもつたどの音色を発生させるべきかが明確
になつたので、CPU3は、各音色の周波数に関
するデータを記憶しているROM7より、所望の
音色の周波数パラメータを格納してあるアドレス
コードとコントロール信号ととを出力
して、データバスに所望の周波数パラメータを読
み出してCPU3内に取り込み、周波数制御装置
8に書き込む。書き込むためには、周波数制御装
置8の内部に設けられたデータレジスタに対応す
るアドレスコードをCPU3が出力し、同時にI
ORQととを出力すると、信号の立上り
時にデータバス上に出力されている周波数パラメ
ータを表わすデータが上記データレジスタに書き
込まれる。 つぎに、出力すべき音色の内容を表わす音色パ
ラメータをRM6より読み出し、エンベロープ
発生器10の内部のレジスタに書き込む。つぎに
周波数制御装置8とエンベロープ発生器10の両
方に、発音出力指令を与えると、周波数制御装置
8は、飛越数Jを正弦波発生器9に与え、エンベ
ロープ発生器10はエンベロープデータを発生す
る。正弦波発生器9の出力する正弦波データとエ
ンベロープデータは掛算されて、エンベロープが
正弦波に付与される。正弦波データとエンベロー
プデータとはそれぞれ時分割多重化されて発生す
る。時分割多重は、例えば、160多重とし、1チ
ヤンネル当り20の正弦波を割り当て、8チヤンネ
ル設けることによる。通常は、20本の正弦波の合
成により、ひとつの楽音を合成することになる。
したがつて、フーリエ級数の式で知られるとお
り、20の正弦波データを加算することになる。
このためのタイムスロツト間のデータ加算を、タ
イムスロツト変換器12で実施する。タイムスロ
ツト変換器は、160のタイムスロツトで時分割多
重されて入力される、エンベロープデータで変調
された正弦波データ列のうち、所定のデータを加
算しタイムスロツトの数を減らしたり、あるい
は、特開昭58−103244号公報に記載の時分割多重
変換装置のようにタイムスロツチの交換を行なう
ものである。時分割多重位相変換器13は、特開
昭58−83894号公報に記載の「デイジタル楽音変
調装置」のように、時分割多重で複数種の変調を
同時に実施するものである。時分割多重位相変調
装置13の出力はアナログデイジタル変換器14
によりアナログ信号に直されて、電気音響変換器
15,16より出力される。 第1図では図示を省いたが、タイムスロツト変
換器12や時分割多重位相変調装置13に対して
も、アドレスバス、データバス、コントロール線
を介してCPU3と結合して、操作部2によつて
行なわれる音色や変調効果の設定に対応して、タ
イムスロツトの変換や変調条件を変えて設定する
ようにすることができる。 本発明の周波数制御は、まず、各鍵のノートオ
クターブ、各高調波の周波数などを、セント尺度
上に配置して処理する。出力すべき楽音の基本波
のノートやオクターブの位置、基本波を基準とし
た高調波の位置、非高調波の相対的なずれなどを
セント単位で表現し、セント尺度上でのセントア
ドレスの加減算を行なつて、実際の周波数成分の
セント値に対するセントアドレスを求め、これを
指数変換する。システムをデイジタル化し、か
つ、多数のスペクトルに対する飛越数Jを求める
ために、セント尺度上で1オクターブを量子化し
て扱い、かつ、時分割多重で演算処理を行なうよ
うに考慮している。また、演算されたJが、正弦
波発生器9に適切に転送されるようにタイミング
を考えている。 本発明は、第1図の如き電子楽器の一部分とし
て、CPU3より供給される周波数パラメータを
受け入れて、正弦波発生器9に対し飛越数Jを供
給する機能を実現する、周波数制御装置8に関す
るものである。その1実施例を第2図に示す。 第2図の周波数制御装置は、データバスDB、
アドレスバスADR、コントロール線IRQと
WRとチツプセレクト線CSとにより、CPU3と
結合して、周波数パラメータを受け取り、マイコ
ンインタフエース回路(MIF)25でアドレス
バスADRのコードを解読して、内部のレジスタ
群に書き込み、内部に設けた飛越数Jを計算する
機構を介して、必要な複数個のJiを計算させ、バ
ツフアメモリ29、オクターブシフタ30を介し
て、正弦波発生器9に供給する。 まず、構成要素について説明する。21は、タ
イムミングパルスを供給するプログラムカウンタ
(PC)、22はタイミングパルスから論理をとつ
て必要なアドレスコードをつくつたり、コントロ
ール用のフラグ(FLG)信号を受けとつて制御
信号をつくり出すタイミングパルス発生器
(TPG)、23は、タイミングパルスや制御信号
により読み出され、後述する算術演算や論理演算
の内容と手順とを記憶しているシーケンサ
(SEQ)でRMから成るもの、24はシーケン
サの内容を解読して、アドレスコード、出力指令
信号(OC1〜12)、書込指令信号(0〜
3)、演算指令信号(Pコード)などを出力す
る命令解読器である。25はマイコンインタフエ
ース回路(MIF)で先に説明したものである。
26は演算装置(ALU)で、加算、減算、比較
を、2つの入力であるAバスとBバスの間で行な
い、Cバスに演算結果を出力し、演算結果のうち
の符号、上位ビツトなどをFLGとして出力する。
FLGはTPG22に供給される。 27はワーキングレジスタ(WREG)で
WREG1とWREG2の2ワードのメモリで構成
され、Cバスより入力を受け入れ、Bバスに出力
を供給する。AD2が2ワードのどちらかを選択
し1の立上りで書き込み、C8が“H”の
とき出力を供給する。28は160ワード×15ビツ
トより成るRAMで、Cバスより入力を受け取り
Dバスに出力を供給する。160ワードは20ワード
ずつ8チヤンネルに分けられており、20ワード内
の任意の1ワードを5ビツトのアドレスコード
AD1で指定し、8チヤンネルのうちの任意の1
チヤンネルを3ビツトのアドレスコードAD4で
選択し、2の立上り時にCバス上のデータを
書き込む。出力はDバスに出たままである。ただ
し、出力の上位5ビツトはバツフアメモリ29に
供給される。バツフアメモリ29は160ワード×
17ビツトのRAMで、CバスのデータとRAM2
8の上位5ビツトを入力として受け入れる。160
ワードは20ワードずつ8チヤンネルに分けられて
おり、20ワード内の1ワードをアドレスコード
AD3で選択し、8チヤンネルのうちの1つをア
ドレスコードAD4で選択し、3の立上りで
入力データを書き込み、OC9が“H”のとき出
力する。バツフアメモリ29の出力はオクターブ
シフタ30に供給される。バツフアメモリ29の
上位5ビツトのコードにより、それより下位のデ
ータが、所定のビツト数だけビツトシフトされて
出力される。 この出力は、正弦波発生器9の内部に設けられ
飛越数を格納するレジスタのうち所定のアドレス
に対応するものに転送される。 33はノートオクターブレジスタ(ND
(n))で最新のノートオクターブデータを、
CPU3よりデータバスDBを介して受け入れ、必
要な時に、Aバスに出力する。書き込みをMRW
2で、読出しをOC2で行なう。34はノートオ
クターブレジスタ(ND(n−1))で、前回の
ノートオクターブデータを、CPU3よりデータ
バスDBを介して受け入れ、必要な時にBバスに
出力する。また、Bバスから途中の処理データを
受け取り記憶する。DBよりのデータの書き込み
を3で、Bバスよりの書き込みを0で
行ない、Bバスへの出力をC3で行なう。35
はハーモニツクデータメモリ(HMD)で、64ワ
ード×13ビツトのRMにより構成されている。
64ワードのうちのどれを選択するかは、パーシヤ
ル番号メモリ36が出力する6ビツトのコードに
より決定される。パーシヤル番号メモリ36は、
20ワード×6ビツトのRAMで、データバスDB
から入力を受け入れる。20ワードのうちの1ワー
ドをアドレスコードAD1で選択し、4の
立上りで書き込む。出力は常にハーモニツクデー
タメモリ35に供給される。ハーモニツクデータ
メモリの出力はC4が“H”のときAバスに出
力される。37は非高調波メモリ(INH)で、
20ワード×6ビツトのRAMにより構成される。
20ワードのうちの1ワードがアドレスコードAD
1で選択され、5の立上りでデータバス
DBのデータが書き込まれ、C5が“H”のと
きAバスに出力される。38は、指数変換テーブ
ル(EXP)で、RMにより構成される。Dバ
スを入力とし、C6が“H”のときその内容を
Aバスに出力する。39は差分指数変換テーブル
(DEXP)で、RMにより構成され、Dバスを
入力とし、C6が“H”のとき、記憶内容をB
バスに出力する。これら2つのテーブルの内容に
ついては後述する。40はゲートであつて、Dバ
スを入力としC7が“H”のときBバスに出力
する。 32は、ポルタメントレジスタ(PRT)であ
つて、ポルタメントスピードを表わすコードをデ
ータバスより受け入れ、1の立上りで記憶
する。31は、ポルタメントデータ変換器であつ
て、周波数の増減データをポルタメントレジスタ
32の内容をもとにつくり出し、C1が“H”
のときにAバスに出力する。通常ポルタメントレ
ジスタ32の内容と同じものを出力する。42は
ビブラートデータ発生器で、ビブラート波形を表
わすコードを発生すると共に、C10が“H”
のときVIB(n)をBバスに、C11が“H”
のときVIB(n)をAバスに、C12が“H”
のときVIB(n−1)をBバスに出力する。VIB
(n)は、現在のビブラートデータを表わし、
VIB(n−1)は前回のビブラートデータを表わ
す。41はステータスフリツプフロツプ(SFF)
で、データバスDBのデータを6の立上り
で記憶し、その内容を、TPG22に供給する。 TPG22は、周波数制御装置が新たなデータ
を外部のCPU3に要求するとき割込信号と、
割込内容を示す割込ベクトルコードをデータバス
DB上に出力する。出力指令信号C1〜12が
“L”のときは、それらに対応しているメモリや
レジスタの出力は、高インビーダンスになつてA
バスやBバスに何ら影響を及ぼさないようにして
いる。 <データ構造> つぎに、本発明で行なう周波数制御の指数変換
の機構C変換前と変換後のデータ構造について述
べる。 1オクターブは周波数比で1:2の関係であ
る。周波数に正比例する数値として、飛越数J
をつぎのように定義する。音源の1波形を記憶し
ているメモリが、218ワード(サンプル)より成
り立つているとする。サンプルの読出周波数をc
KHzとすると、1サンプルずつ全サンプルを読み
出す場合出力波形の周波数はc/218Hzとなる。
これは飛越数J=1に当る。飛越数Jに対して一
般的に周波数は F=c/218×J ……(1) と表わせる。 本発明では、1オクターブをセント尺度上で量
子化し、演算されたセント尺度で表わされた周波
数値を指数変換により、周波数に正比例する飛越
数に変換している。 指数変換の方法についてつぎに述べる。 1オクターブをセント(cent)で表わすと、
1200セントになる。2つの周波数AとFBの比はセ
ント尺度CEではつぎのようになる。 CE(cent)=1200log2(FA/FB) …(2) 周波数A,FBの飛越数をJA,JBとすると JBを平均律12半音階のCに対応するものとし、
かつその値を2048とし、JAをJと表わすと となる。これを、CE=0〜1200(セント)の範囲
について書くと第3図Aのようになる。(5)式は曲
線であるがこれをつぎのように折線で近似する。 CE(0〜1200)を、12に等分すると、100セン
ト間隔になる。これは、12平均律の半音階に対応
する。100セント内をさらに8等分し、12.5セン
ト間隔とする。このようにすると、12×8=96の
点になる。これらの96の点 CEi=12.5×i(i=0〜L−1,L=96) に対するJをJiとする。 iとi+1との間、12.5セントをさらに8等分
する。 CEi,j=12.5i+12.5/8j ……(7) (i=0〜L−1,L=96 j=0〜M−1,M=8) (7)式のCEi,j(j=1〜7)に対しては、直線補
間した値を用いる。すなわちJi,jは次式となる。 一般的には Jc:基準点での飛越数 L:1オクターブの分割数 M:直線補間区間内の分割数 i=0,1,2,……L−1 j=0,1,2,……M−1 と表わすことができる。 先に述べたように、L=96,M=8とすると
1200セント区間は、1.5625セント間隔で768点に
量子化される。誤差は±0.78125セント以下とな
る。この768点に対してアドレスを割りつける。
これをセントアドレスとする。 つぎに、(8)式のJi,jを計算する方法について説
明する。 第3図によれば、Jは、1オクターブに対し
て、2進12ビツトで表わされる2048〜4096で表わ
されている。CE=0〜100(セント)の範囲を詳
しく示したものが第3図Bである。100セント内
が12.5セントで等分されている。 (8)式は と表わせる。iを2進化96進数で表わす。 96=4×3×8 であるから、上位2進2桁、中位を2進化3進
数、下位を2進3桁で表わすことができる。中位
は2ビツトであればよいから、合計7ビツトにな
る。jは2進3桁で表わされ、iの下位となる。
すなわち、1200セント内の96×8=768点は第4
図AのN3〜N0,S5〜S0の10ビツトのコードで表
わすことができる。このコードをセントアドレス
と呼ぶ、このうちN1とN0とが2進化3進表示と
なる。このような(i,j)の値に対して、Ji,p
の値96通りを、第2図のEXP38に用意する。ア
ドレス96通り、それぞれ12ビツトとすると96×12
=1152ビツトのROMとなる。このJi,pは(10)式の第
1項に相当する。 つぎに、差分として、(10)の第2項の一部であ
る。 を第2図のDEXP39に用意する。DJi,jの最大値
は、i=95,j=7のときで、DJ95.7=25.784に
なるから、DJi,jは5ビツトの2進数で表わせる。
また、(i,j)は、96×8=768通りである。し
たがつて、セントアドレス768通り、786×5=
3840ビツトのRMになる。 EXP38のROMに対するセントアドレス入力
は、第4図Aの{N3〜N0,S5〜S3}の7ビツ
ト、DEXP39のROMに対するアドレスすなわ
ちセントアドレスは、第4図Aの{N3〜N0,S5
〜S0}の10ビツトのコードにすればよい。EXP
38とDEXP39の出力を加算すれば、(10)式の
Ji,jが2進数12桁の表示が得られる。 第4図Aは、セント尺度上に量子化されたピツ
チを表現する2進数すなわち拡張されたセントア
ドレスを表わしている。O4,O3,O2,O1,O0
は、オクターブを表わす。N3,N2,N1,N0は
1オクターブ内の12平均律半音階の各音(ノー
ト)を表わす。このうち(N1,N0)は2進位3
進数の(0,0),(0,1),(1,0)を表わ
し、(1,1)は発生しない。したがつて、(N3,
N2,N1,N0)は12進数となる。第5図に(N3
〜N0)と音階の対応を示す。S5,S4,S3,S2,
S1,S0は6ビツトの2進数で、半音区間を64等分
した各ピツチを表現する。1オクターブは、1200
セントで、半音は100セントであるから、{S5〜
S0}は、1.5625セツト間隔で100セントの区間を
表現する。 第4図Bは、ND(n)のデータフオーマツ
トで、下位4ビツトがノートを、上位4ビツトが
オクターブを示す。ND(n)は、指定される
オクターブとノートをもつ楽音の基本周波数1に
対応する。 第4図Cは、高調波性をもつた楽音に含まれる
各高調波成分の周波数kの基本周波数1に対する
比をセントで表わした、ハーモニツクデータ
HMDkである。 HMDk=1200log2(k/1) ……(12) (k=1,2,3,……,64) を2進数で表わしたものである。(H12〜H0)の
13ビツトを用いると、±0.78125セントの精度で、
28=256次高調波まで実現できる。{H7,H6}は
{N1,N0}と同様2進化3進数表示である。 第4図Dは、非高調波性を表わすインハーモニ
シテイデータINHのフオーマツトである。INH
は、第4図CのHMDデータからの何セントかの
ずれで表わすことにしているので、半音内の区間
を表現する6ビツトデータ{I5〜I0}で良い。 第4図Eは、ビブラートやグライドなどの過渡
的または定常的な変動をセント尺度で表現するも
のである。変動の巾を±100セント以内とすると
{V6〜V0}の7ビツトのコードで表わすことがで
きる。このうち、V6は符号ビツトになる。 これらの第4図に示されたデータから、所望の
飛越数Jを求める手順について説明する。まず、
各記号はつぎの意味を持つものとする。 (1) ND(n):時刻nにおけるノートオクター
ブデータ(音高情報)に対する音高周波数
をセントアドレスで表わしたもの (2) HMDk:基本周波数に対するk次の正高調
波周波数のセント表示であつて2進表示し
たもの(正高調波差セントアドレス) HMDk=1200log2(k/1),k=k1(k=1
,
2,3……,64) ……(13) (3) INHk:k次の正高調波周波数からの周波数
のずれたセント表示で、かつ2進表示した
もの(非高調波差セントアドレス)。 k=k1+dkとすると INHk=1200log2(k1+dk/k1)……(14) を基本とするが、INHkが100セントを越
えるときには、取り扱い上、100セント以
下のINHkを求めるためにつぎのようにす
る。 INHk+p=1200log2k1+p1+(dk−p1)/k1+
p1 ……(15) (p=0,1,2,3,……,かつdk−p1
0) すなわち、k次の高調波からdkだけずれた
ものであるが、これを(k+p)次高調波
から(dk−p1)だけ、ずれたものとみる
ことを意味する。 (4) VIB(n):時刻nにおけるビブラートやグラ
イドによる周波数の偏移をセント表示し、
かつ2進表示したもの。(変調セントアド
レス) 以上の変数から、k次高調波の周波数のセント
表示すなわちセントアドレスを、記号LGJ
(i,j)で表わすと LGJi,j=ND(n)+VIB(n)+HMDk+
INHk ……(16) となる。LGJi,jは、第4図Aのデータフオーマ
ツトを持つ。このうち{N3,N2,N1,N0,S5,
S4,S3}の7ビツトは、96進数で、(10)式における
iを表わす。{S2,S1,S0}の3ビツトは同じく
jを表わす。これらのコードを前述のEXP38
とDEXP39の指数変換テーブルと差分指数変換
テーブルのアドレスデータをして与えると、(10)式
にしたがつた指数変換ができる。これを次式で表
わす。 J* i,j=EXP〔LGJi,p〕+DEXP〔LGJi,j〕
……(17) 第3図Aより、指数変換テーブルは1オクター
ブの範囲しか設けていない。J* i,jは、この範囲内
での値を示すものである。オクターブを越える範
囲にある場合は、第4図Aのオクターブデータ
{O4,O3,O2,O1,O0}にしたがつてJ* i,jをビツ
トシフトすればよい。たとえば、 {O4〜O1}=(00011) のときは、3ビツト上位へシフトすればよい。何
ビツトシフトするかについては、正弦波発生器9
のビツト位置に合わせるようにすればよい。 以上で、データ構造とそれにもとづく飛越数J
の計算の手順が明らかになつた。 (16)式、(17)式、(18)式を一気に実行する
構成も実現できるが、本発明の実施例(第2図)
では、順次手順を追つて実行するようにしてい
る。(16)式、(17)式、(18)式を手順を追つて
実行するには、種々の方法が考えられる。先に述
べた第2図の構成による手順を、第1表に示す。
【表】
第1表において、命令群A,B,Cのうち、A
とBが、8チヤンネル、各チヤンネルで20本のス
ペクトルに対する飛越数Jを計算する手順を示し
ている。命令群Aは命令4〜7、命令群は命令8
〜11により成つている。各命令の内容は、命令内
容により示される。たとえば命令4はND(n)
とVIB(n)とを加算し、ワーキングレジスタ
WREG2に格納することを意味する。命令5は
ワーキングレジスタWREG2の内容と、ハーモ
ニツクデータHMD(I)とを読み出して、それらを
加えてWREG2に格納する。命令6は、WREG
2の内容と、インハーモニシテイデータINH(I)
とを加算し、レジスタLGJ(K,I)に格納す
る。命令7は、レジスタLGJ(K,I)の内容
をアドレスコードとして、指数変換テーブル
EXP38と差分指数変換テーブルDEXP39に
与えて、それぞれの出力を加えて、バツフアメモ
リBUF(K,I)29に格納する。ここで、I
は、後述する処理タイムスロツト(PTS)を表
わすと共に、各チヤンネルにおけるスペクトルの
番号をも表わしている。I=1,2,……,20で
ある。Kはチヤンネルタイムスロツト(CHS)
を表わしている。K=1,2,……,8である。
CHSについては後述する。 命令群Bも第1表より同様にその演算内容の意
味を読み取ることができる。命令8におけるΔは
零としておく。命令群Aは、ノートオクターブデ
ータND(n)が変更されたときに実行され、
それ以降は、命令群Bが実行される。命令群Bで
は、ND(n),HMD(I),INH()が変化し
ないので、これらの計算をせず、前回の値L
GJ(K,I)からVIB(n−1)を引いてVIB
(n)の新しい値に対しての計算を行ない指数変
換を実行する。ノートオクターブデータND
(n)が更新されると一度命令群Aにもどりその
あと再び命令群Bを実行する。 第1表において、ITSは命令タイムスロツト
で、ITS1〜4まであり、命令0,4,8はITS
1で実行されることを示している。また、それぞ
れの命令実行時において活性化される書き込み
線、書き込みパルス、出力コントロール線を示し
ている。 以上の命令を実行するには、チヤンネルタイム
スロツトCHS、処理タイムスロツトPTS、命令
タイムスロツトITSの所定の時刻に、第2図のプ
ログラムカウンタ21、タイミングパルスジエネ
レータ22、シーケンサ23、インストラクシヨ
ンデコーダ24が動作する必要がある。以下に、
タイミングについて説明する。 第6図は、第2図の実施例のタイミンングを示
す図である。第6図Aは、正弦波波形のサンプル
並びを示すもので、ある1つの正弦波波形のサン
プル周期は20μsである。第6図Bは、20μsの中を
拡大したもので、この中に8×20=160個のタイ
ムスロツトがあり、160個のサンプルが存在する。
各サンプルは、125μsきざみで処理される。チヤ
ンネル1(CH1)には、20個のサンプルがある。
CH2〜8も同様である。一方、第6図Cは、A
に同期しながら、飛越数Jの計算を行なうタイミ
ングである。160μsを単位とするチヤンネルタイ
ムスロツトCHSが1〜8まで設けられている。
CHS1では、チヤンネル1のJ計算が行なわれ、
以下順に対応するチヤンネルJ計算が行なわれ
る。160×8=1280μs(1.28ms)周期で各チヤン
ネルのJ計算が繰り返される。第6図Dは、各チ
ヤンネルタイムスロツトCHSの内部を表わした
もので、例として、CHS1を拡大している。
CHS1の中には、5μsを単位として、処理タイム
スロツトPTSが1〜32まである。PTS(I)、I
=1〜20では、チヤンネル1における、20個のス
ペクトル(正弦波形)に対応する周波数を決める
飛越数を計算する。そして、PTS21の前半の
2.5μsにおいて、計算された20個のJの値を第6
図Fに示すように125nsきざみで、正弦波発生器
9(第1図)へ転送する。この転送のタイミング
は、CHS1〜8で異なる。たとえば、CHS8で
はPST24の後半で実行される。第6図Eは、
各処理タイムスロツトPTS1〜20の中味を拡
大したものである。PTS1〜20は、それぞれ、
命令タイムスロツトITS1〜4の4つの部分に分
かれている。それぞれは1.25μsの長さである。こ
れらの命令タイムスロツトITSにおいて前記第1
表の命令が実行される。PTS1〜20の間は、
第2図の実施例において、ALU26を中心とす
る演算が行なわれる。PTS21〜32の間に、
第2図におけるMIF25を中心とするデータの
新たな書き込みをデータバスDBを介して行な
い、かつ、VIB(n),VIB(n−1)データの更
新を行なう。 第6図の如きタイミングをつくり出す方法とし
ては種々のものがある。第7図と第8図は、その
一例を示している。第7図はタイムミングカウン
タで、51は14段のカウンタでCKを入力とし、
P0〜P13を出力する。P0〜P2は2進化5進のカウ
ントを行ない、P3〜P13は2進の計数を行なう。
{P5,P4}は、命令タイムスロツトITS1〜4を表
わすコード、{P10〜P6}の5ビツトは処理タイム
スロツトPTS1〜32を表わすコード、{P13,
P12,P11}は、チヤンネルタイムスロツトCHS
1〜8を表わす3ビツトのコードに相当する。カ
ウンタ52は5段より成る20進カウンタで、
{Q4,Q3,Q2,Q1,Q0}を出力する。カウンタ
51と52は、同期している。カウンタ51と5
2の出力より第8図に示すタイミングパルスが
TPG22の内部でつくられる。CKは、125ns
(8MHz)の周波数である。P1,P2,3,4,
5より、,ITS1〜4,1〜4が得ら
れる。ITS1〜4信号は、第2図の出力指令信号
OC1〜12をつくり出すもとになる信号、
WRC1〜4は書き込み指令信号0〜
WR3をつくり出す元になる信号である。 第9図は、バツフアメモリ29に加えられるア
ドレスコードAD3とAD4、出力指令信号C
9、書込指令信号3を発生させる回路例であ
る。アドレスコードAD4は{P13,P12,P11},
AD3は、{P10〜P16)か{Q4〜Q0}をセレクタ
69で選択した一方である。3は、インバー
ト入力のアンドゲート70とインバート付オアゲ
ート71により作られた処理タイムスロツト
PTS1〜20におけるITS4に対応する4
である。アンドゲート60,61,62,63
は、{P10,P9,P8}={1,0,1}を検出する。
これは、PTS21〜24に相当する。このとき
はセレクタ69はQ4〜Q0を選択する。EXRゲ
ート64,65,66は{P7,P6,P5}と
{P13,P12,P11}の一致判定を行なう。アンドゲ
ート67はPTS21〜24の中でCHS番号に一
致したPTSの半区間を選択し、出力が“H”の
ときにOC9を出力する。したがつて、まとめる
と、PTS1〜20の中にITS4において、AD4
とAD3はそれぞれKとIを指定し、ITS4にお
いて3を出力し、第1表の命令7または11の
バツフアメモリ29(BUF(K,I))への書き
込みを行なう。PTS21〜24の間のCHS=K
に対応する2.5μsの間、C9は“H”となり、
BUF(K,I)のI=1〜20の内容が、アドレス
コードAD4とAD3にしたがつて出力される。 第10図は、第2図におけるシーケンサ23が
記憶している命令コードのフオーマツトの一例を
示すものである。操作用のPコード2ビツト、
データの転送または格納先を表わすデステイネー
シヨンコード3ビツト、データを取り出してくる
レジスタを示すソース1コード3ビツト、ソース
2コード4ビツトより成る。それぞれのコードの
意味を、第10図B〜Eに示している。Pコー
ドは、ALU26の機能を指定する。第1表に示
した12通りの命令の演算は、第10図の命令コー
ドによつて書き表わされる。第10図EのZER
Oは、AバスにZERを出力させることを味す
る。 第9図に例示したと同様の考え方で第10図の
命令コードと第1表のCHS,PTS,ITS,書き
込み線、出力コントロール線などにもとづいて、
インストラクシヨンデコーダ24や必要な制御信
号やタイミングパルスを発生させる回路を設計す
ることができる。 第11図は、第1表の命令群AとBの実行切り
替えのタイミングを示すものである。上から、チ
ヤンネルタイムスロツト、演算実行、J転送、割
込パルス、データ転送、KNフラグが示されて
いる。演算AまたはBは、処理タイムスロツト
PTS1〜20(第6図)で、20回実行される。
20回目の最終時に割込パルスが、第2図の
TPG22より、第1図のCPU3に出力される。
このとき、同時に、割込ベクタとして、CHS8
を示すコード{P13,P12,P11}が、第2図のデ
ータバスDBに出力される。CPU3は、この割込
ベクタ{P13,P12,P11}を読み取り、つぎの
CHSが1であることを知り、チヤンネル1の出
すべき音高が変化している場合、データ転送を行
なう。データ転送は、CPU3のデータバスから
第2図のデータバスDBへ行なわれる。そして、
ND(n)33、PN36、INH37および
ステータスFF41に所定のデータを書き込む。
そして、とくに、ステータスFFの中に含まれる
KNフラグフリツプフロツプ(FF)をセツト
する。KNフラグは、CHS1に対応する音の
高さが変更されたことを示す。KNフラグが
“1”のときは、命令群Aが読み出されてCHS1
の間に実行される。実行が終ると再び、割込パル
スが発生し、CHS1を示す割込ベクタが出力さ
れる。同時にKNフラグFFはリセツトされる。
割込パルスと割込ベクタ{P13,P12,P11}
に対応してCPU3は、つぎのCHS2で前回の音
高のままか、どうかを判断し、同じ音高を出すべ
きとはデータ転送が行なわれない。したがつてK
ONフラグは“0”のままである。このときは、
命令群Bが20回実行される。 命令群Aは、新たなND(n)データをもと
に、Jを算出するプログラムで、命令群Bは、前
回のJに対してビブラートデータの変化のみを修
正する命令群である。命令群AとBの読み出しと
切り替えは、第7図のカウンタ51の処理タイム
スロツトコード{P10〜P6}がPTS1〜20を示
す時間内で、命令タイムスロツトITS1〜4に対
応して命令群AとBを読み出し、KNフラグで
一方を選して出力するようにすれば行なえる。 CPU3から本発明の周波数制御装置へ転送す
べきデータ量は、第2図の実施例においては、N
OD(n)1ワード、PNが20ワード、INHが
20ワード、ステータスFF用1ワード、PRT用1
ワードで計43ワードで良い。 上記説明では、ビブラートデータ発生器42を
8チヤンネルに対して共通の1個とした。グライ
ド効果の場合には、グライドデータGL(n,k)
とGL(n−1,k),(k=1,2,……,8)を
各チヤンネルに対して独立に備えて、各CHS1
〜8に対応して、それぞれのデータを出力させる
ようにすれば、チヤンネルごとに独立のグライド
がかけられる。 上記説明では、バツフアメモリ29として、
160ワード用意したが、一度の転送は20ワード単
位で行なわれるから、20ワード用意するようにし
てもよい。 第2図のパーシヤル番号メモリ36とハーモニ
ツクデータメモリ35については、前者が1ワー
ド当り13ビツト、後者が1ワード当り6ビツトで
良い。最大高調波次数を64としたが、これを増加
させるときには、パーシヤル番号メモリのワード
数64を増加させ、かつ、ハーモニツクデータの1
ワードを6ビツトからさらに増やせばよい。ハー
モニツクデータを直接CPU3から転送するよう
にしてもよいが、第2図の実施例の方が転送デー
タ量が少なくてすむ。また、本発明の実施例で
は、多数の高調波次数のうち一部を省略して、歯
抜け状の周波数制御値である飛越数Jを発生させ
ることができる。また、パーシヤル番号メモリ3
6の20ワードのRAMには、別のパーシヤル番号
を与えるように説明したが、任意の複数ワードに
同じパーシヤル番号を格納し、非高調波メモリ3
7に、少し異なつたINHデータを書き込むと、
非常に近い周波数の2つ以上の周波数成分の発生
が可能になる。すなわちコーラス効果が得られ
る。 鍵盤楽器のうちでもピアノでは、鍵盤の音域に
対して、低域ではピツチが下がり気味、高域では
ピツチが上がり気味であつて、1オクターブが正
確に1:2の周波数比になつていない。この現象
をピツチエクステンドと呼ぶことができる。この
ためには、このずれを発生させるためのRMを
設け、このRMを、ND(n)のデータによ
りアクセスして、ノートオクターブに対応するず
れの量を出力させ、この量を差分アドレスとして
ALU26で加えるようにしてもよい。また、非
高調波メモリ37に書込むデータに、上記ずれを
含ませることもできる。 なお、非高調波性をもたない楽音を発生させる
には、INH周波数としてゼロ値を書き込めばよ
いことは云うまでもない。 上記説明では、データフオーマツトとして一部
に2進化3進表示をするようにした。この代りに
2進化12進、2進化6進などの表示も可能であ
る。また、完全な2進化表示でデータを表示しか
つ演算し、最後にこれを、ノートデータの部分を
含むより高位の桁について、2進化3進変換する
ことにより、オクターブデータを得るようにして
もよい。このためには2−3進変換ROMを設け
ればよい。 上記第2図の実施例では、ND(n)用のレ
ジスタを1個のみとした。これらのレジスタや
RAMの数を8チヤンネル分設ければ、演算手順
は、A群だけで良くなる。このように、構成と演
算手順とには関連があり、本実施例に限らず種々
のものがあるが、これらの説明については省略す
る。 上記説明では、正弦波合成のための飛越数Jを
計算する手順と構成として述べたが、正弦波以外
の波形を読み出す方式の波形発生器のための、周
波数制御にも使うことができる。たとえば、20本
の高調波成分でなく、1つの波形に対してJを1
つだけ発生させる場合にも、上記と同様の考え方
で最適構成ができる。 <ポルタメント効果> 第2図の実施例において、ポルタメント効果に
対応して、飛越数Jを徐々に変化させることもで
きるようにしている。第2図の実施例では、1チ
ヤンネルすなわちCHS1についてのみポルタメ
ントがかかるようにしたものを示している。 まず先述のとおり、ポルタメントモードでは、
今回のノートオクターブデータがND(n)3
3に、前回のノートオクターブデータがND
(n−1)34に格納される。と同時に、ポルタ
メントスピードと押鍵間隔ND(n)−ND
(n−1)に対応する増分を表わすデータがPRT
32に格納される。このデータはそのままあるい
は若干の変換を受けてポルタメント変換器におい
て格納される。 第1表の命令群Cは、ポルタメントの増減判別
を行なう。命令Oは、前回のND(n−1)に
増分Δを加える。命令1は、その結果が、目標値
であるND(n)に到達したか、丁度一致した
か、越えたかを、比較判断する。CPはCompare
の意味である。この比較の結果、ALU26は、
その内部のフラグFLGを設定する。ALU26の
フラグFLGとしては、ゼロフラグZと符号フラ
グSを設ける。これらのフラグは、通常の加減算
器に付属して設けられ、ゼロフラグZは演算結果
が全ビツト共“0”のときに“1”となり、それ
以外では“0”になるフリツプフロツプ、符号フ
ラグSは、演算結果の最上位ビツトが“1”のと
きに“1”となり、それ以外では“0”になるフ
リツプフロツプで構成される。命令1の比較結果
と、増分Δの符号を表わすΔSとにより、命令2
と3の一方が実行される。命令2は、現状のノー
トオクターブデータND(n−1)にΔを加算
したものを、新たなノートオクターブデータN
D(n−1)として格納する。命令3は、最終目
標であるND(n)を、新たなND(n−1)
として格納する。以上の命令群Cによつて、ポル
タメント効果において、増分Δを加算することに
よりピツチが目標のノートオクターブデータN
D(n)に達していないか、丁度か、あるいは目
標値を越えてしまうかを判断し、その結果にもと
づいて、基本波や高調波のセント尺度上の周波数
を増分Δだけ増やす命令群Bを実行するか、ある
いは、目標値ND(n)にもとづく到達点での
演算を行なう命令群Aを実行するかを選択させ
る。 第12図は、3つのフラグΔS,Z,Sの組み
合わせ状態により、命令0〜11のうち実行される
ものがどれになるかを示したものである。命令0
と1は毎回実行される。命令1における演算結果
であるフラグZ,SとΔSとにより、命令3と命
令群A(命令4〜7)とが実行される場合と、命
令2と命令群B(命令8〜11)とが実行される場
合とに分類される。前者は、増分Δの累算により
目標値ND(n)に丁度達するか、越えてしま
う場合である。後者は、増分Δを累算しても、ま
だ目標値ND(n)に達しない場合である。 第13図はポルタメントモードにおけるタイミ
ングチヤートである。演算が実施される処理タイ
ムスロツトPTSは、命令群CはPTS32におい
て、命令群AとBはPTS1〜20において実行
される。PTS20の終りまたはPTS21の初め
に割込パルスが発生し第1図のCPU3に対して、
新たなデータを要求する。このとき、CHSコー
ド{P13,P12,P11}が割込ベクターとしてデー
タバスDBに出力され、CPU3は、いま、どの
CHSにあるかまた、つぎのCHSが何かを知るこ
とができる。もしも鍵が押しかえられていて、新
たなノートオクターブに移るべき状態になつてい
れば、CPU3は、新たなND(n)、前回のN
OD(n−1)、PN,INHの一群のデータとス
テータスフラグデータをデータ転送する。ステー
タスデータの中にはKNフラグが含まれてお
り、KNフラグFFを“1”にする。ポルタメ
ントモードでは、このKNフラグにかかわら
ず、演算処理をすればよい。まず、CHS1の直
前のCHS8のPTS32で命令群Cの命令0〜3
を実行する。ただし命令2と3の一方は第12図
のフラグΔS,Z,Sにより、その一方の実行は
無視される。このあと、上記フラグの状況に従つ
て命令群AまたはBがCHS1のPTS1〜20に
おいて実行される。 命令群Cの読み出しは、PTSが32すなわち処
理タイムスロツトコード{P10〜P6}が{111111}
になるタイミングにおいて、命令0〜3を示すア
ドレスコードを順次シーケンサ23内の命令R
Mに加えて命令0〜3を読み出すようにすればよ
い。命令2と3の一方を無視するには、読み出さ
れた命令出力をフラグΔS,Z,Sのコードにし
たがつてゲートするようにすればよい。 命令群AとBの選択については、処理タイムス
ロツトコード{P10〜P6}が0〜19を示すタイミ
ングにおいて命令群AとBを読み出す下位アドレ
スコード2ビツトを{P5,P4}により発生させ、
命令群AとBとを区別するアドレスコードの上位
2ビツトをフラグΔS,Z,Sの組み合わせによ
り指定して、4ビツトのアドレスを加えることに
より命令RM内の命令4〜7と8〜11とを選択
的に読み出すようにすればよい。 第14図は、第4図において示したデータ構造
をもつデータの演算を行なうALU26のうち加
算器の例である。N1とN0は2進化3進数である
ため、下位S5からの桁上げCsとAバス上のN1,
N0およびBバス上のN1,N0を入力として、出力
であるCバス上のN1,N0と上位への桁上げCNが
第14図Aの真理値表のように決まる。Bはハー
ドウエアの例である。80はAバスとBバス上のS5
〜S0の6ビツトを入力する2進加算器、82はA
バスとBバス上のO5〜O0,N3,N2を入力とする
2進加算器、81は真理値表のパターンをもつ読
み出し専用メモリ(POM)である。Csは2進加
算器80のキヤリー、CNはROM81から出力さ
れるキヤリーである。同様の考え方で、減算器や
比較器も構成できる。 第2図におけるビブラートデータ発生器42
は、デイジタル方式の正弦波発生器のようなもの
でよい。たとえば、ビブラート信号の波形を記憶
したROMから、上記VIB(n)、VIB(n−1)を
更新するタイミングにおいて、RMを読み出
し、レジスタにそれぞれ書き込むようにしたもの
でよい。 オクターブシフタ30は、バツフアメモリ29
の出力を1ビツト〜必要ビツトまでシフトした複
数組のコードを、それぞれに対応するゲートに加
えてこれらのゲートのうちの1組を、{O4,O3,
O2,O1,O0}のコードで選択するようにすれば
よい。オクターブコードは、本実施例では5ビツ
トあるから、25=32種のオクターブが取り得るけ
れども、人の聴き得る周波数レンジは、20KHz〜
20Hzとして、103倍10オクターブであるから、
ビツトシフトの可能性としては、10通り位と考え
てよい。このときは、MSBのO4を省いてもよ
い。 第4図において、データは、O4〜S0までの15
ビツトを扱いうるように考えた。第4図B〜Eの
ようにデータ長が15ビツト以下の場合には、その
上下の余分のビツトは、“0”が並ぶようにすれ
ばよいことは云うまでもない。負数においては、
2の補数表示や1の補数表示などどの表示をとる
かによつて異なるが、後者では最上位に“1”を
出力し他に“0”を出力させる、前者では上位全
ビツトに“1”を出力させるようにすればよい。
1の補数の場合、第4図Eの場合符号ビツトV6
を最上位として使用すればよい。 以上のように第2図の実施例においては、第4
図と共に説明したフオーマツトの各データを、手
順を追つて演算することによつて、飛越数Jを計
算するようにした。ポルタメントモード(第13
図)と通常のノーマルモード(第11図)との切
り替えは、第2図のステータスFFの中にN
RMAL/PRTAMETOのモードビツトを用意
しておき、CPU3からこのビツトに“1”を送
るとノーマルモード、“0”を送るとポルタメン
トモードとし、モードビツトにしたがつて、命令
読出しを切りかえるようにすればよい。なお、ノ
ーマルモードでは、PRT32(第2図)にゼロ
を書き込む。Δがゼロになるようにしておく。 第15図は、指数変換の他の実施例である。3
8は第2図と同じEXP38でJi,pを記憶している。
39−1は{N3〜S3}の7ビツトに対するアド
レスをもつ差分ROMで、96の指数サンプル値の
差分値(Ji+1,0−Ji,0)を記憶している。出力は5
ビツトである。39−2は{S2,S1,S0}の3ビ
ツトに応じて、差分値の補間値を出力するための
簡易化された掛算用RMである。すなわち、
(Ji-1,0−Ji,0)×j/8を記憶している。このように
す ると、量子化誤差が少し増えるが、メモリのサイ
ズが768×5=3840ビツトから、96×5+25+3×
5=1760ビツトに減る。 上記第3図Aでは1オクターブを2048〜4095に
割当てた。したがつて、12ビツトである。この場
合、12平均律の音は、±0.78125セントの誤差内に
なる。しかし、低域周波数ではオクターブコード
にしたがつてビツトシフトされて、しかも低位側
へシフトされることも考えられる。このときに
は、12ビツトの下位が切り捨てられることにな
り、8〜9ビツトになることもある。このときに
は、上記誤差が増える。9ビツトのときには、3
ビツトシフトされたものであるから誤差は8倍で
±6.25セントになつてしまう。しかし周知のよう
に、9ビツトでは、239,253,268,284,301,
319,338,358,379,402,451の12個の数字の組
み合わせのとき、12平均律からの誤差は±12セン
ト以下となる。したがつて、Cとして、2048の代
りに、253×8=2024をCとし、239×16=3824を
Bとすれば、12ビツトで最も高精度のセントアド
レスから飛越数への変換ができる。 以上のように本発明は、音高情報、正高調波周
波数情報の非高調波情報を格納する格納手段と、
上記格納手段に結合され格納された情報を伝送す
る少なくとも1本のバスラインと、上記バスライ
ンに接続された加減算などの演算を行なう演算器
と、演算結果を格納する格納手段と、演算結果を
上記バスラインに出力する装置を備え、上記演算
器を時分割で複数回使用することにより、上記各
情報の演算を行なうようにしたものであるから、
演算器の使用効率が高く、また信号伝送線として
バスを共用でき、さらにRAMやROMを中心と
した繰返し構造がとれるため集積回路化したとき
に小さいチツプサイズにできるという特徴を有す
る。 特に、非高調波周波数を、正高調波周波数から
の差セント値として扱うような構成にしたので、
楽音の音質の設定がやりやすくなり、従来にな
い、ベルや鐘などの音色を設定、発生しやすくな
る。 また、12平均率にしたがつて、音階の演算を2
進化3の倍数進演算にしたので効率的な演算回路
で構成できるという効果がある。
とBが、8チヤンネル、各チヤンネルで20本のス
ペクトルに対する飛越数Jを計算する手順を示し
ている。命令群Aは命令4〜7、命令群は命令8
〜11により成つている。各命令の内容は、命令内
容により示される。たとえば命令4はND(n)
とVIB(n)とを加算し、ワーキングレジスタ
WREG2に格納することを意味する。命令5は
ワーキングレジスタWREG2の内容と、ハーモ
ニツクデータHMD(I)とを読み出して、それらを
加えてWREG2に格納する。命令6は、WREG
2の内容と、インハーモニシテイデータINH(I)
とを加算し、レジスタLGJ(K,I)に格納す
る。命令7は、レジスタLGJ(K,I)の内容
をアドレスコードとして、指数変換テーブル
EXP38と差分指数変換テーブルDEXP39に
与えて、それぞれの出力を加えて、バツフアメモ
リBUF(K,I)29に格納する。ここで、I
は、後述する処理タイムスロツト(PTS)を表
わすと共に、各チヤンネルにおけるスペクトルの
番号をも表わしている。I=1,2,……,20で
ある。Kはチヤンネルタイムスロツト(CHS)
を表わしている。K=1,2,……,8である。
CHSについては後述する。 命令群Bも第1表より同様にその演算内容の意
味を読み取ることができる。命令8におけるΔは
零としておく。命令群Aは、ノートオクターブデ
ータND(n)が変更されたときに実行され、
それ以降は、命令群Bが実行される。命令群Bで
は、ND(n),HMD(I),INH()が変化し
ないので、これらの計算をせず、前回の値L
GJ(K,I)からVIB(n−1)を引いてVIB
(n)の新しい値に対しての計算を行ない指数変
換を実行する。ノートオクターブデータND
(n)が更新されると一度命令群Aにもどりその
あと再び命令群Bを実行する。 第1表において、ITSは命令タイムスロツト
で、ITS1〜4まであり、命令0,4,8はITS
1で実行されることを示している。また、それぞ
れの命令実行時において活性化される書き込み
線、書き込みパルス、出力コントロール線を示し
ている。 以上の命令を実行するには、チヤンネルタイム
スロツトCHS、処理タイムスロツトPTS、命令
タイムスロツトITSの所定の時刻に、第2図のプ
ログラムカウンタ21、タイミングパルスジエネ
レータ22、シーケンサ23、インストラクシヨ
ンデコーダ24が動作する必要がある。以下に、
タイミングについて説明する。 第6図は、第2図の実施例のタイミンングを示
す図である。第6図Aは、正弦波波形のサンプル
並びを示すもので、ある1つの正弦波波形のサン
プル周期は20μsである。第6図Bは、20μsの中を
拡大したもので、この中に8×20=160個のタイ
ムスロツトがあり、160個のサンプルが存在する。
各サンプルは、125μsきざみで処理される。チヤ
ンネル1(CH1)には、20個のサンプルがある。
CH2〜8も同様である。一方、第6図Cは、A
に同期しながら、飛越数Jの計算を行なうタイミ
ングである。160μsを単位とするチヤンネルタイ
ムスロツトCHSが1〜8まで設けられている。
CHS1では、チヤンネル1のJ計算が行なわれ、
以下順に対応するチヤンネルJ計算が行なわれ
る。160×8=1280μs(1.28ms)周期で各チヤン
ネルのJ計算が繰り返される。第6図Dは、各チ
ヤンネルタイムスロツトCHSの内部を表わした
もので、例として、CHS1を拡大している。
CHS1の中には、5μsを単位として、処理タイム
スロツトPTSが1〜32まである。PTS(I)、I
=1〜20では、チヤンネル1における、20個のス
ペクトル(正弦波形)に対応する周波数を決める
飛越数を計算する。そして、PTS21の前半の
2.5μsにおいて、計算された20個のJの値を第6
図Fに示すように125nsきざみで、正弦波発生器
9(第1図)へ転送する。この転送のタイミング
は、CHS1〜8で異なる。たとえば、CHS8で
はPST24の後半で実行される。第6図Eは、
各処理タイムスロツトPTS1〜20の中味を拡
大したものである。PTS1〜20は、それぞれ、
命令タイムスロツトITS1〜4の4つの部分に分
かれている。それぞれは1.25μsの長さである。こ
れらの命令タイムスロツトITSにおいて前記第1
表の命令が実行される。PTS1〜20の間は、
第2図の実施例において、ALU26を中心とす
る演算が行なわれる。PTS21〜32の間に、
第2図におけるMIF25を中心とするデータの
新たな書き込みをデータバスDBを介して行な
い、かつ、VIB(n),VIB(n−1)データの更
新を行なう。 第6図の如きタイミングをつくり出す方法とし
ては種々のものがある。第7図と第8図は、その
一例を示している。第7図はタイムミングカウン
タで、51は14段のカウンタでCKを入力とし、
P0〜P13を出力する。P0〜P2は2進化5進のカウ
ントを行ない、P3〜P13は2進の計数を行なう。
{P5,P4}は、命令タイムスロツトITS1〜4を表
わすコード、{P10〜P6}の5ビツトは処理タイム
スロツトPTS1〜32を表わすコード、{P13,
P12,P11}は、チヤンネルタイムスロツトCHS
1〜8を表わす3ビツトのコードに相当する。カ
ウンタ52は5段より成る20進カウンタで、
{Q4,Q3,Q2,Q1,Q0}を出力する。カウンタ
51と52は、同期している。カウンタ51と5
2の出力より第8図に示すタイミングパルスが
TPG22の内部でつくられる。CKは、125ns
(8MHz)の周波数である。P1,P2,3,4,
5より、,ITS1〜4,1〜4が得ら
れる。ITS1〜4信号は、第2図の出力指令信号
OC1〜12をつくり出すもとになる信号、
WRC1〜4は書き込み指令信号0〜
WR3をつくり出す元になる信号である。 第9図は、バツフアメモリ29に加えられるア
ドレスコードAD3とAD4、出力指令信号C
9、書込指令信号3を発生させる回路例であ
る。アドレスコードAD4は{P13,P12,P11},
AD3は、{P10〜P16)か{Q4〜Q0}をセレクタ
69で選択した一方である。3は、インバー
ト入力のアンドゲート70とインバート付オアゲ
ート71により作られた処理タイムスロツト
PTS1〜20におけるITS4に対応する4
である。アンドゲート60,61,62,63
は、{P10,P9,P8}={1,0,1}を検出する。
これは、PTS21〜24に相当する。このとき
はセレクタ69はQ4〜Q0を選択する。EXRゲ
ート64,65,66は{P7,P6,P5}と
{P13,P12,P11}の一致判定を行なう。アンドゲ
ート67はPTS21〜24の中でCHS番号に一
致したPTSの半区間を選択し、出力が“H”の
ときにOC9を出力する。したがつて、まとめる
と、PTS1〜20の中にITS4において、AD4
とAD3はそれぞれKとIを指定し、ITS4にお
いて3を出力し、第1表の命令7または11の
バツフアメモリ29(BUF(K,I))への書き
込みを行なう。PTS21〜24の間のCHS=K
に対応する2.5μsの間、C9は“H”となり、
BUF(K,I)のI=1〜20の内容が、アドレス
コードAD4とAD3にしたがつて出力される。 第10図は、第2図におけるシーケンサ23が
記憶している命令コードのフオーマツトの一例を
示すものである。操作用のPコード2ビツト、
データの転送または格納先を表わすデステイネー
シヨンコード3ビツト、データを取り出してくる
レジスタを示すソース1コード3ビツト、ソース
2コード4ビツトより成る。それぞれのコードの
意味を、第10図B〜Eに示している。Pコー
ドは、ALU26の機能を指定する。第1表に示
した12通りの命令の演算は、第10図の命令コー
ドによつて書き表わされる。第10図EのZER
Oは、AバスにZERを出力させることを味す
る。 第9図に例示したと同様の考え方で第10図の
命令コードと第1表のCHS,PTS,ITS,書き
込み線、出力コントロール線などにもとづいて、
インストラクシヨンデコーダ24や必要な制御信
号やタイミングパルスを発生させる回路を設計す
ることができる。 第11図は、第1表の命令群AとBの実行切り
替えのタイミングを示すものである。上から、チ
ヤンネルタイムスロツト、演算実行、J転送、割
込パルス、データ転送、KNフラグが示されて
いる。演算AまたはBは、処理タイムスロツト
PTS1〜20(第6図)で、20回実行される。
20回目の最終時に割込パルスが、第2図の
TPG22より、第1図のCPU3に出力される。
このとき、同時に、割込ベクタとして、CHS8
を示すコード{P13,P12,P11}が、第2図のデ
ータバスDBに出力される。CPU3は、この割込
ベクタ{P13,P12,P11}を読み取り、つぎの
CHSが1であることを知り、チヤンネル1の出
すべき音高が変化している場合、データ転送を行
なう。データ転送は、CPU3のデータバスから
第2図のデータバスDBへ行なわれる。そして、
ND(n)33、PN36、INH37および
ステータスFF41に所定のデータを書き込む。
そして、とくに、ステータスFFの中に含まれる
KNフラグフリツプフロツプ(FF)をセツト
する。KNフラグは、CHS1に対応する音の
高さが変更されたことを示す。KNフラグが
“1”のときは、命令群Aが読み出されてCHS1
の間に実行される。実行が終ると再び、割込パル
スが発生し、CHS1を示す割込ベクタが出力さ
れる。同時にKNフラグFFはリセツトされる。
割込パルスと割込ベクタ{P13,P12,P11}
に対応してCPU3は、つぎのCHS2で前回の音
高のままか、どうかを判断し、同じ音高を出すべ
きとはデータ転送が行なわれない。したがつてK
ONフラグは“0”のままである。このときは、
命令群Bが20回実行される。 命令群Aは、新たなND(n)データをもと
に、Jを算出するプログラムで、命令群Bは、前
回のJに対してビブラートデータの変化のみを修
正する命令群である。命令群AとBの読み出しと
切り替えは、第7図のカウンタ51の処理タイム
スロツトコード{P10〜P6}がPTS1〜20を示
す時間内で、命令タイムスロツトITS1〜4に対
応して命令群AとBを読み出し、KNフラグで
一方を選して出力するようにすれば行なえる。 CPU3から本発明の周波数制御装置へ転送す
べきデータ量は、第2図の実施例においては、N
OD(n)1ワード、PNが20ワード、INHが
20ワード、ステータスFF用1ワード、PRT用1
ワードで計43ワードで良い。 上記説明では、ビブラートデータ発生器42を
8チヤンネルに対して共通の1個とした。グライ
ド効果の場合には、グライドデータGL(n,k)
とGL(n−1,k),(k=1,2,……,8)を
各チヤンネルに対して独立に備えて、各CHS1
〜8に対応して、それぞれのデータを出力させる
ようにすれば、チヤンネルごとに独立のグライド
がかけられる。 上記説明では、バツフアメモリ29として、
160ワード用意したが、一度の転送は20ワード単
位で行なわれるから、20ワード用意するようにし
てもよい。 第2図のパーシヤル番号メモリ36とハーモニ
ツクデータメモリ35については、前者が1ワー
ド当り13ビツト、後者が1ワード当り6ビツトで
良い。最大高調波次数を64としたが、これを増加
させるときには、パーシヤル番号メモリのワード
数64を増加させ、かつ、ハーモニツクデータの1
ワードを6ビツトからさらに増やせばよい。ハー
モニツクデータを直接CPU3から転送するよう
にしてもよいが、第2図の実施例の方が転送デー
タ量が少なくてすむ。また、本発明の実施例で
は、多数の高調波次数のうち一部を省略して、歯
抜け状の周波数制御値である飛越数Jを発生させ
ることができる。また、パーシヤル番号メモリ3
6の20ワードのRAMには、別のパーシヤル番号
を与えるように説明したが、任意の複数ワードに
同じパーシヤル番号を格納し、非高調波メモリ3
7に、少し異なつたINHデータを書き込むと、
非常に近い周波数の2つ以上の周波数成分の発生
が可能になる。すなわちコーラス効果が得られ
る。 鍵盤楽器のうちでもピアノでは、鍵盤の音域に
対して、低域ではピツチが下がり気味、高域では
ピツチが上がり気味であつて、1オクターブが正
確に1:2の周波数比になつていない。この現象
をピツチエクステンドと呼ぶことができる。この
ためには、このずれを発生させるためのRMを
設け、このRMを、ND(n)のデータによ
りアクセスして、ノートオクターブに対応するず
れの量を出力させ、この量を差分アドレスとして
ALU26で加えるようにしてもよい。また、非
高調波メモリ37に書込むデータに、上記ずれを
含ませることもできる。 なお、非高調波性をもたない楽音を発生させる
には、INH周波数としてゼロ値を書き込めばよ
いことは云うまでもない。 上記説明では、データフオーマツトとして一部
に2進化3進表示をするようにした。この代りに
2進化12進、2進化6進などの表示も可能であ
る。また、完全な2進化表示でデータを表示しか
つ演算し、最後にこれを、ノートデータの部分を
含むより高位の桁について、2進化3進変換する
ことにより、オクターブデータを得るようにして
もよい。このためには2−3進変換ROMを設け
ればよい。 上記第2図の実施例では、ND(n)用のレ
ジスタを1個のみとした。これらのレジスタや
RAMの数を8チヤンネル分設ければ、演算手順
は、A群だけで良くなる。このように、構成と演
算手順とには関連があり、本実施例に限らず種々
のものがあるが、これらの説明については省略す
る。 上記説明では、正弦波合成のための飛越数Jを
計算する手順と構成として述べたが、正弦波以外
の波形を読み出す方式の波形発生器のための、周
波数制御にも使うことができる。たとえば、20本
の高調波成分でなく、1つの波形に対してJを1
つだけ発生させる場合にも、上記と同様の考え方
で最適構成ができる。 <ポルタメント効果> 第2図の実施例において、ポルタメント効果に
対応して、飛越数Jを徐々に変化させることもで
きるようにしている。第2図の実施例では、1チ
ヤンネルすなわちCHS1についてのみポルタメ
ントがかかるようにしたものを示している。 まず先述のとおり、ポルタメントモードでは、
今回のノートオクターブデータがND(n)3
3に、前回のノートオクターブデータがND
(n−1)34に格納される。と同時に、ポルタ
メントスピードと押鍵間隔ND(n)−ND
(n−1)に対応する増分を表わすデータがPRT
32に格納される。このデータはそのままあるい
は若干の変換を受けてポルタメント変換器におい
て格納される。 第1表の命令群Cは、ポルタメントの増減判別
を行なう。命令Oは、前回のND(n−1)に
増分Δを加える。命令1は、その結果が、目標値
であるND(n)に到達したか、丁度一致した
か、越えたかを、比較判断する。CPはCompare
の意味である。この比較の結果、ALU26は、
その内部のフラグFLGを設定する。ALU26の
フラグFLGとしては、ゼロフラグZと符号フラ
グSを設ける。これらのフラグは、通常の加減算
器に付属して設けられ、ゼロフラグZは演算結果
が全ビツト共“0”のときに“1”となり、それ
以外では“0”になるフリツプフロツプ、符号フ
ラグSは、演算結果の最上位ビツトが“1”のと
きに“1”となり、それ以外では“0”になるフ
リツプフロツプで構成される。命令1の比較結果
と、増分Δの符号を表わすΔSとにより、命令2
と3の一方が実行される。命令2は、現状のノー
トオクターブデータND(n−1)にΔを加算
したものを、新たなノートオクターブデータN
D(n−1)として格納する。命令3は、最終目
標であるND(n)を、新たなND(n−1)
として格納する。以上の命令群Cによつて、ポル
タメント効果において、増分Δを加算することに
よりピツチが目標のノートオクターブデータN
D(n)に達していないか、丁度か、あるいは目
標値を越えてしまうかを判断し、その結果にもと
づいて、基本波や高調波のセント尺度上の周波数
を増分Δだけ増やす命令群Bを実行するか、ある
いは、目標値ND(n)にもとづく到達点での
演算を行なう命令群Aを実行するかを選択させ
る。 第12図は、3つのフラグΔS,Z,Sの組み
合わせ状態により、命令0〜11のうち実行される
ものがどれになるかを示したものである。命令0
と1は毎回実行される。命令1における演算結果
であるフラグZ,SとΔSとにより、命令3と命
令群A(命令4〜7)とが実行される場合と、命
令2と命令群B(命令8〜11)とが実行される場
合とに分類される。前者は、増分Δの累算により
目標値ND(n)に丁度達するか、越えてしま
う場合である。後者は、増分Δを累算しても、ま
だ目標値ND(n)に達しない場合である。 第13図はポルタメントモードにおけるタイミ
ングチヤートである。演算が実施される処理タイ
ムスロツトPTSは、命令群CはPTS32におい
て、命令群AとBはPTS1〜20において実行
される。PTS20の終りまたはPTS21の初め
に割込パルスが発生し第1図のCPU3に対して、
新たなデータを要求する。このとき、CHSコー
ド{P13,P12,P11}が割込ベクターとしてデー
タバスDBに出力され、CPU3は、いま、どの
CHSにあるかまた、つぎのCHSが何かを知るこ
とができる。もしも鍵が押しかえられていて、新
たなノートオクターブに移るべき状態になつてい
れば、CPU3は、新たなND(n)、前回のN
OD(n−1)、PN,INHの一群のデータとス
テータスフラグデータをデータ転送する。ステー
タスデータの中にはKNフラグが含まれてお
り、KNフラグFFを“1”にする。ポルタメ
ントモードでは、このKNフラグにかかわら
ず、演算処理をすればよい。まず、CHS1の直
前のCHS8のPTS32で命令群Cの命令0〜3
を実行する。ただし命令2と3の一方は第12図
のフラグΔS,Z,Sにより、その一方の実行は
無視される。このあと、上記フラグの状況に従つ
て命令群AまたはBがCHS1のPTS1〜20に
おいて実行される。 命令群Cの読み出しは、PTSが32すなわち処
理タイムスロツトコード{P10〜P6}が{111111}
になるタイミングにおいて、命令0〜3を示すア
ドレスコードを順次シーケンサ23内の命令R
Mに加えて命令0〜3を読み出すようにすればよ
い。命令2と3の一方を無視するには、読み出さ
れた命令出力をフラグΔS,Z,Sのコードにし
たがつてゲートするようにすればよい。 命令群AとBの選択については、処理タイムス
ロツトコード{P10〜P6}が0〜19を示すタイミ
ングにおいて命令群AとBを読み出す下位アドレ
スコード2ビツトを{P5,P4}により発生させ、
命令群AとBとを区別するアドレスコードの上位
2ビツトをフラグΔS,Z,Sの組み合わせによ
り指定して、4ビツトのアドレスを加えることに
より命令RM内の命令4〜7と8〜11とを選択
的に読み出すようにすればよい。 第14図は、第4図において示したデータ構造
をもつデータの演算を行なうALU26のうち加
算器の例である。N1とN0は2進化3進数である
ため、下位S5からの桁上げCsとAバス上のN1,
N0およびBバス上のN1,N0を入力として、出力
であるCバス上のN1,N0と上位への桁上げCNが
第14図Aの真理値表のように決まる。Bはハー
ドウエアの例である。80はAバスとBバス上のS5
〜S0の6ビツトを入力する2進加算器、82はA
バスとBバス上のO5〜O0,N3,N2を入力とする
2進加算器、81は真理値表のパターンをもつ読
み出し専用メモリ(POM)である。Csは2進加
算器80のキヤリー、CNはROM81から出力さ
れるキヤリーである。同様の考え方で、減算器や
比較器も構成できる。 第2図におけるビブラートデータ発生器42
は、デイジタル方式の正弦波発生器のようなもの
でよい。たとえば、ビブラート信号の波形を記憶
したROMから、上記VIB(n)、VIB(n−1)を
更新するタイミングにおいて、RMを読み出
し、レジスタにそれぞれ書き込むようにしたもの
でよい。 オクターブシフタ30は、バツフアメモリ29
の出力を1ビツト〜必要ビツトまでシフトした複
数組のコードを、それぞれに対応するゲートに加
えてこれらのゲートのうちの1組を、{O4,O3,
O2,O1,O0}のコードで選択するようにすれば
よい。オクターブコードは、本実施例では5ビツ
トあるから、25=32種のオクターブが取り得るけ
れども、人の聴き得る周波数レンジは、20KHz〜
20Hzとして、103倍10オクターブであるから、
ビツトシフトの可能性としては、10通り位と考え
てよい。このときは、MSBのO4を省いてもよ
い。 第4図において、データは、O4〜S0までの15
ビツトを扱いうるように考えた。第4図B〜Eの
ようにデータ長が15ビツト以下の場合には、その
上下の余分のビツトは、“0”が並ぶようにすれ
ばよいことは云うまでもない。負数においては、
2の補数表示や1の補数表示などどの表示をとる
かによつて異なるが、後者では最上位に“1”を
出力し他に“0”を出力させる、前者では上位全
ビツトに“1”を出力させるようにすればよい。
1の補数の場合、第4図Eの場合符号ビツトV6
を最上位として使用すればよい。 以上のように第2図の実施例においては、第4
図と共に説明したフオーマツトの各データを、手
順を追つて演算することによつて、飛越数Jを計
算するようにした。ポルタメントモード(第13
図)と通常のノーマルモード(第11図)との切
り替えは、第2図のステータスFFの中にN
RMAL/PRTAMETOのモードビツトを用意
しておき、CPU3からこのビツトに“1”を送
るとノーマルモード、“0”を送るとポルタメン
トモードとし、モードビツトにしたがつて、命令
読出しを切りかえるようにすればよい。なお、ノ
ーマルモードでは、PRT32(第2図)にゼロ
を書き込む。Δがゼロになるようにしておく。 第15図は、指数変換の他の実施例である。3
8は第2図と同じEXP38でJi,pを記憶している。
39−1は{N3〜S3}の7ビツトに対するアド
レスをもつ差分ROMで、96の指数サンプル値の
差分値(Ji+1,0−Ji,0)を記憶している。出力は5
ビツトである。39−2は{S2,S1,S0}の3ビ
ツトに応じて、差分値の補間値を出力するための
簡易化された掛算用RMである。すなわち、
(Ji-1,0−Ji,0)×j/8を記憶している。このように
す ると、量子化誤差が少し増えるが、メモリのサイ
ズが768×5=3840ビツトから、96×5+25+3×
5=1760ビツトに減る。 上記第3図Aでは1オクターブを2048〜4095に
割当てた。したがつて、12ビツトである。この場
合、12平均律の音は、±0.78125セントの誤差内に
なる。しかし、低域周波数ではオクターブコード
にしたがつてビツトシフトされて、しかも低位側
へシフトされることも考えられる。このときに
は、12ビツトの下位が切り捨てられることにな
り、8〜9ビツトになることもある。このときに
は、上記誤差が増える。9ビツトのときには、3
ビツトシフトされたものであるから誤差は8倍で
±6.25セントになつてしまう。しかし周知のよう
に、9ビツトでは、239,253,268,284,301,
319,338,358,379,402,451の12個の数字の組
み合わせのとき、12平均律からの誤差は±12セン
ト以下となる。したがつて、Cとして、2048の代
りに、253×8=2024をCとし、239×16=3824を
Bとすれば、12ビツトで最も高精度のセントアド
レスから飛越数への変換ができる。 以上のように本発明は、音高情報、正高調波周
波数情報の非高調波情報を格納する格納手段と、
上記格納手段に結合され格納された情報を伝送す
る少なくとも1本のバスラインと、上記バスライ
ンに接続された加減算などの演算を行なう演算器
と、演算結果を格納する格納手段と、演算結果を
上記バスラインに出力する装置を備え、上記演算
器を時分割で複数回使用することにより、上記各
情報の演算を行なうようにしたものであるから、
演算器の使用効率が高く、また信号伝送線として
バスを共用でき、さらにRAMやROMを中心と
した繰返し構造がとれるため集積回路化したとき
に小さいチツプサイズにできるという特徴を有す
る。 特に、非高調波周波数を、正高調波周波数から
の差セント値として扱うような構成にしたので、
楽音の音質の設定がやりやすくなり、従来にな
い、ベルや鐘などの音色を設定、発生しやすくな
る。 また、12平均率にしたがつて、音階の演算を2
進化3の倍数進演算にしたので効率的な演算回路
で構成できるという効果がある。
第1図は本発明を適用したデイジタル式の電子
楽器のブロツク図、第2図は本発明の一実施例の
ブロツク図、第3図は指数変換テーブルの説明
図、第4図は上記実施例で用いるデータのフオー
マツトの一例を示す図、第5図は上記実施例のノ
ートコードを表わす図、第6図は上記実施例の動
作タイミングチヤートを示す図、第7図はタイミ
ングパルス発生用のカウンタを示す図、第8図は
タイミングパルスチヤートを示す図、第9図はデ
コーダを示す図、第10図は命令コードのフオー
マツトの一例を示す図、第11図はノーマルモー
ドにおける大局的なタイミングチヤートの図、第
12図はポルタメントモードにおける命令の実行
パターンを示す図、第13図はポルタメントモー
ドにおける大局的動作タイミングチヤートを示す
図、第14図は加算器の動作説明図、第15図は
指数変換テーブルの一例を示す図である。 1……鍵盤部、2……操作部、3……CPU、
4……RAM、5……RM、6……エンベロー
プパラメータROM、7……周波数パラメータ
ROM、8……周波数制御装置、9……正弦波発
生器、10……エンベロープデータ発生器、11
……掛算器、12……タイムスロツト制御装置、
13……位相変調器、14……デイジタルアナロ
グ変換器、21……プログラムカウンタ、22…
…タイミングパルス発生器、23……シーケン
サ、24……命令解読器、25……マイコンイン
タフエース回路、26……演算装置、27……ワ
ーキングレジスタ、28……RAM、29……バ
ツフアメモリ、30……オクターブシフタ、31
……ポルタメントデータ変換器、32……ポルタ
メントレジスタ、33,34……ノートオクター
ブレジスタ、35……ハーモニツクデータメモ
リ、36……パーシヤル番号メモリ、37……非
高調波メモリ、38……指数変換テーブル、39
……差分指数変換テーブル、40……ゲート、4
1……ステータスフリツプフロツプ、42……ビ
ブラートデータ発生器。
楽器のブロツク図、第2図は本発明の一実施例の
ブロツク図、第3図は指数変換テーブルの説明
図、第4図は上記実施例で用いるデータのフオー
マツトの一例を示す図、第5図は上記実施例のノ
ートコードを表わす図、第6図は上記実施例の動
作タイミングチヤートを示す図、第7図はタイミ
ングパルス発生用のカウンタを示す図、第8図は
タイミングパルスチヤートを示す図、第9図はデ
コーダを示す図、第10図は命令コードのフオー
マツトの一例を示す図、第11図はノーマルモー
ドにおける大局的なタイミングチヤートの図、第
12図はポルタメントモードにおける命令の実行
パターンを示す図、第13図はポルタメントモー
ドにおける大局的動作タイミングチヤートを示す
図、第14図は加算器の動作説明図、第15図は
指数変換テーブルの一例を示す図である。 1……鍵盤部、2……操作部、3……CPU、
4……RAM、5……RM、6……エンベロー
プパラメータROM、7……周波数パラメータ
ROM、8……周波数制御装置、9……正弦波発
生器、10……エンベロープデータ発生器、11
……掛算器、12……タイムスロツト制御装置、
13……位相変調器、14……デイジタルアナロ
グ変換器、21……プログラムカウンタ、22…
…タイミングパルス発生器、23……シーケン
サ、24……命令解読器、25……マイコンイン
タフエース回路、26……演算装置、27……ワ
ーキングレジスタ、28……RAM、29……バ
ツフアメモリ、30……オクターブシフタ、31
……ポルタメントデータ変換器、32……ポルタ
メントレジスタ、33,34……ノートオクター
ブレジスタ、35……ハーモニツクデータメモ
リ、36……パーシヤル番号メモリ、37……非
高調波メモリ、38……指数変換テーブル、39
……差分指数変換テーブル、40……ゲート、4
1……ステータスフリツプフロツプ、42……ビ
ブラートデータ発生器。
Claims (1)
- 【特許請求の範囲】 1 基音および高調波からなる発生すべき楽音の
基音の音高周波数に対応する音高情報、上記楽音
の音調波次数に関する正高調波周波数情報、上記
高調波周波数が基音の周波数の整数倍から偏移す
る量を表す非高調波情報を入力とし、 1オクターブ区間を等間隔の所定のセント間隔
を持つ複数の区間に分け、上記区間の境界に対し
てセント尺度上のアドレスを割り付け、上記音高
情報をセントアドレスの形式で与え、上記正高調
波周波数情報を高調波の基本周波数に対応するセ
ントアドレスからの差の形のセントアドレスとし
て出力させ、上記非高調波情報を上記偏移に対応
した非高調波差セントアドレスの形で与え、 上記音高情報のセントアドレス、上記正高調波
周波数情報に対応する差セントアドレス、および
上記非高調波差セントアドレスを加算して和セン
トアドレスを得、和セントアドレスを周波数に正
比例する周波数制御値に変換する変換器に加えて
周波数制御値を得るようにするものであつて、 上記音高情報、正高調波数情報、非高調波情報
を格納する格納手段と、上記格納手段に結合され
た情報伝達用の少なくとも1本のバスラインと、
上記バスラインに接続された演算器と、その演算
結果を格納する格納手段と、演算結果を上記バス
ラインに出力する装置と、上記変換器とを備えた
周波数制御装置。 2 特許請求の範囲第1項の記載において、音高
情報の格納手段、正高調波周波数情報の格納手
段、非高調波情報の格納手段、および演算結果の
格納手段を発音チヤンネル数に対応して設け、上
記各格納手段を少なくとも1本のバスラインに結
合し、上記バスラインに演算器を結合して、上記
各情報の演算を上記演算器において時分割多重で
行なうことを特徴とする周波数制御装置。 3 特許請求の範囲第1項の記載において、セン
トアドレスの中位の桁を2進化12進、2進化6
進、2進化3進のうちの1つで表示し、演算器の
中位を上記表示に対応した演算とするようにした
周波数制御装置。 4 特許請求の範囲第1項の記載において、セン
トアドレスを2進表示とし、演算器を2進演算器
とし、演算結果のセントアドレスの中位を2進化
12進、2進化6進、2進化3進のうちの1つに変
換する変換器でオクターブコードとノートコード
に分け、上記ノートコードを上記変換器に加えて
その出力を上記オクターブコードでビツトシフト
することにより、周波数制御装置を得るようにし
た周波数制御装置。 5 特許請求の範囲第1項の記載において、変換
器は少なくとも1オクターブ区間内のセントアド
レス数(L×M)のうち、M間隔のL個について
対応する周波数制御値を記憶した第1の記憶装置
と上記L個のうち隣接する周波数制御値の差分値
をもとにした補間値を記憶した第2の記憶装置を
備え、上記第1と第2の記憶装置にセントアドレ
スを加えて両記憶装置の出力を演算器で加算する
ことにより上記区間内に対応する周波数制御値を
得るようにした周波数制御装置。 6 特許請求の範囲第5項の記載において、第2
の記憶装置は、隣接する周波数制御値の差分値を
記憶する第3の記憶装置と、上記第3の記憶装置
の出力と、セントアドレスの下位の所定ビツトを
入力とする第4の記憶装置とより成り、上記第4
の記憶装置の出力が上記第2の記憶装置の出力と
なるようにしたことを特徴とする周波数制御装
置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP57083449A JPS58199393A (ja) | 1982-05-17 | 1982-05-17 | 周波数制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP57083449A JPS58199393A (ja) | 1982-05-17 | 1982-05-17 | 周波数制御装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS58199393A JPS58199393A (ja) | 1983-11-19 |
| JPH033239B2 true JPH033239B2 (ja) | 1991-01-18 |
Family
ID=13802744
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP57083449A Granted JPS58199393A (ja) | 1982-05-17 | 1982-05-17 | 周波数制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS58199393A (ja) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6145288A (ja) * | 1984-08-09 | 1986-03-05 | カシオ計算機株式会社 | 電子楽器 |
| JP2679042B2 (ja) * | 1987-03-31 | 1997-11-19 | カシオ計算機株式会社 | 入力波形信号制御装置 |
| JP2773601B2 (ja) * | 1993-06-11 | 1998-07-09 | ヤマハ株式会社 | 信号処理装置 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5674298A (en) * | 1979-11-21 | 1981-06-19 | Nippon Musical Instruments Mfg | Electronic musical instrument |
-
1982
- 1982-05-17 JP JP57083449A patent/JPS58199393A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS58199393A (ja) | 1983-11-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4201105A (en) | Real time digital sound synthesizer | |
| EP0035658B1 (en) | Electronic musical instrument | |
| KR0135601B1 (ko) | 전자 악기의 디지탈 신호 발생기 | |
| USRE30736E (en) | Tone wave generator in electronic musical instrument | |
| JPH027078B2 (ja) | ||
| US5340938A (en) | Tone generation apparatus with selective assignment of one of tone generation processing modes to tone generation channels | |
| US5248842A (en) | Device for generating a waveform of a musical tone | |
| EP0235538B1 (en) | Waveform generator for electronic musical instrument | |
| JPH033239B2 (ja) | ||
| JPS5895790A (ja) | 楽音発生装置 | |
| USRE31648E (en) | System for generating tone source waveshapes | |
| US5113740A (en) | Method and apparatus for representing musical tone information | |
| JPH0522920B2 (ja) | ||
| JPH033238B2 (ja) | ||
| JPH0776871B2 (ja) | 楽音発生システム | |
| JPH0310959B2 (ja) | ||
| US4468996A (en) | Note group selectable musical effects in an electronic musical instrument | |
| JP3435702B2 (ja) | 楽音発生装置 | |
| JPS6352399B2 (ja) | ||
| JPS6322312B2 (ja) | ||
| JP2510090Y2 (ja) | 楽音信号発生装置 | |
| EP0255151B1 (en) | Electronic musical instrument | |
| JPS5926790A (ja) | 楽器用組合せ楽音発生器 | |
| Ellis et al. | Fairlight cmi review (emm jun 1981) | |
| JPH0760315B2 (ja) | 電子楽器 |