[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

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
Application number
JP57083449A
Other languages
Japanese (ja)
Other versions
JPS58199393A (en
Inventor
Kinji Kawamoto
Kazuhiro Murase
Tetsuhiko Kaneaki
Masataka Nikaido
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP57083449A priority Critical patent/JPS58199393A/en
Publication of JPS58199393A publication Critical patent/JPS58199393A/en
Publication of JPH033239B2 publication Critical patent/JPH033239B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】[Detailed description of the invention]

本発明は、電子楽器に適した、周波数を表現す
るためのデータを発生する周波数制御装置に関
し、特にデイジタル方式で周波数を制御するよう
にしたものである。 従来、デイジタル方式を用いた楽音発生装置に
は種々の提案がなされている。これらの中で、正
弦波や楽音の一波形のデイジタルデータをメモリ
に記憶しておき、これを順次繰返して読み出して
連続的な楽音波形とし、これに、エンベロープ信
号に相当するエンベロープデータを掛け算して、
その振幅値を変化させることにより、音の立上り
から立下りまでの楽音信号を形成するようにした
ものがある。発生する波形の周波数を変更するに
は、デイジタルデータの各サンプルを順次連続的
に読み出さずに、所定のサンプル数だけ飛び越し
て読み出せばよい。飛越数を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=1200log2k1) ……(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=1200log2k1),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表に示す。
The present invention relates to a frequency control device suitable for electronic musical instruments that generates data for expressing frequencies, and particularly to one that controls frequencies using a digital method. Conventionally, various proposals have been made for musical tone generators using digital systems. Among these, digital data of a sine wave or a musical sound waveform is stored in memory, and this is read out sequentially to create a continuous musical sound waveform, which is then multiplied by envelope data corresponding to an envelope signal. hand,
There is a device in which a musical tone signal from the rise to the fall of a sound is formed by changing the amplitude value. In order to change the frequency of the generated waveform, it is sufficient to skip over a predetermined number of samples and read each sample of the digital data, instead of reading each sample sequentially. If the jump number is J, the frequency can be set in direct proportion to J. Instructions on how to generate such signals were published in 1969 by THE MIT
The book “The Technology” published by PRESS
of Computer Music", pages 134 to 138. Also, the magazine IEEE Trans.on Audio
and Electroacoustics, Volume 19, No. 1, 48-58,
1971 Document A Digital Frequeney Synthesizer”
shows the specific configuration. A more specific and practical system based on these known examples is described in Japanese Patent Application Laid-Open No. 58-65493. For these musical tone synthesis methods, it is necessary to generate and supply the jump number J. The present invention relates to a method for generating and supplying a jumping number J, and is particularly devised to efficiently generate various frequencies. Next, the relationship between the method of the present invention and the conventional example will be described. Conventionally, music synthesizers generate a key voltage V K corresponding to each key on the keyboard, and then superimpose a frequency setting voltage V F and a vibrato voltage V V on this voltage to obtain V 1 = (V K + V F + V V ), and through the exponential converter we get V 0 = K 1 exp (V K + V F + V V ), and the voltage V 0
determines the oscillation frequency of the voltage controlled oscillator (VCO). When the voltage V F is 0V, the key voltage
A frequency determined by V K , that is, a frequency corresponding to the musical scale (261.625 Hz for C 3 ) is generated. Normal key voltage V K is 1V per octave
is considered standard. When 1V is added as voltage V F , the frequency rises by one octave and 513.25Hz is generated.
This hits C 4 as well as the second harmonic of C 3 . If a voltage other than 1V is applied as the voltage V F , arbitrary harmonic components such as the third and fourth harmonic components can be obtained. The vibrato voltage V V modulates the frequency up and down around each of the above frequencies, but what is important here is that even if V K and V F have various values, the rate of frequency fluctuation is , the pitch fluctuation remains constant if V V is constant.
Japanese Patent Laid-Open No. 1981-81824 is known as a method in which such a method is replaced with digital calculation. However, such conventional devices have drawbacks such as being unstable because they are made of analog circuits, and requiring a large number of highly accurate digital arithmetic units. Furthermore, as shown in Japanese Patent Application Laid-open No. 74298/1983, some digital processing methods handle frequency information on a cent scale, but they cannot handle non-harmonic components. The present invention corresponds to a musical sound waveform generation method or apparatus that generates a frequency proportional to a frequency control value, and provides the following features:
The present invention relates to a device for calculating frequency control values, and in particular, it is capable of obtaining frequency control values for generating musical tones having non-integer harmonics of the fundamental frequency. For this purpose, we define the fundamental pitch frequency and positive harmonic frequency by the number of cents, and furthermore, by newly introducing the number of cents difference between the non-integer harmonic and the positive harmonic, we This allows for flexible expression. In addition, as a second purpose, by focusing on the basic principle of the 12-average ratio of the scale, the middle digit of the cent address is given special treatment, making it possible to perform rational calculations. In order to achieve the above object, the present invention provides pitch information corresponding to the pitch frequency of the fundamental tone of a musical tone to be generated consisting of a fundamental tone and harmonics; positive harmonic information regarding the harmonic order of the musical tone; Inputting non-harmonic information representing an amount of deviation from an integral multiple of the frequency, dividing at least one octave interval into a plurality of intervals having predetermined cent intervals at equal intervals,
Allocate an address on the cent scale to the boundary of the above section, give the pitch information in the form of a cent address, output the positive harmonic frequency information as a cent address in the form of a difference from the pitch information, and Non-harmonic information is provided in the form of a non-harmonic difference cent address corresponding to the deviation, and a cent address of the pitch information, a difference cent address corresponding to the positive harmonic frequency information, and a non-harmonic difference cent address are provided. The system adds the addresses to obtain a sum cent address, and adds the converter to convert the sum cent address to a frequency control value that is directly proportional to the frequency to obtain a frequency control value. A storage means for storing wave number information and non-harmonic information, at least one bus line for information transmission coupled to the storage means, an arithmetic unit connected to the bus line, and a calculation result thereof stored. The configuration includes a storage means, a device for outputting the calculation result to the bus line, and the converter. FIG. 1 is a block diagram of an electronic musical instrument employing the frequency control device of the present invention. 1 is a keyboard section, 2 is an operation section consisting of a tone tablet switch, a vibrato effect on/off switch, a volume for setting the depth of the vibrato effect, etc., and 3 is a central processing unit (CPU), which is used in computers etc. 4 is a read/write storage device (random access memory, usually
5 is a read-only storage device (read-only memory, usually called RM) in which a program that determines the operation of the CPU 3 is stored; 6 is a
A ROM 7 stores envelope parameters among parameters for synthesizing timbres, and a ROM 7 stores data related to frequencies among parameters for synthesizing timbres. 8 is a frequency control device of the present invention, 9 is the above-mentioned sine wave generator, 10 is an envelope data generator, 1
1 is a multiplier that multiplies the sine wave and envelope data; 12 is a time slot control device that adds predetermined results of time-division multiplexed multiplication results or replaces them with the order of time-division multiplexing; time division multiplexed phase modulator, 14
is a digital-to-analog converter, and 15 and 16 are electroacoustic transducers. Keyboard section 1, operation section 2, CPU 3, RAM 4,
ROM5, ROM7, frequency control device 8, and envelope data generator 10 are coupled by a data bus, an address bus, and a control line.
The method of coupling data buses, address buses, and control lines in this manner is a well-known method for configuring minicomputers and microcomputers. Eight to 16 data buses are used, and data is transmitted and received on these bus lines not in one direction but in multiple directions in a time-division manner.
A plurality of address buses, for example 16, are prepared, and normally the CPU 3 outputs the address code, and other parts receive the address code. Control lines are usually memory request lines (),
An I/request line (IRQ), a read line (), a write line (), etc. are used. indicates reading and writing memory,
IRQ indicates the retrieval of the contents of the input/output device (I/), indicates the timing to read data from the memory or I/, and indicates the timing to write data to the memory or I/.
An example of a device using such a control line is the microprocessor Z80 manufactured by Zilog. Next, the operation of the electronic musical instrument shown in FIG. 1 will be described. The keyboard section 1 is configured such that a plurality of key switches are divided into a plurality of groups and the N-FF states of the key switches in the group can be sent to the data bus all at once. For example, for a 5-octave keyboard
The 61 keys are divided into 11 groups: 10 groups of 6 keys (half an octave) and 1 group of only 1 key, and one address code is assigned to each group. An address code indicating one of the above groups arrives on the address line,
When IRQ is applied, the keyboard section 1 decodes the address code and outputs 6-bit or 1-bit data indicating N-FF of the key switch in the corresponding group to the data bus. These can be constructed using decoders, bus drivers and some gate circuits. Of the operation section 2, the tablet switch is connected to the keyboard section 1.
A similar configuration can be taken. Regarding the setting state of the volume, the voltage output from the volume is converted into a digital code by an analog-to-digital converter, and this is read out using an address code and a control line IRQ. The CPU 3 reads the instruction code from the address of the RM5 corresponding to the code of the internal program counter, decodes it, and performs arithmetic operations.
It performs tasks such as reading and writing logical operation data and jumping instructions by changing the contents of the program counter. The steps for these tasks are RM
It is written in 5. First, the CPU 3 reads a command for importing data of the keyboard section 1 from the ROM 5, and imports codes indicating N-FF of each key of the keyboard section 1 for each group. Then, the pressed key code is assigned to a finite channel of the musical tone generator. Next, the CPU 3 sequentially reads a group of instructions from the RM 5 for importing data from the operation section 2, decodes them, outputs the address code and control signal IRQ corresponding to the operation section 2, and outputs the corresponding address code and control signal IRQ to the data bus. Output the code that expresses the switch and volume status of part 2,
Load into CPU3. Then, the CPU 3 knows which tone of musical tone signal should be synthesized. Now that it has become clear which channel of the musical tone generation section should generate which tone at which frequency, the CPU 3 selects the desired tone from the ROM 7 which stores data regarding the frequency of each tone. It outputs an address code storing frequency parameters and a control signal, reads the desired frequency parameters onto the data bus, takes them into the CPU 3, and writes them into the frequency control device 8. In order to write, the CPU 3 outputs the address code corresponding to the data register provided inside the frequency control device 8, and at the same time outputs the address code to the data register provided inside the frequency control device 8.
When ORQ and are output, data representing the frequency parameter being output on the data bus at the rising edge of the signal is written into the data register. Next, timbre parameters representing the content of the timbre to be output are read from the RM 6 and written into a register inside the envelope generator 10. Next, when a sound output command is given to both the frequency control device 8 and the envelope generator 10, the frequency control device 8 gives the jump number J to the sine wave generator 9, and the envelope generator 10 generates envelope data. . The sine wave data output from the sine wave generator 9 and the envelope data are multiplied to give an envelope to the sine wave. The sine wave data and envelope data are generated by being time-division multiplexed, respectively. Time division multiplexing is performed, for example, by 160 multiplexing, allocating 20 sine waves per channel, and providing 8 channels. Normally, one musical tone is synthesized by combining 20 sine waves.
Therefore, as known from the Fourier series formula, 20 sine wave data are added.
Data addition between time slots for this purpose is performed by the time slot converter 12. The time slot converter adds predetermined data from among the sine wave data strings modulated with envelope data, which are time-division multiplexed and input into 160 time slots, to reduce the number of time slots, or The time slots are exchanged like the time division multiplex converter described in Japanese Patent Publication No. 58-103244. The time-division multiplexing phase converter 13 performs multiple types of modulation simultaneously by time-division multiplexing, like the "digital musical tone modulation device" described in Japanese Patent Application Laid-Open No. 58-83894. The output of the time division multiplexing phase modulation device 13 is converted to an analog-to-digital converter 14.
The signals are converted into analog signals and outputted from electroacoustic transducers 15 and 16. Although not shown in FIG. 1, the time slot converter 12 and the time division multiplex phase modulation device 13 are also connected to the CPU 3 via address buses, data buses, and control lines, and are controlled by the operating section 2. The time slot conversion and modulation conditions can be changed and set in response to the settings of the timbre and modulation effect that are performed at the same time. In the frequency control of the present invention, first, the note octave of each key, the frequency of each harmonic, etc. are arranged on a cent scale and processed. The note and octave position of the fundamental wave of the musical tone to be output, the position of harmonics relative to the fundamental wave, the relative shift of non-harmonics, etc. are expressed in cents, and the cent address can be added or subtracted on the cent scale. Then, the cent address for the cent value of the actual frequency component is obtained, and this is subjected to exponential conversion. In order to digitize the system and find the jump number J for a large number of spectra, consideration is given to quantizing and handling one octave on the cent scale and performing arithmetic processing by time division multiplexing. Also, the timing is considered so that the calculated J is appropriately transferred to the sine wave generator 9. The present invention relates to a frequency control device 8 as a part of an electronic musical instrument as shown in FIG. It is. One embodiment is shown in FIG. The frequency control device in Fig. 2 includes a data bus DB,
address bus ADR, control line IRQ and
It is connected to the CPU 3 through the WR and chip select line CS, receives frequency parameters, decodes the code of the address bus ADR with the microcomputer interface circuit (MIF) 25, and writes it to the internal register group. A plurality of necessary J i are calculated through a mechanism for calculating the jump number J, and are supplied to the sine wave generator 9 through the buffer memory 29 and octave shifter 30. First, the constituent elements will be explained. 21 is a program counter (PC) that supplies timing pulses, and 22 is a timing that extracts logic from timing pulses to create necessary address codes, or receives control flag (FLG) signals to create control signals. A pulse generator (TPG), 23 is a sequencer (SEQ) consisting of an RM, which is read out by timing pulses and control signals, and stores the contents and procedures of arithmetic operations and logical operations, which will be described later.24 is a sequencer The contents are decoded and the address code, output command signal (OC1~12), write command signal (0~
3) It is an instruction decoder that outputs an operation command signal (P code), etc. 25 is the microcomputer interface circuit (MIF) described earlier.
26 is an arithmetic unit (ALU) that performs addition, subtraction, and comparison between two inputs, the A bus and the B bus, outputs the operation result to the C bus, and records the sign, upper bit, etc. of the operation result. Output as FLG.
FLG is supplied to TPG22. 27 is the working register (WREG)
It consists of two words of memory, WREG1 and WREG2, and accepts input from the C bus and supplies output to the B bus. AD2 selects one of the two words and writes it at the rising edge of 1, and provides an output when C8 is "H". 28 is a RAM consisting of 160 words x 15 bits, which receives input from the C bus and supplies output to the D bus. The 160 words are divided into 8 channels of 20 words each, and any one word within the 20 words can be converted into a 5-bit address code.
Specified by AD1, any one of the 8 channels
Select the channel with the 3-bit address code AD4, and write the data on the C bus at the rising edge of AD4. The output remains on the D bus. However, the upper five bits of the output are supplied to the buffer memory 29. Buffer memory 29 is 160 words x
17-bit RAM, C bus data and RAM2
The upper 5 bits of 8 are accepted as input. 160
The words are divided into 8 channels of 20 words each, and one word out of the 20 words is used as an address code.
Select with AD3, select one of the 8 channels with address code AD4, write input data at the rising edge of 3, and output when OC9 is "H". The output of buffer memory 29 is supplied to octave shifter 30. Based on the code of the upper 5 bits of the buffer memory 29, the lower data is bit-shifted by a predetermined number of bits and output. This output is transferred to a register corresponding to a predetermined address among the registers provided inside the sine wave generator 9 and storing the jump number. 33 is the note octave register (ND
(n)) to get the latest note octave data,
It is accepted from the CPU 3 via the data bus DB and output to the A bus when necessary. MRW write
In step 2, reading is performed in OC2. 34 is a note octave register (ND(n-1)) which receives the previous note octave data from the CPU 3 via the data bus DB, and outputs it to the B bus when necessary. It also receives and stores intermediate processing data from the B bus. Write data from DB with 3, write from B bus with 0, and output to B bus with C3. 35
is a harmonic data memory (HMD), which is composed of 64 words x 13 bits RM.
Which of the 64 words is selected is determined by a 6-bit code output from the partial number memory 36. The partial number memory 36 is
Data bus DB with 20 words x 6 bits RAM
Accept input from. Select 1 word out of 20 words with address code AD1 and write at the rising edge of 4. The output is always supplied to harmonic data memory 35. The output of the harmonic data memory is output to the A bus when C4 is "H". 37 is non-harmonic memory (INH),
It consists of 20 words x 6 bits RAM.
1 word out of 20 words is address code AD
1 is selected, data bus is selected at the rising edge of 5.
DB data is written and output to the A bus when C5 is "H". Reference numeral 38 denotes an exponent conversion table (EXP) composed of RM. The D bus is input, and when C6 is "H", its contents are output to the A bus. 39 is a differential exponent conversion table (DEXP), which is composed of RM, takes the D bus as input, and when C6 is “H”, stores the stored contents in B.
Output to bus. The contents of these two tables will be described later. 40 is a gate which inputs the D bus and outputs to the B bus when C7 is "H". 32 is a portamento register (PRT) which accepts a code representing portamento speed from the data bus and stores it at the rising edge of 1. 31 is a portamento data converter, which generates frequency increase/decrease data based on the contents of the portamento register 32, and when C1 is "H"
Output to the A bus when . The same contents as the normal portamento register 32 are output. 42 is a vibrato data generator that generates a code representing a vibrato waveform, and C10 is set to "H".
When VIB(n) is connected to B bus, C11 is “H”
When VIB(n) is connected to the A bus, C12 is “H”
When , VIB (n-1) is output to the B bus. VIB
(n) represents the current vibrato data,
VIB(n-1) represents the previous vibrato data. 41 is status flip-flop (SFF)
Then, the data on the data bus DB is stored at the rising edge of 6, and the contents are supplied to the TPG 22. The TPG 22 generates an interrupt signal when the frequency control device requests new data from the external CPU 3;
The interrupt vector code indicating the interrupt contents is sent to the data bus.
Output on DB. When the output command signals C1 to C12 are "L", the outputs of the memories and registers corresponding to them become high impedance and A
We are trying not to have any impact on buses or B buses. <Data Structure> Next, the data structure before and after the index conversion mechanism C for frequency control performed in the present invention will be described. One octave has a frequency ratio of 1:2. As a number directly proportional to the frequency, the jumping number J
is defined as follows. Assume that the memory that stores one waveform of a sound source consists of 218 words (samples). Set the sample readout frequency to c
If KHz is used, the frequency of the output waveform will be c /2 18 Hz when all samples are read out one sample at a time.
This corresponds to the jump number J=1. Generally, the frequency for the jump number J can be expressed as F= c /2 18 × J ... (1). In the present invention, one octave is quantized on the cent scale, and the calculated frequency value expressed on the cent scale is converted into an interlaced number directly proportional to the frequency by exponential conversion. The method of index conversion will be described next. One octave is expressed in cents,
It will be 1200 cents. The ratio of the two frequencies A and F B is as follows in cent scale CE. CE (cent) = 1200log 2 (F A /F B ) …(2) If the jump numbers of frequencies A and F B are J A and J B , Let J B correspond to C on the equal-tempered 12 chromatic scale,
And if its value is 2048 and J A is expressed as J, then becomes. If this is written for the range of CE = 0 to 1200 (cents), it will look like Figure 3 A. Equation (5) is a curved line, which can be approximated by a broken line as follows. If you divide CE (0-1200) into 12 equal parts, you will get 100 cent intervals. This corresponds to the chromatic scale of 12 equal temperaments. Divide the 100 cents into 8 equal parts, making them 12.5 cents apart. Doing this will result in 12 x 8 = 96 points. Let J be J for these 96 points CE i =12.5×i (i=0 to L-1, L=96). Between i and i+1, further divide 12.5 cents into 8 equal parts. CE i,j = 12.5i + 12.5/8j ...(7) (i = 0 ~ L-1, L = 96 j = 0 ~ M-1, M = 8) CE i,j of equation (7) ( For j=1 to 7), linearly interpolated values are used. That is, J i,j becomes the following formula. In general J c : Number of jumps at the reference point L: Number of divisions in one octave M: Number of divisions within the linear interpolation section i = 0, 1, 2, ...L-1 j = 0, 1, 2, ...M- 1. As mentioned earlier, if L=96 and M=8
The 1200 cent interval is quantized into 768 points at intervals of 1.5625 cents. The error will be less than ±0.78125 cents. Assign addresses to these 768 points.
Let this be the cent address. Next, a method for calculating J i,j in equation (8) will be explained. According to FIG. 3, J is represented by 2048 to 4096 in binary 12 bits for one octave. Figure 3B shows the range of CE=0 to 100 (cents) in detail. 100 cents is divided equally into 12.5 cents. Equation (8) is It can be expressed as Express i as a binary coded 96-decimal number. Since 96 = 4 x 3 x 8, the upper digits can be represented by two binary digits, the middle digit by a binary coded ternary number, and the lower part by three binary digits. The middle bit only needs to be 2 bits, so the total is 7 bits. j is represented by three binary digits and is the lower order of i.
In other words, 96 x 8 = 768 points within 1200 cents is the 4th point.
It can be represented by 10-bit codes N3 to N0 and S5 to S0 in Figure A. This code is called a cent address, of which N 1 and N 0 are expressed in binary coded ternary notation. For such a value of (i, j), J i,p
Prepare 96 values for EXP38 in Figure 2. 96 addresses, each 12 bits, 96 x 12
= 1152-bit ROM. This J i,p corresponds to the first term of equation (10). Next, as a difference, it is a part of the second term of (10). Prepare in DEXP39 in Figure 2. Since the maximum value of DJ i,j is DJ 95 .7 =25.784 when i=95 and j=7, DJ i,j can be expressed as a 5-bit binary number.
Furthermore, there are 96×8=768 (i, j). Therefore, 768 St. Addresses, 786 x 5 =
It becomes RM of 3840 bits. The cent address input to the ROM of the EXP38 is the 7 bits {N 3 to N 0 , S 5 to S 3 } in FIG. N 0 , S 5
~S 0 } 10-bit code. EXP
By adding the outputs of 38 and DEXP39, the equation (10) becomes
J i,j is displayed as a 12-digit binary number. FIG. 4A represents a binary number or extended cent address representing a quantized pitch on a cent scale. O 4 , O 3 , O 2 , O 1 , O 0
represents an octave. N 3 , N 2 , N 1 , and N 0 represent each note of the 12 equal-tempered chromatic scale within one octave. Among these, (N 1 , N 0 ) is binary digit 3
Represents the base numbers (0,0), (0,1), and (1,0); (1,1) does not occur. Therefore, (N 3 ,
N 2 , N 1 , N 0 ) are decimal numbers. In Figure 5 (N 3
~N 0 ) and the musical scale. S 5 , S 4 , S 3 , S 2 ,
S 1 and S 0 are 6-bit binary numbers that represent each pitch of the semitone interval divided into 64 equal parts. 1 octave is 1200
Since a semitone is a cent and a semitone is 100 cents, {S 5 ~
S 0 } represents a 100 cent interval at 1.5625 set intervals. FIG. 4B shows the data format of ND(n), where the lower 4 bits indicate a note and the upper 4 bits indicate an octave. ND(n) corresponds to the fundamental frequency 1 of the musical tone with the specified octave and note. Figure 4C shows harmonic data representing the ratio of the frequency k of each harmonic component included in a harmonic musical tone to the fundamental frequency 1 in cents.
HMD k . HMD k = 1200log 2 ( k / 1 ) ... (12) (k = 1, 2, 3, ..., 64) expressed in binary. (H 12 ~ H 0 )
Using 13 bits, the accuracy is ±0.78125 cents,
2 8 = up to 256th harmonic can be achieved. {H 7 , H 6 } are expressed in binary coded ternary numbers like {N 1 , N 0 }. FIG. 4D is a format of inharmonicity data INH representing non-harmonicity. INH
is expressed as a deviation of several cents from the HMD data in FIG. FIG. 4E expresses transient or steady fluctuations such as vibrato and glide on a cent scale. If the range of fluctuation is within ±100 cents, it can be represented by a 7-bit code {V 6 to V 0 }. Of these, V6 becomes the sign bit. The procedure for determining the desired jump number J from the data shown in FIG. 4 will be explained. first,
Each symbol shall have the following meaning. (1) ND(n): The pitch frequency for note octave data (pitch information) at time n, expressed in cents address. (2) HMD k : The cents expression of the kth positive harmonic frequency relative to the fundamental frequency. Once expressed in binary (positive harmonic difference cent address) HMD k = 1200log 2 ( k / 1 ), k = k 1 (k = 1

2, 3..., 64) ...(13) (3) INH k : Cent display with a frequency shift from the k-th positive harmonic frequency, and expressed in binary (non-harmonic difference cent address) . If k = k 1 + d k , then INH k = 1200log 2 (k 1 + dk/k 1 )...(14) Basically, however, when INH k exceeds 100 cents, INH k below 100 cents is used for handling purposes. To find , do the following. INH k+p = 1200log 2 k 1 + p 1 + (d k − p 1 )/k 1 +
p 1 ...(15) (p = 0, 1, 2, 3, ..., and d k −p 1
0) That is, it is shifted by d k from the k-th harmonic, but it means that it is seen as shifted by (d k −p 1 ) from the (k+p)-th harmonic. (4) VIB(n): Displays the frequency deviation due to vibrato and glide at time n in cents,
and expressed in binary. (Modulation cent address) From the above variables, the cent display of the frequency of the k-th harmonic, that is, the cent address, can be determined with the symbol LGJ
Expressed as (i, j), LGJ i,j = ND (n) + VIB (n) + HMD k +
INH k ……(16) becomes. LGJ i,j has the data format shown in FIG. 4A. Among these, {N 3 , N 2 , N 1 , N 0 , S 5 ,
The 7 bits of S 4 , S 3 } are in 96-decimal notation and represent i in equation (10). Similarly, the three bits {S 2 , S 1 , S 0 } represent j. These codes can be converted to the EXP38 mentioned above.
By giving the address data of the exponent conversion table of DEXP39 and the differential exponent conversion table, exponent conversion can be performed according to equation (10). This is expressed by the following formula. J * i,j = EXP [LGJ i,p ] + DEXP [LGJ i,j ]
...(17) From Figure 3A, the exponent conversion table has a range of only one octave. J * i,j indicates a value within this range. If the range exceeds an octave, J * i,j may be bit-shifted according to the octave data {O 4 , O 3 , O 2 , O 1 , O 0 } shown in FIG. 4A. For example, when {O 4 -O 1 }=(00011), it is sufficient to shift 3 bits upward. As for how many bits to shift, use the sine wave generator 9
All you have to do is match it to the bit position. The above describes the data structure and the number of jumps J based on it.
The calculation procedure has been clarified. Although it is possible to realize a configuration in which equations (16), (17), and (18) are executed all at once, the embodiment of the present invention (Fig. 2)
Now, let's do it step by step. Various methods can be considered to execute equations (16), (17), and (18) step by step. Table 1 shows the procedure according to the configuration shown in FIG. 2 described above.

【表】 第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,P234
より、,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の倍数進演算にしたので効率的な演算回路
で構成できるという効果がある。
[Table] In Table 1, of instruction groups A, B, and C, A
and B show the procedure for calculating the jump number J for 8 channels and 20 spectra in each channel. Instruction group A is instructions 4 to 7, instruction group is instruction 8.
It consists of ~11. The content of each command is indicated by the command content. For example, instruction 4 is ND(n)
and VIB(n), and write the working register
This means storing in WREG2. Instruction 5 reads the contents of working register WREG2 and harmonic data HMD(I), adds them, and stores them in WREG2. Instruction 6 is WREG
2 contents and inharmonicity data INH(I)
are added and stored in register LGJ (K, I). Instruction 7 uses the contents of register LGJ (K, I) as an address code and converts it to an exponent conversion table.
It is applied to EXP 38 and differential index conversion table DEXP 39, and the respective outputs are added and stored in buffer memory BUF (K, I) 29. Here, I
represents a processing time slot (PTS), which will be described later, and also represents the spectrum number in each channel. I=1, 2, ..., 20. K is channel time slot (CHS)
It represents. K=1, 2, ..., 8.
CHS will be discussed later. Regarding instruction group B, the meaning of the operation contents can be similarly read from Table 1. Δ in instruction 8 is set to zero. Command group A is executed when note octave data ND(n) is changed,
After that, instruction group B is executed. In instruction group B, ND(n), HMD(I), and INH() do not change, so these calculations are not performed and the previous value L is used.
VIB by subtracting VIB (n-1) from GJ (K, I)
Perform calculations on the new value of (n) and perform exponential conversion. Note octave data ND
When (n) is updated, the program returns to instruction group A and then executes instruction group B again. In Table 1, ITS is an instruction time slot, and there are ITS1 to ITS4, and instructions 0, 4, and 8 are ITS
1 is executed. Also shown are write lines, write pulses, and output control lines that are activated when each instruction is executed. To execute the above instructions, the program counter 21, timing pulse generator 22, sequencer 23, and instruction decoder shown in FIG. 24 needs to work. less than,
Explain timing. FIG. 6 is a diagram showing the timing of the embodiment of FIG. FIG. 6A shows a sample arrangement of sinusoidal waveforms, and the sampling period of one sinusoidal waveform is 20 μs. FIG. 6B is an enlarged view of 20 μs, in which there are 8×20=160 time slots and 160 samples.
Each sample is processed in 125 μs steps. Channel 1 (CH1) has 20 samples.
The same applies to CH2 to CH8. On the other hand, Fig. 6C shows A
This is the timing to calculate the jump number J in synchronization with . Channel time slots CHS 1 to 8 are provided in units of 160 μs.
In CHS1, J calculation for channel 1 is performed,
Corresponding channel J calculations are performed in the following order. J calculation for each channel is repeated at a cycle of 160×8=1280 μs (1.28 ms). FIG. 6D shows the inside of each channel time slot CHS, and as an example, CHS1 is enlarged.
In CHS1, there are processing time slots PTS 1 to 32 in units of 5 μs. PTS(I), I
=1 to 20, calculate the jump number that determines the frequencies corresponding to 20 spectra (sine waveforms) in channel 1. And the first half of PTS21
At 2.5 μs, the 20 calculated values of J are
As shown in Figure F, the signal is transferred to the sine wave generator 9 (Figure 1) in steps of 125 ns. The timing of this transfer differs for CHS1 to CHS8. For example, in CHS8, it is executed in the latter half of PST24. Figure 6E is
This is an enlarged view of the contents of each processing time slot PTS1 to PTS20. PTS1 to 20 are respectively
It is divided into four parts: instruction time slots ITS1 to ITS4. Each is 1.25μs long. In these instruction time slots, the first
The instructions in the table are executed. Between PTS1 and 20,
In the embodiment of FIG. 2, calculations are performed centered on the ALU 26. Between PTS21 and 32,
New data is written mainly to the MIF 25 in FIG. 2 via the data bus DB, and VIB(n) and VIB(n-1) data are updated. There are various methods for creating the timing shown in FIG. FIG. 7 and FIG. 8 show an example. Figure 7 shows a timing counter, and 51 is a 14-stage counter with CK as input.
Output P 0 to P 13 . P 0 to P 2 perform binary coded quinary counting, and P 3 to P 13 perform binary counting.
{P 5 , P 4 } are codes representing instruction time slots ITS1 to ITS4, 5 bits of {P 10 to P 6 } are codes representing processing time slots PTS 1 to 32, {P 13 ,
P 12 , P 11 } is the channel time slot CHS
It corresponds to a 3-bit code representing 1 to 8. The counter 52 is a 20-decimal counter consisting of five stages.
Output {Q 4 , Q 3 , Q 2 , Q 1 , Q 0 }. Counters 51 and 52 are synchronized. counters 51 and 5
From the output of 2, the timing pulse shown in Figure 8 is obtained.
Created inside TPG22. CK is 125ns
(8MHz) frequency. P1 , P2 , 3 , 4 ,
5 , ITS1-4, 1-4 are obtained. The ITS1-4 signals are the base signals for producing the output command signals OC1-12 in FIG.
WRC1~4 are write command signals 0~
This is the signal that creates WR3. Figure 9 shows the address codes AD3 and AD4 added to the buffer memory 29 and the output command signal C.
9. This is an example of a circuit that generates the write command signal 3. Address code AD4 is {P 13 , P 12 , P 11 },
In AD3, either {P 10 to P 16 ) or {Q 4 to Q 0 } is selected by the selector 69. 3 is a processing time slot created by the AND gate 70 with invert input and the OR gate 71 with invert input.
4 corresponding to ITS4 in PTS1-20
It is. And gate 60, 61, 62, 63
detects {P 10 , P 9 , P 8 }={1,0,1}.
This corresponds to PTS21-24. At this time, the selector 69 selects Q4 to Q0 . EXR gates 64, 65, and 66 perform a match determination between {P 7 , P 6 , P 5 } and {P 13 , P 12 , P 11 }. The AND gate 67 selects the half section of the PTS that matches the CHS number among the PTS21 to 24, and outputs OC9 when the output is "H". Therefore, to summarize, in PTS1-20, in ITS4, AD4
and AD3 designate K and I, respectively, output 3 at ITS4, and write instruction 7 or 11 in Table 1 to buffer memory 29 (BUF (K, I)). CHS between PTS21 and 24=K
C9 becomes “H” for 2.5μs corresponding to
The contents of I=1 to 20 of BUF (K, I) are output according to address codes AD4 and AD3. FIG. 10 shows an example of the format of the instruction code stored in the sequencer 23 in FIG. 2-bit P code for operation,
It consists of a 3-bit destination code that indicates the data transfer or storage destination, a 3-bit source 1 code that indicates the register from which the data is taken out, and a 4-bit source 2 code. The meaning of each code is shown in FIGS. 10B-E. The P code specifies the function of the ALU 26. The operations of the 12 instructions shown in Table 1 are expressed by the instruction codes shown in FIG. Figure 10 E ZER
O wants to output ZER to the A bus. Based on the instruction code in Figure 10 and the CHS, PTS, ITS, write line, output control line, etc. in Table 1, using the same idea as illustrated in Figure 9,
The instruction decoder 24 and circuits that generate necessary control signals and timing pulses can be designed. FIG. 11 shows the timing of execution switching between instruction groups A and B in Table 1. From the top, channel time slot, operation execution, J transfer, interrupt pulse, data transfer, and KN flag are shown. Operation A or B is the processing time slot
PTS 1 to 20 (Figure 6) are executed 20 times.
At the end of the 20th time, the interrupt pulse is as shown in Figure 2.
The TPG 22 outputs the signal to the CPU 3 shown in FIG.
At this time, at the same time, CHS8 is used as an interrupt vector.
A code {P 13 , P 12 , P 11 } indicating this is output to the data bus DB in FIG. The CPU 3 reads this interrupt vector {P 13 , P 12 , P 11 } and executes the next
If it knows that CHS is 1 and the pitch to be played on channel 1 is changing, data transfer is performed. Data transfer is performed from the data bus of the CPU 3 to the data bus DB shown in FIG. and,
Predetermined data is written to ND(n) 33, PN36, INH37 and status FF41.
In particular, the KN flag flip-flop (FF) included in the status FF is set. The KN flag indicates that the pitch of the sound corresponding to CHS1 has been changed. When the KN flag is “1”, instruction group A is read and CHS1
executed between. When the execution is finished, an interrupt pulse is generated again and an interrupt vector indicating CHS1 is output. At the same time, KN flag FF is reset.
Interrupt pulse and interrupt vector {P 13 , P 12 , P 11 }
In response to this, the CPU 3 determines whether or not the previous pitch will remain the same in the next CHS 2, and data transfer will not be performed if the same pitch should be produced. Therefore K
The ON flag remains "0". At this time,
Instruction group B is executed 20 times. The instruction group A is a program that calculates J based on new ND(n) data, and the instruction group B is a program that corrects only changes in vibrato data with respect to the previous J. The reading and switching of instruction groups A and B are performed by reading out and switching instructions corresponding to instruction time slots ITS1 to ITS4 within the time period in which the processing time slot codes {P10 to P6 } of the counter 51 in FIG. 7 indicate PTS1 to PTS20. This can be done by reading out groups A and B, selecting one using the KN flag, and outputting it. In the embodiment of FIG. 2, the amount of data to be transferred from the CPU 3 to the frequency control device of the present invention is N
OD(n) 1 word, PN 20 words, INH
20 words, 1 word for status FF, 1 word for PRT
A total of 43 words is sufficient. In the above description, one vibrato data generator 42 is common to eight channels. In case of glide effect, glide data GL(n,k)
and GL(n-1,k), (k=1,2,...,8) are provided independently for each channel, and each CHS1
By outputting the respective data corresponding to 8, an independent glide can be applied to each channel. In the above explanation, as the buffer memory 29,
Although 160 words have been prepared, one transfer is performed in units of 20 words, so 20 words may be prepared. Regarding the partial number memory 36 and harmonic data memory 35 in FIG. 2, the former may have 13 bits per word, and the latter may have 6 bits per word. The maximum harmonic order is set to 64, but when increasing it, the number of words in the partial number memory must be increased to 64, and 1 of the harmonic data must be increased.
Just increase the number of words from 6 bits. Although the harmonic data may be transferred directly from the CPU 3, the amount of data to be transferred can be smaller in the embodiment shown in FIG. Further, in the embodiment of the present invention, it is possible to omit some of the many harmonic orders to generate a skip number J that is a toothless frequency control value. In addition, partial number memory 3
Although we explained that a different partial number is given to the 20-word RAM of 6, the same partial number can be stored in any plural words, and non-harmonic memory 3
When writing slightly different INH data to 7,
The generation of two or more frequency components of very close frequency becomes possible. In other words, a chorus effect can be obtained. Among keyboard instruments, the pitch of the piano tends to be lower in the low range and higher in the high range compared to the range of the keyboard, and the frequency ratio of one octave is not exactly 1:2. This phenomenon can be called pitch extend. To do this, an RM is provided to generate this shift, and this RM is accessed by the data of ND(n) to output the amount of shift corresponding to the note octave, and this amount is used as the difference address.
It may be added by ALU26. Further, the above deviation can also be included in the data written to the non-harmonic memory 37. It goes without saying that in order to generate a musical tone that does not have non-harmonic properties, it is sufficient to write a zero value as the INH frequency. In the above explanation, part of the data is displayed in binary coded ternary notation. Alternatively, display in binary coded 12 decimal notation, binary coded hexadecimal, etc. is also possible. It is also possible to obtain octave data by displaying and calculating data in complete binary representation, and then converting it into binary and ternary numbers for higher-order digits, including the note data part. good. For this purpose, a binary-ternary conversion ROM may be provided. In the embodiment shown in FIG. 2, there is only one register for ND(n). These registers and
If the number of RAMs is provided for 8 channels, the calculation procedure can be reduced to only group A. As described above, there is a relationship between the configuration and the calculation procedure, and there are various types other than those in this embodiment, but a description thereof will be omitted. In the above explanation, the procedure and configuration are described for calculating the jump number J for sine wave synthesis, but it can also be used for frequency control of a waveform generator that reads waveforms other than sine waves. For example, instead of 20 harmonic components, J is 1 for one waveform.
Even when only one is generated, an optimal configuration can be achieved using the same concept as above. <Portamento Effect> In the embodiment shown in FIG. 2, the number of jumps J can be gradually changed in response to the portamento effect. In the embodiment shown in FIG. 2, portamento is applied only to one channel, that is, CHS1. First of all, as mentioned earlier, in portamento mode,
This note octave data is ND(n)3
3, the previous note octave data is ND
(n-1)34. At the same time, portamento speed and key press interval ND(n) - ND
The data representing the increment corresponding to (n-1) is PRT
32. This data is stored as is or after some transformation in the portamento converter. Instruction group C in Table 1 determines whether portamento is increased or decreased. Instruction O adds an increment Δ to the previous ND(n-1). Instruction 1 compares and determines whether the result has reached, exactly matched, or exceeded the target value ND(n). CP is Compare
This is the meaning of As a result of this comparison, ALU26 is
Set its internal flag FLG. As the flag FLG of the ALU 26, a zero flag Z and a sign flag S are provided. These flags are attached to a normal adder/subtractor, and the zero flag Z is a flip-flop that becomes "1" when all bits of the operation result are "0" and becomes "0" otherwise.The sign flag S is a flip-flop. , is composed of a flip-flop which becomes "1" when the most significant bit of the operation result is "1" and becomes "0" otherwise. Based on the comparison result of instruction 1 and ΔS representing the sign of the increment Δ, instruction 2
or 3 is executed. Instruction 2 adds Δ to the current note octave data ND(n-1) and converts it into new note octave data N.
Store as D(n-1). Instruction 3 converts the final goal ND(n) to a new ND(n-1)
Store as . With the above instruction group C, in the portamento effect, by adding the increment Δ, the pitch is set to the target note octave data N.
A set of commands B that determines whether D(n) has not been reached, exactly, or exceeds the target value, and increases the frequency on the cent scale of the fundamental wave and harmonics by an increment Δ based on the result. , or execute a group of instructions A that performs calculations at the destination point based on the target value ND(n). FIG. 12 shows which of the instructions 0 to 11 will be executed depending on the combination of three flags ΔS, Z, and S. command 0
and 1 are executed every time. Depending on the flags Z, S and ΔS, which are the operation results of instruction 1, it is determined whether instruction 3 and instruction group A (instructions 4 to 7) are executed and instruction 2 and instruction group B (instructions 8 to 11) are executed. It is classified into cases in which it is executed. The former case is a case where the target value ND(n) is exactly reached or exceeded by accumulating the increments Δ. The latter is a case where the target value ND(n) is not yet reached even after accumulating the increments Δ. FIG. 13 is a timing chart in portamento mode. In the processing time slot PTS in which the operation is performed, instruction group C is executed in PTS32, and instruction groups A and B are executed in PTS1-20. An interrupt pulse is generated at the end of PTS20 or the beginning of PTS21 and is sent to CPU3 in Figure 1.
Request new data. At this time, the CHS code {P 13 , P 12 , P 11 } is output to the data bus DB as an interrupt vector, and CPU3
You can also find out what the next CHS is. If the key has been changed and it is time to move to a new note octave, CPU 3 will write the new ND(n), the previous N
A group of data of OD(n-1), PN, and INH and status flag data are transferred. The status data includes a KN flag, and the KN flag FF is set to "1". In portamento mode, arithmetic processing can be performed regardless of this KN flag. First, in PTS32 of CHS8 immediately before CHS1, instructions 0 to 3 of instruction group C are
Execute. However, execution of one of instructions 2 and 3 is ignored due to the flags ΔS, Z, and S shown in FIG. Thereafter, instruction group A or B is executed in PTS1 to PTS20 of CHS1 according to the status of the flags. When reading instruction group C, PTS is 32, that is, processing time slot code {P 10 to P 6 } is {111111}.
At the timing when the address code indicating instructions 0 to 3 is
In addition to M, instructions 0 to 3 may be read. In order to ignore one of instructions 2 and 3, the read instruction output may be gated according to the codes of flags ΔS, Z, and S. Regarding the selection of instruction groups A and B, the 2 bits of the lower address code for reading instruction groups A and B are selected by {P 5 , P 4 } at the timing when the processing time slot codes {P 10 to P 6 } indicate 0 to 19. cause it to occur,
By specifying the upper 2 bits of the address code that distinguishes instruction groups A and B by a combination of flags ΔS, Z, and S, and adding a 4-bit address, instructions 4 to 7 and 8 to 11 in instruction RM are may be read out selectively. FIG. 14 shows an example of an adder in the ALU 26 that performs operations on data having the data structure shown in FIG. Since N 1 and N 0 are binary coded ternary numbers, the carry C s from the lower S 5 and the N 1 on the A bus,
With N 0 and N 1 , N 0 on the B bus as inputs, the outputs N 1 , N 0 on the C bus and carry C N to the higher order are determined as shown in the truth table in FIG. 14A. B is an example of hardware. 80 is S 5 on A bus and B bus
~S Binary adder inputting 6 bits of 0 , 82 is A
A binary adder 81 which receives O 5 to O 0 , N 3 , and N 2 on the bus and the B bus as input is a read-only memory (POM) having a truth table pattern. C s is a carry of the binary adder 80, and C N is a carry output from the ROM 81. Subtractors and comparators can also be constructed using a similar idea. Vibrato data generator 42 in FIG.
may be something like a digital sine wave generator. For example, the RM may be read from a ROM that stores the waveform of the vibrato signal and written to the register at the timing when the VIB(n) and VIB(n-1) are updated. The octave shifter 30 has a buffer memory 29
By adding multiple sets of codes obtained by shifting the output of 1 bit to the required bit to the respective gates, one set of these gates is converted to {O 4 , O 3 ,
The selection may be made using the code O 2 , O 1 , O 0 }. In this example, the octave code has 5 bits, so 2 5 = 32 different octaves can be taken, but the frequency range that humans can hear is from 20KHz to
As 20Hz, it is 10 3 times 10 octaves, so
There are about 10 possibilities for bit shift. In this case, the MSB O 4 may be omitted. In Figure 4, the data are 15 from O 4 to S 0 .
I thought it would be possible to handle bits. It goes without saying that when the data length is 15 bits or less as shown in FIGS. 4B to 4E, the extra bits above and below the bits may be arranged as "0"s. For negative numbers,
It depends on which display is used, such as 2's complement display or 1's complement display, but in the latter case, "1" is output to the topmost bit and "0" is output to the other bits, and in the former case, "1" is output to all upper bits. All you have to do is output it.
In the case of one's complement, the sign bit V 6 in Figure 4E
should be used as the top level. As mentioned above, in the embodiment shown in FIG.
The jump number J is calculated by calculating each data in the format explained with the drawings in a step-by-step manner. Portamento mode (13th
To switch between the normal mode (Figure 11) and the normal mode (Figure 11), enter the status FF in Figure 2.
Prepare the RMAL/PRTAMETO mode bit, and send "1" to this bit from CPU3 to set it to normal mode, and send "0" to portamento mode, and change the instruction reading according to the mode bit. . Note that in the normal mode, zero is written in the PRT32 (FIG. 2). Make sure that Δ becomes zero. FIG. 15 is another example of index conversion. 3
8 stores J i,p in EXP38, which is the same as in FIG.
39-1 is a differential ROM having addresses for 7 bits {N 3 to S 3 }, and stores differential values (J i+1,0 −J i,0 ) of 96 index sample values. The output is 5
It's bit. 39-2 is a simplified multiplication RM for outputting an interpolated value of the difference value according to the three bits {S 2 , S 1 , S 0 }. That is,
(J i-1,0 −J i,0 )×j/8 is stored. This will increase the quantization error a little, but the memory size will change from 768 x 5 = 3840 bits to 96 x 5 + 2 5 + 3 x
5 = 1760 bits. In FIG. 3A above, one octave is assigned to 2048 to 4095. Therefore, it is 12 bits. In this case, the 12 equal temperament notes will be within an error of ±0.78125 cents. However, at low frequencies, the bits are shifted according to the octave code, and it is also conceivable that the bits are shifted to the lower side. At this time, the lower 12 bits are truncated, sometimes resulting in 8 to 9 bits. At this time, the above error increases. For 9 bits, 3
Since it has been bit shifted, the error is 8 times or ±6.25 cents. However, as is well known, in 9 bits, 239, 253, 268, 284, 301,
For the combination of 12 numbers 319, 338, 358, 379, 402, 451, the error from 12 equal temperament is less than ±12 cents. Therefore, if C is 253×8=2024 and 239×16=3824 is B instead of 2048, conversion from a cent address to an skip number with the highest accuracy can be achieved using 12 bits. As described above, the present invention includes a storage means for storing pitch information, non-harmonic information of positive harmonic frequency information,
at least one bus line coupled to the storage means for transmitting the stored information; an arithmetic unit connected to the bus line for performing operations such as addition and subtraction; a storage means for storing the operation results; The device is equipped with a device for outputting to the bus line, and the arithmetic unit is used multiple times in a time-sharing manner to calculate each piece of information.
It has the characteristics of high efficiency in the use of arithmetic units, the ability to share a bus as a signal transmission line, and the ability to have a repeating structure centered around RAM and ROM, allowing for a small chip size when integrated into an integrated circuit. In particular, since the configuration is such that non-harmonic frequencies are treated as difference cent values from positive harmonic frequencies,
It becomes easier to set the tone quality of musical tones, and it becomes easier to set and generate tones such as bells and bells, which were not possible before. Also, according to the 12 average rate, the calculation of the scale is 2
Since it is a multiple base calculation of Evolution 3, it has the effect of being able to be configured with an efficient calculation circuit.

【図面の簡単な説明】[Brief explanation of the drawing]

第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……ビ
ブラートデータ発生器。
Fig. 1 is a block diagram of a digital electronic musical instrument to which the present invention is applied, Fig. 2 is a block diagram of an embodiment of the present invention, Fig. 3 is an explanatory diagram of an index conversion table, and Fig. 4 is a diagram of the above embodiment. FIG. 5 is a diagram showing an example of the data format used in the above embodiment, FIG. 6 is a diagram showing an operation timing chart of the above embodiment, and FIG. 7 is a diagram showing a counter for timing pulse generation. 8 is a diagram showing a timing pulse chart, FIG. 9 is a diagram showing a decoder, FIG. 10 is a diagram showing an example of an instruction code format, and FIG. 11 is a general timing chart in normal mode. , FIG. 12 is a diagram showing the instruction execution pattern in portamento mode, FIG. 13 is a diagram showing the global operation timing chart in portamento mode, FIG. 14 is a diagram explaining the operation of the adder, and FIG. 15 is an exponent diagram. It is a figure which shows an example of a conversion table. 1...Keyboard section, 2...Operation section, 3...CPU,
4...RAM, 5...RM, 6...Envelope parameter ROM, 7...Frequency parameter
ROM, 8... Frequency control device, 9... Sine wave generator, 10... Envelope data generator, 11
... Multiplier, 12 ... Time slot control device,
13...Phase modulator, 14...Digital-to-analog converter, 21...Program counter, 22...
...Timing pulse generator, 23...Sequencer, 24...Instruction decoder, 25...Microcomputer interface circuit, 26...Arithmetic unit, 27...Working register, 28...RAM, 29...Buffer memory, 30... …octave shifter, 31
... Portamento data converter, 32 ... Portamento register, 33, 34 ... Note octave register, 35 ... Harmonic data memory, 36 ... Partial number memory, 37 ... Non-harmonic memory, 38 ... Exponential conversion table, 39
...Difference index conversion table, 40...Gate, 4
1...Status flip-flop, 42...Vibrato data generator.

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の記憶装置の出力と
なるようにしたことを特徴とする周波数制御装
置。
[Claims] 1. Pitch information corresponding to the pitch frequency of the fundamental tone of a musical tone to be generated consisting of a fundamental tone and harmonics; positive harmonic frequency information regarding the harmonic order of the musical tone; Inputs non-harmonic information representing the amount of deviation from an integral multiple of the frequency, divides one octave interval into multiple intervals with predetermined cent intervals, and assigns addresses on the cent scale to the boundaries of the intervals. , the pitch information is given in the form of a cent address, the positive harmonic frequency information is output as a cent address in the form of a difference from the cent address corresponding to the fundamental frequency of the harmonic, and the non-harmonic information is It is given in the form of a non-harmonic difference cent address corresponding to the above deviation, and the cent address of the pitch information, the difference cent address corresponding to the positive harmonic frequency information, and the non-harmonic difference cent address are added. In addition to a converter that obtains a sum cent address and converts the sum cent address into a frequency control value that is directly proportional to the frequency, it also obtains a frequency control value, and the above-mentioned pitch information, positive harmonic number information, and non-harmonic storage means for storing wave information; at least one bus line for transmitting information coupled to the storage means;
A frequency control device comprising: an arithmetic unit connected to the bus line; storage means for storing the arithmetic results; a device for outputting the arithmetic results to the bus line; and the converter. 2. In the statement of claim 1, the storage means for pitch information, the storage means for positive harmonic frequency information, the storage means for non-harmonic information, and the storage means for calculation results are arranged in accordance with the number of sound generation channels. a frequency control device, wherein each of the storage means is coupled to at least one bus line, an arithmetic unit is coupled to the bus line, and the arithmetic operations of each of the information are performed by time division multiplexing in the arithmetic unit. Device. 3 In the description of claim 1, the middle digit of the cent address is binary coded decimal, binary coded 6
A frequency control device that displays in one of decimal, binary or ternary format, and uses the middle part of an arithmetic unit to perform calculations corresponding to the above display. 4 In the statement of claim 1, the cent address is expressed in binary, the arithmetic unit is a binary arithmetic unit, and the middle of the cent address of the calculation result is expressed in binary.
A converter that converts into one of decimal, binary coded hexadecimal, or binary coded ternary code is used to separate the code into an octave code and a note code, and the note code is added to the converter and its output is bit-shifted using the octave code. A frequency control device obtained by obtaining a frequency control device. 5. In the description of claim 1, the converter has at least a first memory that stores frequency control values corresponding to L cent addresses at M intervals among the number of cent addresses (L×M) within one octave interval. and a second storage device storing an interpolated value based on the difference value between adjacent frequency control values among the L frequency control values, and a cent address is added to the first and second storage devices to store both. A frequency control device that obtains a frequency control value corresponding to the above interval by adding the outputs of the device using an arithmetic unit. 6 In the description of claim 5, the second
The storage device includes a third storage device that stores the difference value between adjacent frequency control values, and a fourth storage device that receives the output of the third storage device and a predetermined lower bit of the cent address as input. Consisting of the above 4th
A frequency control device characterized in that the output of the storage device becomes the output of the second storage device.
JP57083449A 1982-05-17 1982-05-17 Frequency controller Granted JPS58199393A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP57083449A JPS58199393A (en) 1982-05-17 1982-05-17 Frequency controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57083449A JPS58199393A (en) 1982-05-17 1982-05-17 Frequency controller

Publications (2)

Publication Number Publication Date
JPS58199393A JPS58199393A (en) 1983-11-19
JPH033239B2 true JPH033239B2 (en) 1991-01-18

Family

ID=13802744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57083449A Granted JPS58199393A (en) 1982-05-17 1982-05-17 Frequency controller

Country Status (1)

Country Link
JP (1) JPS58199393A (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6145288A (en) * 1984-08-09 1986-03-05 カシオ計算機株式会社 Electronic musical instrument
JP2679042B2 (en) * 1987-03-31 1997-11-19 カシオ計算機株式会社 Input waveform signal controller
JP2773601B2 (en) * 1993-06-11 1998-07-09 ヤマハ株式会社 Signal processing device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5674298A (en) * 1979-11-21 1981-06-19 Nippon Musical Instruments Mfg Electronic musical instrument

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5674298A (en) * 1979-11-21 1981-06-19 Nippon Musical Instruments Mfg Electronic musical instrument

Also Published As

Publication number Publication date
JPS58199393A (en) 1983-11-19

Similar Documents

Publication Publication Date Title
EP0035658B1 (en) Electronic musical instrument
KR0135601B1 (en) Method and apparatus for digitally generating musical notes
US4119005A (en) System for generating tone source waveshapes
USRE30736E (en) Tone wave generator in electronic musical instrument
JPH027078B2 (en)
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 (en)
JPS5895790A (en) Musical sound generator
USRE31648E (en) System for generating tone source waveshapes
US5113740A (en) Method and apparatus for representing musical tone information
JPH0522920B2 (en)
JPH033238B2 (en)
JPH0310959B2 (en)
US4446769A (en) Combination tone generator for a musical instrument
US4468996A (en) Note group selectable musical effects in an electronic musical instrument
JP3435702B2 (en) Music generator
JPS6352399B2 (en)
JPS6322312B2 (en)
JP2510090Y2 (en) Music signal generator
EP0255151B1 (en) Electronic musical instrument
JPS583237B2 (en) Denshigatsuki
JPH045692A (en) Electronic musical instrument
JPH0760315B2 (en) Electronic musical instrument