JP3444940B2 - 可変アルゴリズム音源 - Google Patents

可変アルゴリズム音源

Info

Publication number
JP3444940B2
JP3444940B2 JP26431593A JP26431593A JP3444940B2 JP 3444940 B2 JP3444940 B2 JP 3444940B2 JP 26431593 A JP26431593 A JP 26431593A JP 26431593 A JP26431593 A JP 26431593A JP 3444940 B2 JP3444940 B2 JP 3444940B2
Authority
JP
Japan
Prior art keywords
component
program
algorithm
control
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
JP26431593A
Other languages
English (en)
Other versions
JPH07168575A (ja
Inventor
孝雄 渡瀬
繁一 中村
隆済 新垣
隆 豊村
忍 片山
正 山中
利郎 山端
ブルース エイドリアン
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.)
Roland Corp
Original Assignee
Roland Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Roland Corp filed Critical Roland Corp
Priority to JP26431593A priority Critical patent/JP3444940B2/ja
Publication of JPH07168575A publication Critical patent/JPH07168575A/ja
Application granted granted Critical
Publication of JP3444940B2 publication Critical patent/JP3444940B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】本発明は、可変アルゴリズム音源
に関し、さらに詳細には、音源に関する任意のアルゴリ
ズムを創り出すことのできる可変アルゴリズム音源に関
する。 【0002】 【従来の技術】従来より、モジュール型シンセサイザと
称される電子楽器が知られている。このモジュール型シ
ンセサイザのモジュールとは、オシレータ、フィルタ、
アンプあるいはエンベロープ・ジェネレータなどのよう
に、機能的にあるひと塊になった回路構成を指称し、い
わばシンセサイザの構成部品とされるものである。 【0003】モジュール型シンセサイザの操作者は、こ
れらモジュール間をパッチ・ケーブルを使用して配線す
ることにより、任意の音源アルゴリズムを創り出すこと
ができるものであった。即ち、操作者は、パッチ・ケー
ブルによりモジュール間を適宜配線することにより、任
意の音源アルゴリズムを備えたシンセサイザを構築する
ことができるものであり、こうした任意の音源アルゴリ
ズムに基づいて、様々な楽音を合成することができるも
のであった。 【0004】なお、上記した音源アルゴリズムとは、操
作者が意図した楽音を得るために、どのような処理をど
のような順序で行うかを定義した規則の集まりのことで
あり、音源に関する信号の流れ、処理の順番を示すもの
である。 【0005】 【発明が解決しようとする課題】ところで、上記したよ
うにモジュール型シンセサイザは、全て独立した回路構
成とされているモジュールを、パッチ・ケーブルでそれ
ぞれ配線してシステムを構築するので、モジュール自体
の配線の接触不良やパッチ・ケーブルの接続不良などが
発生する確率が高く、作動の安定性に欠けるという問題
点があった。 【0006】また、各モジュールは独立した回路構成で
あるため、使用する可能性のあるモジュールを全て揃え
ると、スペース的およびコスト的に規模が大きくなって
しまうという問題点があった。 【0007】一方、近年シンセサイザのデジタル化が進
み、音源はDSP(デジタル・シグナル・プロセッサ)
やCPU(中央処理装置)で構成されるようになり、音
源アルゴリズムや音源自体の機能は、DSPやCPUを
制御するソフトウェアにより実現されるようになってい
る。 【0008】ところが、こうした音源にデジタル技術を
使用したシンセサイザ(デジタル・シンセサイザ)にお
いては、任意の音源アルゴリズムを創り出すために、D
SPやCPUを制御する極めて高度なプログラミング技
術が必要となり、こうした高度なプログラミング技術を
修得していない操作者は、任意の音源アルゴリズムを自
由に創り出すことができないという問題点があった。 【0009】本発明は、従来の技術の有するこのような
種々の問題点に鑑みてなされたものであり、その目的と
するところは、ソフトウェアにより表示装置の画面上で
音源の各構成要素(モジュール型シンセサイザのモジュ
ールに相当し、以下の説明においては、「コンポーネン
ト」と称している。)の接続関係を定義し、この接続関
係に基づいてDSPやCPUに対してプログラミングす
ることによって、従来のモジュール型シンセサイザの音
源アルゴリズムを創り出す際の簡便な操作性をデジタル
方式の音源で実現し、デジタル方式の音源において、操
作者が任意の音源アルゴリズムを容易に構築することが
できるようにするとともに、作動の安定性ならびにスペ
ース的およびコスト的な規模の縮小化を図った可変アル
ゴリズム音源を提供しようとするものである。 【0010】 【課題を解決するための手段】上記目的を達成するため
に、本発明による可変アルゴリズム音源は、楽音を発生
するための手順を編集指定する楽音発生手順編集手段
と、上記楽音発生手順編集手段で編集指定された手順に
対応する楽音発生プログラムを生成する楽音発生プログ
ラム生成手段と、上記楽音発生プログラム生成手段で生
成した楽音発生プログラムの規模に関する情報を表示す
る表示手段と、上記楽音発生プログラム生成手段で生成
した楽音発生プログラムを記憶する記憶手段と、上記記
憶手段に記憶された楽音発生プログラムにしたがってデ
ジタル演算処理を行なうことにより楽音信号を生成する
楽音生成手段とを有するようにした。 【0011】 【作用】本発明による可変アルゴリズム音源によれば、
楽音発生手順編集手段によって楽音を発生するための手
順が編集指定され、当該楽音発生手順編集手段で編集指
定された手順に対応する楽音発生プログラムが楽音発生
プログラム生成手段によって生成されて、この生成され
た楽音発生プログラムの規模に関する情報は表示手段に
よって表示され、楽音発生プログラムは記憶手段によっ
て記憶されて、当該記憶手段に記憶された楽音発生プロ
グラムにしたがって楽音生成手段によってデジタル演算
処理を行なうことにより楽音信号を生成することができ
る。 【0012】 【0013】 【0014】 【0015】 【実施例】以下、添付の図面を参照しながら、本発明に
よる可変アルゴリズム音源の実施例を詳細に説明する。 【0016】〔全体のシステム構成〕 図1には、本発明の一実施例による可変アルゴリズム音
源を備えた電子楽器のシステム構成図が示されており、
この電子楽器は、三つの処理部と、これら三つの処理部
の処理に使用されるデータ群とから構成されている。 【0017】上記した三つの処理部は、DSPやCPU
などの楽音の生成に直接関わるハード・ウェアを備えた
音源部100と、操作者がモジュールに相当するコンポ
ーネントの接続を定義して、コンポーネント間の配線を
構築することにより音源のアルゴリズムを作成するアル
ゴリズム作成部200と、アルゴリズム作成部200で
作成されたアルゴリズムを解析して、音源部100のD
SPおよびCPUの楽音生成のためのプログラムを生成
するプログラム生成部300とからなる。 【0018】音源部100には、MIDI規格の演奏情
報を入力するためのMIDIキーボード400が接続さ
れ、さらに、音源部100から出力される楽音信号に基
づき空間に楽音を放音するために、アンプおよびスピー
カなどより構成されるサウンド・システム500が接続
されている。 【0019】また、アルゴリズム作成部200では、操
作者がCRTなどの表示画面を備えた表示装置600お
よびアルゴリズム作成部200に所望の情報を入力する
ためのキーボード700ならびにマウス800を使用
し、表示装置600の表示画面を参照しながらキーボー
ド700ならびにマウス800を操作して、アルゴリズ
ムを作成する。 【0020】図2には、音源部100のブロック構成図
が示されており、MIDIインターフェース(I/F)
102を介してMIDIキーボード400と接続された
CPU104のバス106に、システム・プログラムR
OM108と、ワークRAM110と、後述するホスト
・コンピュータとの通信インターフェース(I/F)1
12と、PCM波形読み出し装置114と、直列に接続
された三個のDSP116と、出力セレクタ118とが
接続され、さらに、PCM波形読み出し装置114には
波形メモリ120が接続され、三個のDSP116には
遅延メモリ122がそれぞれ接続され、出力セレクタ1
18にはD/A変換器124が接続されている。 【0021】図2に示すように、音源部100は独立し
たハードウェア構成とされているが、アルゴリズム作成
部200とプログラム生成部300とは、ワークステー
ション・コンピュータ(以下、ホスト・コンピュータと
称する。このホスト・コンピュータは、音源部100の
通信インターフェース112と接続される通信インター
フェースを備えていて、これらの通信インターフェース
を介して、ホスト・コンピュータと音源部100とが接
続されることになる。)上のアプリケーション・プログ
ラムとして実現されている。従って、このホスト・コン
ピュータが、表示装置600、キーボード700および
マウス800を備えることになる。 【0022】なお、上記した構成に限られることなく
て、アルゴリズム作成部200とプログラム生成部30
0とを、それぞれ独立したハードウェア構成としてもよ
いし、音源部100、アルゴリズム作成部200および
プログラム生成部300を、一体のハードウェア構成と
してもよい。 【0023】データ群としては、モジュールに相当する
コンポーネントを構築するためのコンポーネント情報を
記憶したコンポーネント・ファイル900と、楽音を生
成するための楽音波形の波形データを記憶したPCM波
形データ・ファイル1000とが設定されている。これ
らのコンポーネント・ファイル900およびPCM波形
データ・ファイル1000も、ホスト・コンピュータ上
に設定されている。 【0024】ここにおいてコンポーネントとは、上記の
ようにモジュールに相当するシンセサイザの構成要素の
ことであり、本実施例においては、TVF(時変フィル
タ)、TVA(時変増幅器)、EG(エンベロープ・ジ
ェネレータ)、LFO(低周波オシレータ)、Chor
us(コーラス)などが定義されている。 【0025】コンポーネント・ファイル900とは、こ
うしたコンポーネントの機能を実現するために必要な、
音源部100のDSP116やCPU104のプログラ
ム、入出力端子の情報、仕様などを記録したマニュアル
情報の集合体であり、コンポーネント毎に1つのファイ
ルにまとめられている。なお、コンポーネント・ファイ
ル900の詳細な説明は後述する。 【0026】また、コンポーネント・ファイル900に
記憶されているコンポーネントに関しては、図12乃至
図61を参照しながら後に詳述する。 【0027】アルゴリズム作成部200およびプログラ
ム生成部300が、コンポーネント・ファイル900か
ら選択されたコンポーネント・ファイルなど処理に必要
な情報を読み込んで、必要な作業を行うことになる。 【0028】一方、PCM波形データ・ファイル100
0は、音源部100のPCM波形読み出し装置114で
楽音信号を発生させるのに必要な以下のデータから構成
されている。 【0029】〔読み出しアドレス・データ〕波形読み出
しの開始、終了、ループ読み出し区間などのアドレス情
報と、ループ読み出しを行うかどうかのフラグ情報を記
憶する。 【0030】〔波形データ・テーブル〕楽音波形のPC
Mデータを記憶する。 【0031】なお、コンポーネント・ファイル900お
よびPCM波形データ・ファイル1000は、音源部1
00、アルゴリズム作成部200ならびにプログラム生
成部300とは独立しており、追加変更を自由に行うこ
とができる。この追加変更の自由性が、システム全体と
しての自由度ならびに拡張性を高めている。 【0032】〔音源部100〕図2に示される上記した
音源部100の各構成要素の中で、実際に楽音信号の発
生/停止ならびに加工を行うのは、PCM波形読み出し
装置114およびDSP116である。なお、本実施例
においては、三個のDSP116が、直列に接続されて
いる。 【0033】PCM波形読み出し装置114は、CPU
104から与えられたピッチ・データと読み出しアドレ
ス・データに基づいて、波形メモリ120から波形デー
タを読み出し、音声信号としてDSP116に出力す
る。波形読み出しは時分割で行われ、16チャンネルの
独立した音声信号をDSP116へ出力することができ
る。 【0034】また、DSP116は、畳み込み演算を高
速に行うことができる装置であり、楽音信号を加工する
様々なフィルタなどを形成することができるものであっ
て、PCM波形読み出し装置114の出力は、DSP1
16に入力される。 【0035】DSP116は、演算装置と、プログラム
・メモリと、レジスタ・メモリと、係数メモリとから構
成され、遅延メモリ122が接続されている。 【0036】DSP116のプログラム・メモリは、書
き換え可能で転送されたプログラムを記憶するものであ
り、演算装置はプログラム・メモリに記憶されたプログ
ラムに応じた演算処理を順次行うことになる。また、レ
ジスタ・メモリは、演算装置による演算の途中の値を一
旦保存しておくために使用するが、リング・バッファと
して構成されているので、信号を遅延させることができ
る。そして、係数メモリは、畳み込み演算の係数を格納
するメモリである。 【0037】また、遅延メモリ122は大きなリング・
バッファであって、長い信号遅延に使用される。 【0038】なお、リング・バッファを使用して信号を
遅延させることは、例えば、特公昭63−32393号
公報などに示されている。 【0039】複数個直列に接続されたDSP116に
は、それぞれD/A変換用の出力があり、出力セレクタ
118により、いずれか一つのDSP116のD/A変
換用の出力が選択されて、D/A変換器124に入力さ
れることになる。 【0040】また、CPU104は、システム・プログ
ラムROM108に記憶されたシステム・プログラムに
基づいて、PCM波形読み出し装置114、DSP11
6ならびに出力セレクタ118の制御を行う。 【0041】システム・プログラムROM108には、
上記したように、CPU104の動作を制御するシステ
ム・プログラムが記憶されており、CPU104が起動
すると、このシステム・プログラムROM108に記憶
されたシステム・プログラムが実行されるものである。
このシステム・プログラムは、リアルタイム・モニター
を使用していて、以下に説明するような複数のタスク
(プログラム)が、時分割で同時に平行して動作する。 【0042】(1)MIDIタスク MIDIタスクは、MIDIインターフェース102か
らのMIDI受信割り込みによって起動され、受信デー
タを解析して、当該受信データに対応した処理を行う。 【0043】なお、受信データがノート・オンまたはノ
ート・オフであるときは、アサイナ・タスクを起動し、
受信データがコントロール・チェンジ、ベンダー、アフ
ター・タッチなどであるときは、ワークRAM110の
後述するMIDIコントロール・バッファにそのデータ
を記憶する。 【0044】(2)アサイナ・タスク アサイナ・タスクは、MIDIタスクより、ノート・オ
ン・イベントおよびノート・オフ・イベントの発生に対
応して起動される。 【0045】まず、MIDIタスクからノート・オン・
イベントに対応して起動されたときは、PCM波形読み
出し装置114の発音チャンネルの割り当て処理を行
う。割り当てられる発音チャンネルの数は、後述のコマ
ンド・リスト・ウインドウ606のChannelsで
設定変更される。 【0046】発音チャンネルを割り当てた後、対応する
チャンネル・バッファにノート・オンに対応するノート
・ナンバー、オン・ベロシティを格納する。 【0047】次に、PCM波形読み出し装置114の割
り当てられた発音チャンネルの波形読み出しを停止さ
せ、読み出しアドレス・データを与え、波形読み出しが
開始できる準備を整える。 【0048】最後に割り当てたチャンネル番号を引数と
して、発音制御プログラムをコールする。 【0049】一方、MIDIタスクからノート・オフ・
イベントに対応して起動されたときは、割り当てられて
いるチャンネルの中から、チャンネル・バッファを参照
し、そのノート・オフ・イベントと同じノート・ナンバ
ーが割り当てられている発音チャンネルを見つけ、離鍵
処理を行うべき発音チャンネルを特定する。当該発音チ
ャンネルのステータス・フラグを離鍵状態にするととも
に、オフ・ベロシティをバッファに書き込む。また、当
該チャンネル番号を引数として、離鍵制御プログラムを
コールする。 【0050】(3)定期サービス・タスク 定期サービス・タスクは、CPU104に内蔵されたタ
イマーで定期的に起動されて、音源部100の制御を行
うものであり、プログラム生成部300によって作成さ
れる定期制御プログラムが呼び出される。なお、定期サ
ービスとは、一定時間毎にパラメータの演算を行い、特
に時変するようなコンポーネント(後述するlfoやe
nvなど)のパラメータの演算処理を常に行う。 【0051】(4)DSPプログラム書き込みタスク DSPプログラム書き込みタスクは、プログラム生成部
300が作成したDSPプログラムを、CPU104が
ホスト・コンピュータから受信したときに起動され、当
該DSPプログラムをDSP116内のプログラム・メ
モリに書き込む。 【0052】(5)CPU制御プログラム書き込みタス
ク CPU制御プログラム書き込みタスクは、プログラム生
成部300が作成したCPU制御プログラム(アサイナ
・タスクおよび定期サービス・タスクで呼ぶ3つのプロ
グラムたる発音制御プログラム、離鍵制御プログラムお
よび定期制御プログラムである。)を、CPU104が
ホスト・コンピュータから受信したときに起動され、当
該CPU制御プログラムを、ワークRAM110に設定
された制御プログラム・エリアに書き込む。 【0053】また、後述するコンポーネントの一つであ
るfader(フェーダー・コンポーネント:操作者が
値をマニュアルにより任意に設定できる)の変更処理に
よるデータを、CPU104がホスト・コンピュータか
ら受信したときに、フェーダー・コンポーネント用のワ
ーク・メモリ(後述するワークRAM110の制御プロ
グラム・ワーク・エリアに設けられている相当するバッ
ファ)に書き込む。 【0054】(6)波形メモリ書き込みタスク CPU104がホスト・コンピュータから波形データを
受信すると起動され、受信した波形データを、波形メモ
リ120に書き込む。同時にホスト・コンピュータから
は、読み出しアドレス・データも送られてくるので、こ
れを受信してワークRAM110の読み出しアドレス・
バッファに格納する。なお、波形メモリ120は、バス
106を介してCPU104とは直接接続されてはいな
いが、PCM波形読み出し装置114を介して、波形デ
ータを書き込むことができる。 【0055】次に、ワークRAM110の構成を説明す
るが、ワークRAM110は、システム・ワーク・エリ
ア、制御プログラム・エリアおよび制御プログラム・ワ
ーク・エリアの3つのエリアに分かれている。 【0056】(1)システム・ワーク・エリア システム・ワーク・エリアは、上記した各タスクを実行
するシステム・プログラムがワーク・メモリとして使用
するエリアで、以下のデータを保持する。 【0057】〔チャンネル数バッファ〕コマンド・リス
ト・ウインドウ606のChannelsで設定変更さ
れる。PCM波形読み出し装置114で使用する発音チ
ャンネル数、およびポリフォニック・ウインドウを使っ
たアルゴリズムの複製数として使われる。最大値は、
「16」である。 【0058】〔チャンネル・バッファ〕発音チャンネル
毎に、以下のデータを保持する。 (1)ノート・ナンバー (2)オン・ベロシティ (3)オフ・ベロシティ 【0059】〔読み出しアドレス・バッファ〕PCM波
形読み出しの読み出しアドレスを保持する。 【0060】〔MIDIコントロール・バッファ〕ベン
ダー情報、コントロール・チェンジ情報、チャンネル・
アフター・タッチ情報、ポリフォニック・アフター・タ
ッチ情報の最新値をそれぞれ保持する。 【0061】〔時制データ・バッファ〕コンポーネント
毎の時制データを記憶する。 【0062】(2)制御プログラム・エリア 制御プログラム・エリアは、後述する処理によりプログ
ラム生成部300が自動生成したCPU制御プログラム
を格納するために使用するエリアである。 【0063】(3)制御プログラム・ワーク・エリア 制御プログラム・ワーク・エリアは、後述する処理によ
りプログラム生成部300が自動生成したCPU制御プ
ログラムが、ワーク・メモリとして使用するエリアであ
る。 【0064】〔アルゴリズム作成部200〕アルゴリズ
ム作成部200は、上記したようにホスト・コンピュー
タ上のアプリケーション・プログラムとして実現されて
おり、操作者が音源アルゴリズム・データを作成するた
めに使用する。このアプリケーション・プログラムは、
CADソフトウェアのように、表示装置600、キーボ
ード700およびマウス800を使用して、グラフィッ
クにアルゴリズムを定義することができるように構成さ
れている。 【0065】図3は表示装置600の画面の表示状態を
示しており、コンポーネントは、表示装置600の画面
上のアルゴリズム作成ウインドウ601のアルゴリズム
描画エリア602中に、長方形のアイコンで表示される
(図3には、コンポーネントとして、Osc、Panな
どが示されている。)。 【0066】操作者は、所望のコンポーネントをコンポ
ーネントの名称を表示したコンポーネント・リスト・エ
リア604から選択し、コンポーネントのアイコンを適
宜画面上に配置して、配置したアイコンを線で連結して
行く。この線が、実際にプログラムの上でデータの受け
渡しを行うためのコンポーネント間の信号の流れを表す
ことになる。 【0067】なお、符号606はコマンド・リスト・ウ
インドウ、符号608は指定したコンポーネントの情報
を示すヘルプ・ウインドウ、符号610は後述するポリ
フォニク処理において使用するポリフォニック・ウイン
ドウである。 【0068】なお、図3に示されたヘルプ・ウインドウ
608の表示状態は、コンポーネントとしてPanが選
択されている状態において、ヘルプ指示をした場合を示
している。ヘルプ・ウインドウ608では、コンポーネ
ントに配設されている各ピンの機能が表示される。この
ヘルプ指示は、キーボード700によって入力する。 【0069】また、本実施例においては、DSP116
を三個備えているため、各DSP116に対応して、ア
ルゴリズム作成ウインドウ601を三面(DSP1、D
SP2およびDSP3)備えている。 【0070】コンポーネントのアイコンは、上記したよ
うに長方形であり、ピンがその周囲に配設されている。
このピンは、信号の入出力端子を示すものであり、ある
アイコンのピンと他のアイコンのピンとを結線すること
により、あるコンポーネントと他のコンポーネントとが
接続されることになり、この作業を繰り返してアルゴリ
ズムを定義して行く。 【0071】ところでアルゴリズムとは、各コンポーネ
ント間の信号の流れを示すものであるが、各コンポーネ
ント間を流れる信号は、二種類の信号に分類される。 【0072】これらの二種類の信号の一つは、音声信号
と称される信号であり、最終的に音源部100のD/A
変換器124を介して楽音信号として出力される信号で
ある。この音声信号を生成したり加工したりするための
コンポーネントを、音声コンポーネントと称することと
する。 【0073】他の一つの信号は、制御信号と称する信号
であり、音声コンポーネントの様々なパラメータを制御
するための信号である。この制御信号を生成したり加工
したりするためのコンポーネントを、制御コンポーネン
トと称することとする。 【0074】なお、音声コンポーネントはDSP116
によって構成され、制御コンポーネントはCPU104
によって構成される。 【0075】またピンも、入出力される信号の種類なら
びに配置された側が信号の入力側かあるいは信号の出力
側かによって分類されており、これをピンの属性と称す
る。従って、ピンに関しては、音声信号入力、音声信号
出力、制御信号入力ならびに制御信号出力が属性として
設定されることになるが、さらに後述するトリガ・ピン
に関するトリガ入力およびトリガ出力も、ピンの属性と
して設定されている。 【0076】これらピンの属性は、コンポーネント・フ
ァイル900にピン属性PinAttrとして予め設定
されている。 【0077】ところで、アイコンに配設されるピンの位
置は、ピンの属性によって決定されている。即ち、音声
入力ピンはアイコンの左側に配置され、音声出力ピンは
アイコンの右側に配置される。また、制御入力ピンとト
リガ入力ピンは、アイコンの上側に配置され、制御出力
ピンとトリガ出力ピンとは、アイコンの下側に配置され
る。 【0078】上記したようなピンの配置を採用すること
により、各ピンを線で連結した場合には、音声信号は横
方向に流れ、それ以外の信号は縦方向に流れるように見
えるようになるので、アルゴリズムの視認性が向上され
る。 【0079】コンポーネント・ファイル900は、図4
に示すように、以下のデータから構成されている。 【0080】〔ピン数PinNum〕コンポーネントが
持つピンの数を表す。 【0081】〔ピン情報PinInfo〕ピンに関する
以下の情報をピン数分記憶する。 (1)ピン名PinName ピンの名称を表す。 (2)ピン属性PinAttr ピンが扱う信号の種類と入出力方向を表す。 (3)ピン・シンボルPinSym ピン・シンボルPinSymは、音声入出力ピンだけに
設定され、対応する入出力のワークRAMのシンボル名
を表す。 (4)ピン時制PinTense ピン時制PinTenseは、制御信号の入力ピンのみ
に設定され、その制御ピンに接続される他のコンポーネ
ントが、後述する何れの制御プログラムによって実現さ
れるのかを示している。 【0082】〔DSPプログラム・テンプレートDsp
Tpl〕DSPプログラムのテンプレートを記憶する。 【0083】〔DSPシンボル情報DspSym〕DS
Pプログラム・テンプレートDspTpl中で使用して
いるワーク・メモリ(シンボル)を割り当てるための情
報を記憶するものであり、テンプレート内で使用してい
る全てのシンボルに対応して、以下の情報を記憶する。 (1)シンボル名DSName シンボル名を表す。 (2)メモリ・エリアDSArea ワーク・メモリを割り当てるメモリ・エリアを表す。レ
ジスタ・メモリ、係数メモリ、遅延メモリの三種類あ
る。 (3)参照アドレスDSRef DSPプログラム・テンプレートDSPTpl中でシン
ボルを参照している位置を表す。 (4)初期値DSVal シンボルの初期値を表す。 【0084】〔DSPプログラム・メモリ使用量SzP
rg〕このコンポーネントが使用するプログラム・メモ
リのサイズを表す。 【0085】〔DSPレジスタ・メモリ使用量SzRe
g〕このコンポーネントが使用するレジスタ・メモリの
サイズを表す。 【0086】〔DSP遅延メモリ使用量SzDel〕こ
のコンポーネントが使用する遅延メモリのサイズを表
す。 【0087】〔制御プログラム・テンプレートCtrl
Tpl〕制御テンプレートは複数記憶することができ、
それぞれのテンプレートは、以下のデータからなる。 (1)テンプレートTpl テンプレート本体を記憶する。 (2)テンプレート時制TplTense テンプレートの時制データを記憶する。 【0088】〔制御シンボル情報CtrlSym〕制御
プログラムのテンプレート中で使用しているワーク・メ
モリ(シンボル)を割り当てるための情報を記憶するも
のであり、テンプレート内で使用している全てのシンボ
ルに対応して、以下の情報を記憶する。 (1)シンボル名CSName シンボル名を表す。 (2)参照アドレスCSRef テンプレート中でシンボルを参照している位置を表す。 (3)初期値CSVal シンボルの初期値を表す。 【0089】〔ヘルプ情報Help〕コンポーネントの
仕様、使い方を記したドキュメントを記憶する。 【0090】なお、添付の図面に示すように、コンポー
ネントのアイコンやピンの模様は、コンポーネントに配
置されたピンの属性によってそれぞれ決定されていて、
表示装置600の画面上で容易に識別可能なように形成
されている。 【0091】即ち、コンポーネント・ファイル900に
は、コンポーネントに配置されたピンの数、配置された
それぞれのピンの名称ならびに属性などの情報が、コン
ポーネント毎に予め記憶されている。従って、アルゴリ
ズム作成部200は、コンポーネント・ファイル900
に記憶された上記情報から、上記のようなアイコンをア
ルゴリズム描画エリア602に形成する。 【0092】なお、コンポーネントの描画データは、図
5(a)に示すように、四角形を基本とした画素を組み
合わせて作られる。 【0093】四角形の大きさは、その辺の周囲に配置す
るべきピンの数と、内部に表示するコンポーネント名の
長さによって決まる。即ち、次の三つの式のうち最大の
ものが、横の辺の長さlhとなる。 (1)(pci+pti+1)×pdh (2)(pco+pto+1)×pdh (3)lnh+2mnh ただし、pci:制御信号入力ピン数 pti:トリガ信号入力ピン数 pco:制御信号出力ピン数 pto:トリガ信号出力ピン数 pdh:水平方向のピン間隔 lnh:コンポーネント名の長さ mnh:コンポーネント名を表示するときの水平方向の
マージン とする。 【0094】また、縦の辺の長さlvも同様に、次の三
つの式の最大値をとる。 (1)(psi+1)×pdv (2)(pso+1)×pdv (3)lnv+2mnv ただし、psi:音声信号入力ピン数 pso:音声信号出力ピン数 pdv:垂直方向のピン間隔 lnv:コンポーネント名の垂直方向の長さ mnv:コンポーネント名を表示するときの垂直方向の
マージン とする。 【0095】上記した式のうち、ピン数pci、pc
o、pti、pto、psi、psoは、コンポーネン
ト・ファイル900のピン情報PinInfoをピン属
性PinAttrをチェックしながらカウントすること
で知ることができる。 【0096】また、コンポーネント名の表示領域の大き
さは、コンポーネント名の文字数と使われるフォントの
サイズによって決まる。 【0097】ピンを示す小さな四角形は、コンポーネン
トを示す四角形の各辺に左よせで、また上よせで、pd
hまたはpdvの間隔をあけてそれぞれ配置する。その
際に、制御信号ピンおよび音声信号ピンには黒く塗りつ
ぶされた四角形(図5(b))を、トリガ信号ピンには
白ぬきの四角形(図5(c))を使用する。 【0098】コンポーネント名は四角形の内部に、左上
からmnh、mnlのマージンをとって印字する。 【0099】また、四角形の中には、コンポーネント名
の表示される領域を除いて、コンポーネントの特性に対
応したパターンで塗りつぶす。音声信号ピンのみを備え
たコンポーネント、即ち、音声コンポーネントは、図5
(d)のパターンで塗りつぶし、制御信号ピンおよびト
リガ信号ピンのみを備えたコンポーネント、即ち、制御
コンポーネントは、図5(e)のパターンで塗りつぶ
し、制御信号ピンおよびトリガ信号ピンと音声信号ピン
とを備えたコンポーネントは、図5(f)のパターンで
塗りつぶす。 【0100】上記したように、コンポーネント・ファイ
ル900に記憶されているコンポーネントの名称は、表
示装置600の画面上のコンポーネント・リスト・エリ
ア604に表示され、コンポーネント・リスト・エリア
604に表示されたコンポーネントを自由に選択してア
ルゴリズム描画エリア602に配置し、配置したコンポ
ーネントのアイコンをそれぞれ配線して行くが、こうし
た操作は、マウス800の操作により行う。 【0101】即ち、マウス800のマウス・ポインタに
よる指示は、コンポーネントの選択/配置、ピンの配
線、その他の様々な指示をプログラムに与えるのに用い
る。なお、キーボード700は、後述するフェーダー・
コンポーネントのパラメータ名の設定や、データを保存
する場合のファイル名の設定操作などに用いる。 【0102】コンポーネントのアイコン間を配線する場
合には、まず、マウス800で配線したいピンを指定す
る。マウス800をクリックしたときに、マウス・ポイ
ンタに最も近い未配線のピンが指定されることになる。
そして、マウス800を配線する相手のピンの位置まで
移動してもう一度クリックすると、配線する相手のピン
が指定される。この場合にも、マウス・ポインタに最も
近く、かつ同じ種類の信号で入出力が対応する未配線の
ピンが自動的に選択されて配線される。このように、配
線先のピンが自動的に選択されるため、配線が間違いな
く容易に行える。 【0103】なお、マウス・ポインタとピンとの距離
は、それぞれの座標から求めるものであり、ピンの座標
は、コンポーネントの座標とコンポーネント内のピンの
相対座標との和とされる。また、ピンの相対座標は、コ
ンポーネントのアイコンが作成されるときに決定され
る。 【0104】なお、上記したピンの配線は、ピンとピン
とが一対一の関係で行われることになる。 【0105】また、ピンとピンとが配線された場合の配
線データは、プログラム内部では以下のような形式で記
憶されており、こうした配線データの構造体の集まり
が、音源アルゴリズム・データである。 【0106】 データ名 記録内容の例 データの説明 COMPO#:0 ・・・使用しているコンポーネントの通し番号 C_NAME:Osc ・・・コンポーネント名 C_POSX:353 ・・・コンポーネントの配置位置座標(X座標) C_POSY:1187 ・・・コンポーネントの配置位置座標(Y座標) なお、C_POSXおよびC_POSYの配置位置座標とは、アルゴリズム 描画エリア602における座標である。 C_PINS:3 ・・・ピンの数 PIN# :0 ・・・コンポーネントの中でのピンの通し番号 P_ATTR:1 ・・・ピンの属性の番号 P_NAME:output・・・ピンの名前 P_LNKC:1 ・・・配線先のCOMPO# P_LNKP:0 ・・・配線先のコンポーネントのPIN# PIN# :1 ・・・コンポーネント内のピンの番号 P_ATTR:2 ・・・PINの属性の番号 ・ ・ ・ ・ ・ ・ 以下、ピンの数だけ同じ形式で続く。即ち、まずコンポ
ーネントに関する情報(COMPO#〜C_PINS)
があり、その後にC_PINSで示される数だけ、ピン
の情報が続くものである。 【0107】なお、コンポーネントの通し番号は、コン
ポーネントがアルゴリズム描画エリア602に置かれた
ときに、順番に付与される。また、ピンの番号は、コン
ポーネント・ファイル900に記憶されているピン情報
の順番である。 【0108】なお、ピンの属性の番号は、以下のように
設定されている。 0・・・音声信号入力 1・・・音声信号出力 2・・・制御信号入力 3・・・制御信号出力 4・・・トリガ入力 5・・・トリガ出力 【0109】そして、ピンが配線されると、P_LNK
CおよびP_LNKPに配線相手たる配線先のピンの情
報が書き込まれる。また、配線先のP_LNKCおよび
P_LNKPにも、配線元のピンの情報が書き込まれ
る。なお、ピンが配線されていない状態では、P_LN
KCおよびP_LNKPは、ともに「−1」とされてい
る。 【0110】つまり、操作者がコンポーネントを選択
し、アルゴリズム描画エリア602においたときに、そ
のコンポーネントの構造体が、アルゴリズム・データに
追加される。即ち、描画された各コンポーネント毎に、
上記した配線データが作成され、これらの配線データが
統合されたものが音源アルゴリズム・データとなる。 【0111】即ち、コンポーネントをアルゴリズム描画
エリア602においたとき、P_LNKCおよびP_L
NKPは「−1」に初期化され、ピンとピンとが配線さ
れると配線に対応する情報に書き換えられる。上記のよ
うな操作により作成されたデータが、音源アルゴリズム
・データとして、プログラム生成部300に出力され
る。 【0112】また、コンポーネントが削除されたとき
は、アルゴリズム・データから、当該コンポーネントの
構造体は削除される。このとき、当該コンポーネントに
つながっていた線も、アルゴリズム描画エリア602か
ら消去されるとともに、線がつながっていた相手のコン
ポーネントのピンのP_LNKCおよびP_LNKPに
は「−1」が書き込まれる。なお、結線が削除された
り、結線の相手先のピンが変更された場合にも、それに
対応するP_LNKCおよびP_LNKPの内容が変更
される。 【0113】なお、このような音源アルゴリズム・デー
タから、どのコンポーネントのどのピンがどのような属
性を持つもので、それがどのコンポーネントのどのよう
な属性を持つピンに配線されているかが判る。このた
め、情報に基づいて、音声信号および制御信号の流れを
たどることが可能となる。 【0114】また、音源部100のDSP116の資源
(プログラム・メモリ、レジスタ・メモリ、遅延メモ
リ)には制約があるので、アルゴリズム作成部200
は、作成したアルゴリズムがDSP116の資源の何パ
ーセントを使用しているかを常に計算して、使用資源表
示エリア612に、例えば、図3に示すように表示す
る。 【0115】即ち、「P−RAM」(プログラム・メモ
リ)が「7.0%」、「I−RAM」(レジスタ・メモ
リ)が「1.6%」、「E−RAM」(遅延メモリ)が
「0.0%」と表示されている。そして、使用量が10
0%を越えた場合には、エラー・メッセージを表示して
注意を喚起し、操作者にその旨を知らせる。 【0116】コンポーネント・ファイル900には、コ
ンポーネント毎の各資源の使用量が予め記憶されてお
り、当該記憶内容を用いてアルゴリズム全体の使用量を
求める。 【0117】なお、上記したようにアルゴリズム作成部
200は、本実施例によるシステム構成全体で唯一のユ
ーザー・インターフェースであり、アルゴリズムの作成
以外にも、音源部100やプログラム生成部300に対
して、コマンド・リスト・ウインドウ606(図6)の
操作により、以下の処理の指示を行う。 【0118】〔Compile〕コンパイル処理。ここ
でいうコンパイルとは、アルゴリズム作成部200で作
成したアルゴリズム・データを、プログラム生成部30
0へ送ってプログラムを生成し、さらに生成したプログ
ラムを音源部100へ転送する一連の処理のことをい
う。 【0119】〔Save〕アルゴリズム作成部200で
作成したアルゴリズム・データを、ファイルに保存す
る。 【0120】〔Load〕ファイルに保存されたアルゴ
リズム・データを、アルゴリズム作成部200に読み込
む。 【0121】〔Quit〕本アプリケーション・プログ
ラムを終了する。 【0122】〔Channels〕発音チャンネル数を
設定する。設定できる最大値は、PCM波形発生装置の
もつチャンネル数と同じで「16」とする。 【0123】複雑なアルゴリズムを作成すると、生成さ
れるプログラムも大きくなり、限られたプログラム・サ
イズに収まらなくなったり、演奏に対する楽音制御の反
応速度が低下したりする。そのため、発音チャンネル数
を可変することで、プログラム・サイズや反応速度の調
整をできるようにした。 【0124】〔Waveform〕用意されているPC
M波形データ・ファイル1000のリストを表示し、操
作者がそのリストから所望の波形データ・ファイルを選
択する操作を行うと、当該波形データ・ファイルより波
形データ・テーブルと読み出しアドレス・データとを読
み出し、音源部100に転送する。 【0125】〔DSP1〕 〔DSP2〕 〔DSP3〕 三つのDSP116に対応するそれぞれアルゴリズム作
成ウインドウ601(DSP1、DSP2およびDSP
3)を、表示装置600に表示する。 【0126】〔Polyphonic〕ポリフォニック
・ウインドウ610を、表示装置600に表示する。 【0127】(複数のDSPチップの処理について)な
お、本実施例においては、DSP116として複数のD
SPチップを使用しているために、以下の特別な処理が
必要になる。即ち、本実施例においては、音源部100
において3つのDSP116を備えているものである
が、こうした場合の処理について以下に説明する。な
お、一つのDSPによって実行できるアルゴリズムに
は、DSPの能力的な限界が存在するため、複数のDS
Pチップを使用することによって、より高度なアルゴリ
ズムを作成することができる。 【0128】つまり、本実施例においては、図3に示す
ように、プログラム生成部300は、一つのアルゴリズ
ム作成ウインドウ601で一つのDSP116のアルゴ
リズムを作成するようになっている。 【0129】従って、複数のDSPチップを使用する場
合は、DSPチップ毎にそれぞれのアルゴリズム作成ウ
インドウ601でアルゴリズムを作成し、それらをつな
ぎ合わせて行くことになる。 【0130】図2に示すように、DSP116は直列に
接続されていて、複数の音声信号を同時に送信すること
ができる。この受け渡しを、図7に示すように、Ser
InN、SerOutNというコンポーネントを使用し
て、プログラムできるようにする。なお、SerIn
N、SerOutNにおけるNは、DSP間の音声信号
チャンネルの番号で、同じ番号のSerOutからSe
rInに音声信号が送られる。 【0131】上記と同様に制御信号についても、図7に
示すように、ctrlInN、ctrlOutNという
コンポーネントを使用して、ウインドウ間の信号の受け
渡しを行う。 【0132】(ポリフォニック処理について)ポリフォ
ニック・ウインドウ610は、ここで作成した1音分の
アルゴリズムを、自動的に同時発音数分作成することが
できる。 【0133】通常のアルゴリズム作成ウインドウ601
のアルゴリズム描画エリア602では、ポリフォニック
な音源を作成しようとした場合、同じアルゴリズムを複
数描画しなければならない。それでは非常に作業量が増
えてしまい効率が悪いので、通常のアルゴリズム作成ウ
インドウ601のアルゴリズム描画エリア602とは別
にポリフォニック・ウインドウ610というウインドウ
を別に設定し、このウインドウ内で作成されたアルゴリ
ズムは、設定された発音チャンネル数に応じて、自動的
に複製されるようにしている。 【0134】ポリフォニック・ウインドウ610で作成
されたアルゴリズムによって加工された音声信号および
制御信号は、一旦通常のアルゴリズム描画エリア602
に渡してから、そこでミックスされ、D/A変換器12
4に出力される。必要であれば、通常のアルゴリズム描
画エリア602でさらに何らかの加工を施してもよい。 【0135】図8は、ポリフォニック・ウインドウ61
0を使用したアルゴリズム作成の一例である。 【0136】ポリフォニック・ウインドウ610では、
オシレータOscで発生した音声信号をPanコンポー
ネントで二つの音声信号系列に分け、通常のアルゴリズ
ム作成ウインドウで当該二系列の音声信号をそれぞれ足
し合わせている。これによって、発音チャンネル毎に音
像定位が異なるステレオ出力を行うアルゴリズムが実現
できる。 【0137】ToneOutコンポーネントは、ポリフ
ォニック・ウインドウ610から通常のアルゴリズム作
成ウインドウ601に音声信号を渡すために、アルゴリ
ズム作成時のために用意された仮想のコンポーネント
で、「−A」や「−B」などの識別子は一つの発音チャ
ンネルに対応するアルゴリズムから、最大四つの系列の
音声信号を扱うことができる。 【0138】NoteInコンポーネントは、Tone
Outコンポーネントの対となるコンポーネントであ
り、ポリフォニック・ウインドウ610からの音声信号
を通常のアルゴリズム作成ウインドウ601側で取り出
すためのコンポーネントである。「−0」や「−1」な
どの識別子はチャンネル番号に対応していて、四つの出
力ピンはToneOutコンポーネントの四つの系列と
対応している(「PinInfo 1」のウインドウを
参照)。 【0139】また、asgnNは、アサイナ・コンポー
ネントのアルゴリズム作成のための仮想コンポーネント
で、チャンネル番号が特定できないポリフォニック・ウ
インドウ610で使用する。 【0140】Compileボタンの操作によってコン
パイルが開始されると、アルゴリズム作成部200は、
通常のアルゴリズム・データの解析にさきだって、ポリ
フォニック・ウインドウ610で作成されたアルゴリズ
ムを設定された発音チャンネル数に応じて複製する処理
を行う。 【0141】ポリフォニック・ウインドウ610で作成
されたアルゴリズム・データは、前述の通常のアルゴリ
ズム作成ルーチンのアルゴリズム・データと同じ形式で
記憶されている。 【0142】複製処理は、このポリフォニック・ウイン
ドウ610で作成されたアルゴリズム・データを、通常
のアルゴリズム作成ウインドウ601のアルゴリズム・
データに、設定された発音チャンネル数回追加コピーす
ることで行われる。その際に、以下のような修正をアル
ゴリズム・データに対して行う。 【0143】・ポリフォニック・ウインドウ610で作
成されたアルゴリズム・データ内のコンポーネント番号
COMPO#は、追加先のアルゴリズム・データで使用
されているコンポーネント番号の続き番号を振り直す。 【0144】・asgnNコンポーネントが使われてい
たら、そのC_NAMEデータをチャンネル番号に対応
した通常のアサイナ・コンポーネントの名前asgnN
mに置き換える(mはチャンネル番号) 【0145】・ToneOut−A、ToneOut−
Bへの入力信号がNoteIn−ch(chはチャンネ
ル番号)から出力されるように、アルゴリズム・データ
上で接続情報を修正する。この処理は、以下の手順で行
われる。 【0146】(1)ToneOut−Aの入力ピンの接
続データP_LNKCおよびP_LNKPを調べ、その
コンポーネント番号COMPO#とピン番号PIN#を
得る。 【0147】(2)当該コンポーネント番号COMPO
#のコンポーネントの当該ピン番号PIN#の接続先を
示すデータP_LNKCおよびP_LNKPを、Not
eIn−chの出力ピンtone−Aの接続先データP
_LNKCおよびP_LNKPで置き換える。 【0148】(3)同様に、NoteIn−chの出力
ピンtone−Aの接続先のコンポーネントのピンの接
続先データP_LNKCおよびP_LNKPを、Ton
eOut−Aの入力ピンの接続先データP_LNKCお
よびP_LNKPで置き換える。 【0149】(4)同様の処理をToneOut−Bに
ついても行う。 【0150】(5)その後、修正処理を終了したTon
eOutおよびNoteInコンポーネントのアルゴリ
ズム・データを削除する。 【0151】上記の1チャンネル分のアルゴリズム・デ
ータの書き換えを、追加を設定された発音チャンネル数
分繰り返す。これによって、ポリフォニック・ウインド
ウ610で作成されたアルゴリズムを、同時発音数分の
チャンネルに対応して形成することができる。 【0152】DSP116の資源の使用量も、ポリフォ
ニック・ウインドウ610に配置されたコンポーネント
に関しては発音チャンネル数倍して計算し、1つ目のD
SP116の使用量に加えて表示する。 【0153】制御信号も、同様にポリフォニック・ウイ
ンドウ610から通常のアルゴリズム作成ウインドウ6
01のアルゴリズム描画エリア602に受け渡すことが
でき、そのための仮想コンポーネントが用意されてい
る。 【0154】即ち、ポリフォニック・ウインドウ610
のctrlPolyOutN(図示せず)から、通常の
アルゴリズム描画エリア602のctrlPolyIn
N(図示せず)に、制御信号が受け渡される。なお、N
は、チャンネル番号である。 【0155】〔プログラム生成部300〕プログラム生
成部300は、アルゴリズム作成部200で作成した音
源アルゴリズム・データを解析して、DSP116およ
びCPU104のプログラムを生成する。 【0156】そして、プログラム生成部300で生成さ
れるDSPプログラムは、音声コンポーネントをDSP
116上に構成するためのものであり、各コンポーネン
トの特性はパラメータに対応する係数を変化させること
により、変化させることができる。 【0157】また、プログラム生成部300で生成され
るCPU制御プログラムは、制御コンポーネントをCP
U104上に構成するためのものであり、さまざまな演
奏情報から音声コンポーネントのパラメータに対応する
係数を制御するための制御信号を求め、逐次DSP11
6に与えることで音声コンポーネントを制御する。 【0158】コンポーネント・ファイル900には、そ
のコンポーネントの機能を実現するDSPプログラムと
CPU制御プログラムのひな型たる「テンプレート」お
よびそのテンプレートに対応する「シンボル情報」が記
憶されている。ここでいう「テンプレート」とは、リロ
ケータブルなプログラム・ルーチンであり、そのルーチ
ンで使用するワーク・メモリは、まだ割り当てられてい
ない。 【0159】「シンボル情報」とは、この「テンプレー
ト」が使用するワーク・メモリの情報であり、ワーク・
メモリを識別するためのシンボル名、割り当てるメモリ
・エリア、テンプレート内でワーク・メモリにしている
位置を示す参照アドレス、そしてワーク・メモリの初期
値を、使用するワーク・メモリ毎に記憶している(制御
シンボル情報は、メモリ・エリア情報は持っていない。
これは制御プログラムのワーク・エリアは、制御プログ
ラム・ワーク・エリアひとつしかないためである。)。 【0160】プログラム生成部300は、アルゴリズム
・データに従って、コンポーネントのテンプレートをつ
なぎあわせるとともに、テンプレートのシンボル情報に
従って、ワーク・メモリを実際に使用するメモリの所定
のメモリ・エリアに割り付ける。さらに、テンプレート
が割り当てたワーク・メモリをアクセスするように、参
照アドレス・データに基づいてつなぎあわせたテンプレ
ートのメモリ・アクセス命令を変更する。そして、ワー
ク・メモリの初期値が設定されていれば、割り当てたワ
ーク・メモリに初期値を格納する。 【0161】アルゴリズム・データの全てのコンポーネ
ントについて以上の処理が終了すると、つなぎあわされ
たテンプレートはプログラム・メモリに転送される。 【0162】即ち、ピンの配線は、プログラムの中では
ワーク・メモリへのアクセスで実現される。つまり、出
力ピンはワーク・メモリにデータを書き込み、入力ピン
はワーク・メモリからデータを読み込む命令で置き換え
ることになる。そして、書き込みおよび読み出しのワー
ク・メモリを同一にすることにより、コンポーネントか
らコンポーネントへのデータの受け渡しを実現すること
ができる。 【0163】なお、音声信号を扱っているコンポーネン
トは、DSPプログラムとして変換され、制御信号の演
算をするコンポーネントはCPU制御プログラムの方に
プログラミングされる。また、制御信号を受ける音声コ
ンポーネントも、CPU制御プログラムの一部を生成す
る。 【0164】また、CPU制御プログラムは、各タスク
における発音制御プログラム、離鍵制御プログラムおよ
び定期制御プログラムの3つのプログラムに分かれてい
る。 【0165】DSPプログラムの方は、各DSP116
毎に必要になるが、各DSP116においては一つのプ
ログラムとして生成される。 【0166】ワーク・メモリには、演算途中のデータを
一時的に記憶したりするなどの一般のワーク・メモリ
と、入出力用の配線メモリとがある。 【0167】プログラム生成部300での処理は、DS
Pプログラムを作成する部分と、CPU制御プログラム
を作成する部分とに分かれていて、テンプレートをつな
げる方法や、ワーク・メモリの割り当て方法が異なって
いる。 【0168】(DSPプログラムの作成について)DS
Pプログラムのテンプレートを持っているのは、音声コ
ンポーネントだけなので、アルゴリズム・データから、
まず音声コンポーネントのリストを作成する。同一のコ
ンポーネントが複数使用されている場合には、コンポー
ネントIDという識別用の番号をふっていく。 【0169】そして、リストに従って、コンポーネント
・ファイルから、DSPプログラムのテンプレートとシ
ンボル情報とを取り出す。DSPプログラムでは、テン
プレートを連結する方法は自由である。即ち、アルゴリ
ズム・データに登録されている順でもよいし、コンポー
ネント名のアルファベット順でもよい。 【0170】なお、DSPプログラムが使用するワーク
・メモリには、レジスタ・メモリ、係数メモリおよび遅
延メモリがある。 【0171】一般的なワーク・メモリには、上記3つの
メモリが全て使用されるが、配線用に使用するメモリ
は、レジスタ・メモリだけである。 【0172】配線用のレジスタ・メモリの割り当ては、
まず出力用のメモリを、レジスタ・メモリ・エリアの1
つおきの仮想アドレスに割り当てる。つづいて、それに
対応する入力用のメモリを、その出力用の次の仮想アド
レスに割り当てる。レジスタ・メモリは、リング・バッ
ファになっており、DSP116では上記の仮想アドレ
スの値と1サイクル(サンプリング周期)に1アドレス
づつ逆進するポインタの値とが加算された値が、レジス
タ・メモリの絶対アドレスとされる。このようにして1
サイクル毎に、データがあたかも次の仮想アドレスに送
られていくようになる。 【0173】従って、こうしておくと、コンポーネント
からコンポーネントへ音声信号が渡るときに、必ず1サ
ンプルの遅延が発生する。こうすることで、テンプレー
トの連結の順序によってサンプル遅延が発生したり、あ
るいは発生しなかったりすることを、避けることができ
る。 【0174】後述するパラレル・コンポーネントの場合
は、そのコンポーネントにつながっているコンポーネン
トの全てのピンが、同一のレジスタ・メモリを参照する
ようにする。 【0175】レジスタ・メモリの中には、常に「0」が
読み出されるレジスタ・メモリ(ゼロ・メモリ)が1ワ
ード用意されている。そして、入力ピンが未配線の場合
には、入力メモリとして、このゼロ・メモリを割り当て
る。 【0176】なお、出力ピンが未配線の場合には、ゼロ
・メモリではないレジスタ・メモリが割り当てられる。
即ち、出力ピンが未配線ならば、このレジスタ・メモリ
から値が読み出されることはないので、このままで問題
が生じないからである。 【0177】例えば、図9に示す音源アルゴリズムのD
SPプログラムを作成する手順を、図10を参照しなが
ら説明すると、まず、各コンポーネントのテンプレート
を適当にならべ(アルファベット順でもよいし、メモリ
に記憶されている順番でもよい。図10では、音声信号
の流れる順にならべている。)、出力するレジスタを使
うものを、先頭から1個とびの仮想アドレスに割り振っ
て行き、それから入力するものをその対応する次の仮想
アドレスに割り振っていく。 【0178】即ち、Oscをレジスタ・メモリの仮想ア
ドレスにstore(ストア)すると、Panがその次
の仮想アドレスをload(ロード)するように割り振
っていく。以下、同様な仮想アドレスの割り振りを行
う。 【0179】また、Panの左右のふれやOscのピッ
チなどを変えたりする情報は、係数メモリから読み込ん
で演算する。従って、係数メモリにCPU104から値
を書き込むことにより、いろいろなパラメータの値を制
御できるようになる。また、このためCPU104に、
例えばPanの係数メモリのアドレスを示す情報を知ら
せておく必要がある。即ち、CPU104は値を書き込
むときに、直接アドレスを指定して書き込むからであ
る。 【0180】上記したような処理を行うことにより、D
SPプログラムを生成できることになる。こうして、D
SPプログラムの生成が終了すると、完成したDSPプ
ログラムは、DSPのプログラム・メモリに転送され
る。転送終了後、DSPは直ちに当該プログラムによる
音声信号の処理を開始する。 【0181】(CPU制御プログラムの作成について)
CPU制御プログラムは、制御コンポーネントと制御入
力ピンや制御出力ピンを備えた音声コンポーネントから
生成する。 【0182】このCPU制御プログラムの作成の場合
も、DSPプログラムの作成の場合と同様に、関係する
コンポーネント・ファイル900からCPU制御プログ
ラムのテンプレートとシンボル情報を得る。 【0183】プログラムの作成方法は、DSPプログラ
ムの場合とほぼ同一であるが、次の2点において異なっ
ている。 【0184】まず、第1点は、CPU制御プログラムは
以下の3つのプログラムから成り立っている。 【0185】(1)定期制御プログラム(定期サービス
・タスク) 一定時間毎に制御信号の演算を行うプログラムである。
具体的には、時変するパラメータや、操作者によるリア
ル・タイム可変パラメータの演算などを行う。 【0186】(2)発音制御プログラム(アサイナ・タ
スク) 発音開始の制御演算を行う。具体的には、エンベロープ
のアタック部からサスティン部に関わるパラメータをエ
ンベロープ・ジェネレータに与えるための処理や、LF
Oの初期位相設定などを行う。 【0187】(3)離鍵制御プログラム(アサイナ・タ
スク) 離鍵時の制御信号の演算を行う。具体的には、エンベロ
ープのリリース部に関わるパラメータをエンベロープ・
ジェネレータに与えるための処理などを行う。 【0188】次に、第2点は、テンプレートの連結は、
可能な限り信号の流れる順に従うということである。こ
れは、次のような理由に基づく。即ち、CPU104で
はテンプレートの連結された順番に応じて対応するプロ
グラムが実行されることになるが、発音時や離鍵時の制
御プログラムは発音時/離鍵時に一度しか実行されない
ため、テンプレートの連結順を信号の流れと逆にする
と、信号の流れの上流側で前回の発音時/離鍵時に演算
された制御信号が新たな発音時/離鍵時に下流側に供給
されるようになり、正常な動作をしなくなるからであ
る。 【0189】図11を参照しながら、テンプレートを可
能な限り信号の流れる順に連結する方法について説明す
ると、まず、制御信号の流れの終端となるコンポーネン
トのリストを作る。即ち、制御信号の入力ピンたる制御
入力ピンはあるが、制御出力ピンのないコンポーネント
のリストを作る。通常は、図9に示すように、Panの
ような音声コンポーネントが終端になる。終端のコンポ
ーネントから、制御信号の流れをさかのぼることによっ
て、テンプレートの連結順序を後ろから決定していく。 【0190】終端のコンポーネントが複数ある場合に
は、まず一つめの終端のコンポーネントに注目する。当
該コンポーネントのテンプレートが、制御プログラムの
最後になる。終端のコンポーネントが一つしかない場合
(図9に示す音源アルゴリズムの場合では、Panが終
端のコンポーネントになる。)には、その終端コンポー
ネントに注目する。 【0191】そして、注目した終端コンポーネントの制
御入力ピンにつながっているコンポーネントに注目を移
し、そのテンプレートを先ほどのテンプレートの前に連
結する(図9に示す音源アルゴリズムの場合には、ad
dとなる。)。 【0192】このように入力ピンにつながっているコン
ポーネントのテンプレートを、前に前に順次連結してい
くことで、信号の流れる順序に即して、テンプレートを
連結することができる。 【0193】コンポーネントの制御入力ピンが複数ある
場合には、一つの入力ピンの上流をたどって行き、制御
入力ピンがないコンポーネントまで行き着いたところ
で、最後に分岐したコンポーネントに戻り、次の入力ピ
ンまでたどればよい。 【0194】また、注目したコンポーネントに出力ピン
が複数ある場合、即ち、現在たどってきた以外の出力ピ
ンがある場合には、フィードバックが形成されている可
能性があるため、上流にたどるのをそこで中止して、そ
のコンポーネントの現在たどってきた出力ピンに対応す
るフラグを立てる。 【0195】こうして、終端コンポーネントから上流に
たどれるコンポーネントを全てたどったら、次の終端コ
ンポーネントから、同様な処理を繰り返し、終端のコン
ポーネントがなくなるまで、上記操作を繰り返す。 【0196】なお、出力ピンが複数あるコンポーネント
に関しては、全ての出力ピンにフラグが立った時点で上
流にたどる処理を再開する。 【0197】制御信号のアルゴリズムにフィードバック
が形成されていた場合、全てのスキャンを終えても、出
力ピンのフラグが全て立っていない制御コンポーネント
が残ることになる。そこで、フィードバックの場合に
は、終端となるコンポーネントからのスキャンが終了し
たら、まだ処理の終了していない制御コンポーネントを
探し、その上流のスキャンを行う。 【0198】以上の操作により、テンプレートの連結を
行うことができる。 【0199】次に、1つのアルゴリズムから、上記した
3つのプログラムを生成する方法について説明する。 【0200】コンポーネントは、制御プログラムのテン
プレートを複数持つことができ、それぞれのテンプレー
トは、どの制御プログラムとして連結するのか、コンポ
ーネント・ファイルのテンプレート時制TplTens
eで指定されている。その属性は、以下の4通りであ
る。 (1)CYCL 定期制御プログラムとして連結 (2)PRON 発音制御プログラムとして連結 (3)NOFF 離鍵制御プログラムとして連結 (4)NONE 下流のコンポーネントと同じ制御プ
ログラムに連結 【0201】例えば、lfoI(図43)は、発音開始
時の初期位相が設定可能なLFOを実現できるコンポー
ネントで、二つのテンプレートを持っている。一つは定
期サービスの中で波形を演算するプログラムを生成する
ためのテンプレートで、CYCLに指定されていて、も
う一つは、発音時(押鍵時)に初期位相を設定するため
のプログラムを生成するためのテンプレートで、PRO
Nに指定されている。 【0202】プログラム生成部は、テンプレートの属性
に従って、波形を演算するプログラムを定期制御プログ
ラムに連結し、一方の初期位相を設定するプログラムを
発音制御プログラムに連結する。これによって、波形の
演算処理は定期的に繰り返し行われるが、初期位相の設
定処理は、発音時に一度だけ行われるようになる。 【0203】同様に、env(図49)、adsr(図
50)は、エンベロープ信号を発生するエンベロープ・
ジェネレータを実現できるコンポーネントであるが、こ
れにも生成するエンベロープ信号のアタック部からサス
ティン部に関わるパラメータを発音時に設定するプログ
ラムを生成するためのテンプレートと、リリース部に関
わるパラメータを離鍵時に設定するプログラムを生成す
るためのテンプレートと、さらにこれらの設定されたパ
ラメータに基づいて定期サービスの中でエンベロープ信
号の波形を演算するプログラムを生成するためのテンプ
レートとが用意されている。 【0204】テンプレートの属性NONEは、汎用的な
演算プログラムのテンプレートに付けられるもので、後
述する演算系コンポーネントやカーブ変換系コンポーネ
ント、フェーダー・コンポーネントなどは、この属性の
テンプレートを持つ。これらのコンポーネントの処理
は、その下流につながるコンポーネントの制御プログラ
ムに制御データを与えるために行われるので、下流のコ
ンポーネントと同じ制御プログラムにテンプレートを連
結しなければならない。具体的には、次のような処理を
行う。 【0205】プログラム生成部300では、システム・
ワーク・エリアに時制データを記憶する時制データ・バ
ッファがテンプレート毎に用意されている。時制データ
とは、テンプレートを連結するプログラムの種類を表す
もので、そのとり得る値はCYCL、RRON、NOF
Fの三つであり、それぞれ定期制御プログラム、発音制
御プログラム、離鍵制御プログラムに対応している。時
制データ・バッファは使用されている制御コンポーネン
トの数だけ確保され、始めにCYCLで初期化されてい
る。 【0206】プログラム生成部300は、前述したよう
に終端のコンポーネントから順次テンプレートの連結を
行う。テンプレートを連結するにあたり、まず、着目し
たテンプレートのテンプレート時制TplTenseを
判断する。テンプレート時制TplTenseがNON
E以外の場合には、そのテンプレートの時制に対応する
プログラムに、そのテンプレートを接続する。着目した
コンポーネントのテンプレート時制TplTenseが
NONEである場合には、そのテンプレートの時制デー
タ・バッファの示す時制に対応するプログラムにテンプ
レートを連結する。 【0207】この場合、着目したコンポーネントが終端
であった場合には、上記した初期化により、時制データ
・バッファは、CYCLとされている。 【0208】テンプレートの連結に関わる処理が終了し
たら、着目したコンポーネントの制御入力ピンに接続さ
れている上流のコンポーネントのテンプレートの連結準
備のため、上流のコンポーネントの時制データ・バッフ
ァの内容の設定を行う。具体的には、着目したコンポー
ネントのピン時制PinTenseがNONE以外の場
合には、そのピンの時制の内容を上流のコンポーネント
の時制データ・バッファにコピーし、ピン時制PinT
enseがNONEである場合には、着目したコンポー
ネントの時制データ・バッファの内容を上流のコンポー
ネントの時制データ・バッファにコピーする。 【0209】以上の処理が終了したら、着目するコンポ
ーネントをその上流のコンポーネントへと移し、テンプ
レートの連結処理を繰り返す。 【0210】例えば、コンポーネントlfoIの制御信
号入力ピンには、周波数を設定するrateを入力する
ピン、波形を設定するwaveformを入力するピ
ン、初期位相を設定するphaseを入力するピンの三
つがあるが、そのうちの、周波数を設定するrateと
波形を設定するwaveformは、波形を演算するプ
ログラム(定期制御プログラムに連結)によって参照さ
れる。 【0211】一方、初期位相を設定するphaseは、
押鍵時に初期位相を設定するプログラム(発音制御プロ
グラムに連結)によって参照される。 【0212】従って、rateもしくはwavefor
mの上流に接続されたコンポーネントのテンプレートの
属性がNONEであれば、それは定期制御プログラムに
連結される。一方、phaseの上流に接続されたので
あれば、発音制御プログラムに連結される。 【0213】このようにして、下流のコンポーネントか
ら上流のコンポーネントにピンの接続を介して遡ってい
く際に、ピン時制PinTenseというデータを使っ
てテンプレートの連結先を継承する。 【0214】下流のコンポーネントがない終端のコンポ
ーネントでは、時制データ・バッファがCYCLで初期
化されているため、ピン時制PinTenseやテンプ
レート時制TplTenseがNONEであるところの
大部分のコンポーネントのテンプレートは、定期制御プ
ログラムに連結される。 【0215】(トリガ・ピンの処理について)次に、コ
ンポーネントに配置されたトリガ・ピン(表示装置60
0の画面上では白抜きで表示されている。)の処理につ
いて説明する。 【0216】発音制御プログラムと離鍵制御プログラム
は、アサイナ・タスクから呼ばれて動作するが、このと
き、発音チャンネル番号が引数として渡される。発音制
御プログラム、離鍵制御プログラム中には全ての発音チ
ャンネルに関する処理が書かれているが、そのプログラ
ムの中から、その発音チャンネル番号に対応する部分だ
けを実行しなくてはならない。 【0217】発音制御プログラム、離鍵制御プログラム
に関連するコンポーネントには、必ずトリガ・ピンが配
置されている。また逆に、トリガ・ピンが配設されてい
るコンポーネントおよびその上流に接続されたコンポー
ネントのみが、発音制御プログラム、離鍵制御プログラ
ムに関連する。 【0218】そこで、プログラム生成部300は、トリ
ガ・ピンの配線を調べて、発音制御プログラムと離鍵制
御プログラムの中に、引数の発音チャンネル番号をチェ
ックする分岐命令を、各チャンネルに対応するプログラ
ムの先頭に置く。 【0219】即ち、プログラムの生成は、注目する各コ
ンポーネントに対応するテンプレートを連結し順次積ん
でいくものであるが、プログラム生成部300は、その
際注目したコンポーネントにトリガ入力ピンがあった
ら、その時点での発音制御プログラムおよび離鍵制御プ
ログラムの既に積んでしまった先頭位置を覚えておく。
そして、そのコンポーネントに接続された制御コンポー
ネントを上流まで全てたどり終えたとき、即ち、テンプ
レートを積み終えたときに、さらにその先頭に分岐命令
を連結する。分岐条件は、「引数の発音チャンネル番号
が、注目したコンポーネントのトリガ入力ピンの上流の
アサイナ・コンポーネントの発音チャンネル番号と一致
しないとき」で、分岐先は覚えておいた先頭位置であ
る。 【0220】(ワーク・メモリの割り当てについて)次
に、ワーク・メモリの割り当てについて、図11を参照
しながら説明することとする。 【0221】ワーク・メモリは、ワークRAM110内
の制御プログラム・ワーク・エリアに割り当てられる。
まず、一般のワーク・メモリと出力用のワーク・メモリ
を割り当て、連結されたテンプレート中のダミー・アド
レスを、割り当てたワーク・メモリのアドレスで置き換
える。 【0222】次に、入力用のワーク・メモリを、配線さ
れている出力用のワーク・メモリと同じアドレスに割り
当て、ダミー・アドレスを置き換える。 【0223】制御プログラム・ワーク・エリアにも、常
に0が読み出されるワーク・メモリとしてゼロ・メモリ
が用意されていて、入力ピンが未接続の場合には、この
ゼロ・メモリを割り当てる。 【0224】このように、未接続のピンがある場合で
も、エラーとはしないことで、作成途中のアルゴリズム
からでもプログラムが生成でき、作成済みの範囲での検
証ならびに評価を行うことができるようにしている。 【0225】(CPU104からDSP116への係数
書き込みについて)制御信号による音声コンポーネント
の制御は、CPU104から係数メモリに係数を書き込
むことで実現する。 【0226】制御信号入力を持つ音声コンポーネントの
制御プログラムのテンプレートには、CPU104から
DSP116の係数メモリにデータを書き込む命令が含
まれている。テンプレートでは、この係数メモリのアド
レスも、ダミーで書かれている。 【0227】係数メモリは、DSPプログラムを生成す
るときに割り当てられているので、その割り当てアドレ
スでテンプレートのダミー・アドレスを置き換える。 【0228】上記したような処理を行うことにより、制
御プログラムを生成できることになる。 【0229】こうして、CPU制御プログラムの生成が
終了すると、完成したCPU制御プログラムは、ワーク
RAM110の制御プログラム・エリアに転送される。
転送終了後、直ちにCPU104は当該制御プログラム
によるDSP116の制御処理を開始する。これによっ
て、操作者は所望のアルゴリズムを備えた電子楽器を実
現することができる。 【0230】〔コンポーネント・ファイル900〕次
に、コンポーネント・ファイル900に記憶されている
コンポーネントの中で代表的なコンポーネントを、図1
2乃至図61を参照しながら以下に説明する。 【0231】なお、コンポーネントの名称には、英数字
を使用しているが、音声コンポーネントの名称は大文字
で、制御コンポーネントの名称は小文字ではじめるよう
にしている。 【0232】〔音声コンポーネント〕 ・フィルタ系 (1)TVF(図12) 時変フィルタの機能を実現するコンポーネントである。
シンセサイザでは、時変フィルタはよく使用されている
が、時変するのはカット・オフ周波数のみで、レゾナン
ス(Q)は固定、もしくはマニュアルによる制御しかで
きなかった。本発明によるシステムにおいては、カット
・オフ周波数とレゾナンスの2つのパラメータを自由に
時変させることができる。即ち、LFOやエンベロープ
をかけることができる。また、レゾナンスをノート・オ
ン・ベロシティ、ノート・オフ・ベロシティ、アフター
・タッチなどに応じて可変することもできる。 【0233】なお、カット・オフ周波数は制御が行いや
すいように、外部からセント単位のデータとして与え、
TVFの内部で実際のカット・オフ周波数に変換して制
御に用いられる。これは、次に説明するTVEQの中心
周波数に関しても同様である。 【0234】(2)TVEQ(時変イコライザ)(図1
3) 時変イコライザの機能を実現するコンポーネントであ
る。中心周波数、Q、およびゲインを制御することがで
きる。 【0235】・ゲイン系 (1)TVA(図14) 時変増幅器の機能を実現するコンポーネントであり、レ
ベルを制御することができる。 【0236】(2)Mix(図15) CMix(図16) ミキサーの機能を実現するコンポーネントである。Mi
xは、定音量でミックスする。CMixは対応する制御
信号に応じて、各入力のレベルを独立して制御できる。 【0237】(3)Pan(図17) パン・ポットの機能を実現するコンポーネントである。
供給される定位情報(panpot)に応じて、L、R
の二つの出力のレベル比が制御される。 【0238】・オシレータ (1)Osc(図18) オシレータの機能を実現するコンポーネントであり、三
角波を生成する。ピッチ(pitch)とレベル(le
vel)を制御できる。なお、ピッチは制御が行いやす
いように、外部から所定のピッチを基準としたセント単
位のデータとして与え、Osc内部で実際の周波数に変
換して制御に用いられる。これは、次に説明するPcm
WGも同様である。 【0239】三角波は、図19(a)のような簡単な回
路で生成することができる。音声信号の値は、2の補数
で表されているので、毎サンプル、pitchを累算し
ていくことで、ノコギリ波(図19(b))を発生す
る。ノコギリ波を絶対値回路(ABS)に通し(図19
(c))、シフトすると三角波(図19(d))にな
る。 【0240】CPUからは、pitchとlevelが
設定できる。pitchは三角波の周波数を、leve
lは三角波の振幅を、それぞれ制御する。 【0241】(2)PcmWG(図20) PCM波形読み出しのオシレータの機能を実現するコン
ポーネントである。これはDSP116でなく、PCM
波形読み出し装置114の該当するチャンネルを制御す
る。Osc同様に、ピッチとレベルが制御可能である。
また、トリガ入力(trig)に応じてPCM波形の読
み出しが、読み出し対象の波形の先頭位置から開始され
る。 【0242】発音制御プログラムにおいては、入力され
た制御信号に対応するピッチ・データをPCM波形読み
出し装置114の該当するチャンネルに与えるととも
に、波形の発生開始を指示する。 【0243】定期制御プログラムにおいては、引き続
き、入力された制御信号値に対応したピッチ・データの
制御を行う。 【0244】・ディレイ系 (1)Del(図21) DelSI(図22) DelF(図23) ディレイの機能を実現するコンポーネントであり、ディ
レイ・タイムを設定できる。DelSIは、ディレイ・
タイムの変更時に補間を行うディレイ・コンポーネント
である。入力されるディレイ・タイムが変化した場合に
も補間が施され実際の遅延時間が徐々に変化するため、
ディレイ・タイムが変化したことによるノイズの発生が
防がれる。補間の時定数(tc)も設定できる。また、
DelFはフィードバック付きであり、フィードバック
・レベル(fbk)を制御できる。 【0245】(2)Chorus(図24) コーラスの機能を実現するコンポーネントである。ディ
レイ・タイム(delay)によってコーラス効果を実
現するための遅延回路の遅延時間が制御される。レート
(rate)およびデプス(depth)は、遅延時間
を変調するLFOの周期および大きさを制御するもの
で、コーラス効果のうねりの周期および深さが制御され
る。 【0246】(3)Reverb(図25) リバーブの機能を実現するコンポーネントである。ドラ
イ(dry)によってリバーブ効果の付加されていない
元の音声信号のレベルが制御され、エフェクト(ef
x)によってリバーブ効果の付加された音声信号のレベ
ルが制御される。 【0247】・その他 (1)Output(図26) 音声信号をD/A変換器124へ出力する機能を実現す
るコンポーネントである。このコンポーネントの置かれ
たDSP116のD/A出力が、D/A変換器124に
送られるように、D/A出力セレクタ118を設定す
る。この設定は、コンパイル時に行われる。また、複数
のDSP116を使用する場合には、どれか一つのウイ
ンドウのみに置くことができる。 【0248】(2)PPara(図27) パラレル・コンポーネントであり、音声信号を複数のコ
ンポーネントに分配する機能を実現する。 【0249】(3)Sel(図28) 音声信号セレクタ・コンポーネントであり、複数の音声
信号から、一つを選択する機能を実現する。 【0250】(4)Ring(図29) リング・モジュレータの機能を実現するコンポーネント
である。 【0251】〔制御コンポーネント〕 ・入力系 (1)fader(図30) 操作者が、マニュアルで制御信号の値を設定するための
フェーダー・コンポーネントである。フェーダー(スラ
イド・ボリューム)の形をしており、マウスでツマミを
動かして、所望の値を設定する。また、マウスでインク
リメント・ボタン、デクリメント・ボタンをクリックす
ることにより、値を増減することもできる。 【0252】上部に任意の文字列を表示できて、パラメ
ータ名として使用できる。なお、フェーダー・コンポー
ネントの制御プログラムは、値を保持するワーク・メモ
リから値を取り出して、次のコンポーネントに渡すだけ
である。アルゴリズム作成部200は、フェーダーが操
作されると、変更された値を音源部100に送る。CP
U104を介して、そのワーク・エリアに値が書き込ま
れる。 【0253】(2)cc(図31) pBend(図32) chAft(図33) ccはコンティニュアス・コントロール・メッセージ、
pBendはピッチ・ベンド・コントロール・メッセー
ジ、chAftはアフター・タッチ・コントロール・メ
ッセージであり、MIDI受信タスクが、バッファに書
き込んだデータを制御信号として出力する。 【0254】ccの制御信号入力ピンctrl#は、こ
のコンポーネントから出力するMIDI情報のコンティ
ニュアス・コントロール・メッセージのコントロール番
号を入力するものである。例えば、このピンにフェーダ
ー・コンポーネントを接続し、値として「40(10進
数)」を入力すると、受信したMIDI情報のうちこの
コンポーネントからは番号40に対応するホールド1
(ダンパ)情報が出力されるようになる。 【0255】(3)asgnNm(図34) asgnNL(図35) asgnN(図36) 発音チャンネルにアサインされたノートのMIDI情報
を、制御信号に変換するアサイナ・コンポーネントであ
る。mには発音チャンネル番号が入る。ピッチ(key
#:ノート・ナンバーを所定のピッチを基準としたセン
ト単位のピッチ・データに変換して出力)、オン・ベロ
シティ、オフ・ベロシティ、ポリフォニック・アフター
・タッチを制御信号として出力する。また、発音時(ノ
ート・オン時)および離鍵時(ノート・オフ時)にそれ
ぞれトリガ信号を出力するトリガ出力ピンを持つ。な
お、asgnNLは、最後着のノートにアサインされた
発音チャンネルに対応する。 【0256】asgnNは、ポリフォニック・ウインド
ウだけで使用できるasgnNmのアルゴリズム作成の
ための仮想コンポーネントである。コンパイルされる
と、チャンネル毎に独立したasgnNmコンポーネン
トとして動作する。 【0257】上記したアサイナ・コンポーネントには、
二つの役割がある。一つは、エンベロープ・ジェネレー
タなどのように押鍵/離鍵に対応して動作するコンポー
ネントと、アサイナ・タスクが割り当てたチャンネルと
の対応関係を設定する役割である。操作者はアルゴリズ
ム作成時に、アサイナ・コンポーネントとエンベロープ
・ジェネレータなどのように押鍵/離鍵に対応して動作
する制御コンポーネントのトリガ・ピンを接続すること
で、アサイナが割り当てたチャンネルと当該制御コンポ
ーネントとの対応を指示する。 【0258】プログラム生成部は、前述のトリガ・ピン
の処理に従って、押鍵もしくは離鍵が発生したチャンネ
ルに対応する当該制御コンポーネントの制御プログラム
が実行されるようプログラムを生成する。 【0259】もう一つの役割は、ノート・ナンバー、オ
ン・ベロシティ、オフ・ベロシティ、ポリフォニック・
アフター・タッチなどの押鍵もしくは離鍵に独立して対
応するMIDI情報を制御信号として取り出す役割であ
る。 【0260】ノート・ナンバーとオン・ベロシティはア
サイナ・タスクの押鍵時処理で、また、オフ・ベロシテ
ィはアサイナ・タスクの離鍵時処理で該当するチャンネ
ル・バッファに格納される。 【0261】アサイナ・コンポーネントの制御プログラ
ムが、これらのデータをチャンネル・バッファから読み
出し、制御信号として出力する。 【0262】また、ポリフォニック・アフター・タッチ
・バッファは各ノート・ナンバー毎に設けられており、
ポリフォニック・アフター・タッチ情報を受信した場合
にはMIDI受信タスクにおいて、ポリフォニック・ア
フター・タッチ・バッファの該当するノート・ナンバー
の位置に格納される。アサイナ・コンポーネントの制御
プログラムは、チャンネル・バッファからその発音チャ
ンネルに割り当てられているノート・ナンバーを読み出
し、ポリフォニック・アフター・タッチ・バッファの当
該ノート・ナンバーに対応する位置からポリフォニック
・アフター・タッチ・データを読み出し、制御信号とし
て出力する。 【0263】・演算系 (1)add(図37) sub(図38) mul(図39) addは、2つの制御信号の和を得る加算器の機能を実
現するコンポーネントである。subは、2つの制御信
号の差を得る減算器の機能を実現するコンポーネントで
ある。mulは、2つの制御信号の積を得る乗算器の機
能を実現するコンポーネントである。 【0264】(2)max(図40) min(図41) maxは、2つの制御信号の大小を比較し、大きい方を
得るマキシム・コンポーネントである。minは、2つ
の制御信号の大小を比較し、小さい方を得るミニマム・
コンポーネントである。 【0265】・オシレータ系 (1)lfo(図42) lfoI(図43) lfoPG(図44) lfoWG(図45) lfoPS(図46) これらは、変調用の周期波形を発生するLFOの機能を
実現するLFOコンポーネントであり、ビブラート、ト
レモロなどに用いられ、周期と波形を設定できる。lf
oIはトリガ入力を持ち、押鍵時に位相を初期位相ピン
に与えられている制御信号の値に対応する位相にリセッ
トすることができる。 【0266】lfoPGとlfoWGとは、通常のlf
oの機能を2つに分割したもので、lfoPGはレート
(rate)に対応する早さで時間変化する位相信号を
生成し、lfoWGは位相から波形を発生する。lfo
PSは、位相を任意にずらすことができる。図47に示
すように、これらを用いて、位相信号の時点で様々な演
算や処理を施すことで、より多機能なlfoコンポーネ
ントを実現することができる。例えば、図48は、自由
に位相差を設定することができる2つのLFOのアルゴ
リズムとなる。この場合、二つのLFOで発生される制
御信号は同じ周期で同じ波形となるが、任意に設定可能
な位相差を有するようになる。 【0267】(2)env(図49) adsr(図50) これらは、エンベロープ信号を発生するエンベロープ・
ジェネレータの機能を実現するコンポーネントである。
envは5つのブレーク・ポイントのレベル(L)とタ
イム(T)を設定していく方式である。 【0268】なお、L3がサスティン・レベルであり、
L0からL3までパラメータの計算は、発音制御プログ
ラムに入る。T4(リリース・タイム)およびL4(リ
リース・エンド・レベル)は、離鍵制御プログラムに入
る。adsrはアナログ・シンセサイザでよく使用され
ている、アタック・タイム、ディケイ・タイム、サステ
ィン・レベルおよびリリース・タイムを設定する方式で
ある。 【0269】(3)rnd(図51) 乱数を発生する機能を実現するランダム・コンポーネン
トであり、ノイズとして用いる。 【0270】(4)noise1_f(図52) 1/fの周波数特性を有するノイズを発生する機能を実
現するノイズ・コンポーネントである。 【0271】・カーブ変換 (1)l2e(図53) リニア/指数変換を行う機能を実現するリニア/指数変
換コンポーネントである。このコンポーネントは、制御
信号の値の特性カーブを指数状に変換するもので、例え
ば、ディレイ・コンポーネントのディレイ・タイムをフ
ェーダーで設定するときに、フェーダーとディレイ・タ
イム・ピンとの間にこのコンポーネントを挿入すること
により、ディレイ・タイムが小さい場合の設定も大きい
場合の設定も容易に行うことができるようになる。 【0272】(2)c2stp(図54) アサイナ・コンポーネントから供給されるピッチの制御
信号を、そのピッチの周期に対応するディレイ・タイム
(ディレイ・ステップ数)に変換するコンポーネントで
ある。図55に示すように、ディレイ・コンポーネント
にミキサー・コンポーネント、パラレル・コンポーネン
トなどを組み合わせてフィードバック経路を作りコムフ
ィルタを形成するときに、このコンポーネントを使用し
てピッチの制御信号を対応するディレイ・タイムに変換
することによりコムフィルタの共振周波数を発生する楽
音に対応するものとすることができる。 【0273】(3)limit(図56) 制御信号の値を、ある範囲内に押さえる機能を実現する
コンポーネントである。 【0274】・その他 (1)constN Nは、「1」(図57)、「0.5」(図58)、「−
1」(図59)、「−0.5」(図60)などの値をと
り、制御信号に定数を与える機能を実現するコンポーネ
ントである。 【0275】(2)cPara(図61) 制御信号を複数のコンポーネントに分配する機能を実現
するパラレル・コンポーネントである。 【0276】 【発明の効果】本発明は、以上説明したように構成され
ているので、以下に記載されるような効果を奏する。 【0277】 【0278】 【0279】楽音を発生するための手順を編集指定する
楽音発生手順編集手段と、上記楽音発生手順編集手段で
編集指定された手順に対応する楽音発生プログラムを生
成する楽音発生プログラム生成手段と、上記楽音発生プ
ログラム生成手段で生成した楽音発生プログラムの規模
に関する情報を表示する表示手段と、上記楽音発生プロ
グラム生成手段で生成した楽音発生プログラムを記憶す
る記憶手段と、上記記憶手段に記憶された楽音発生プロ
グラムにしたがってデジタル演算処理を行なうことによ
り楽音信号を生成する楽音生成手段とを有するようにし
たため、楽音発生手順編集手段によって楽音を発生する
ための手順が編集指定され、当該楽音発生手順編集手段
で編集指定された手順に対応する楽音発生プログラムが
楽音発生プログラム生成手段によって生成されて、この
生成された楽音発生プログラムの規模に関する情報は表
示手段によって表示され、楽音発生プログラムは記憶手
段によって記憶されて、当該記憶手段に記憶された楽音
発生プログラムにしたがって楽音生成手段によってデジ
タル演算処理を行なうことにより楽音信号を生成するこ
とができる。 【0280】また、本発明による可変アルゴリズム音源
を用いると、これまでにない楽音の制御も可能になる。
例えば、従来はマニュアルで設定されていたコーラスや
リバーブなどのパラメータ(コーラス・デプス、ディレ
イ・タイム、リバーブ・タイムなど)をエンベロープ・
ジェネレータの出力信号やノート・オン・ベロシティ、
ノート・オフ・ベロシティ、アフター・タッチなどの信
号を使って、自動的に変化するように制御することも可
能である。
【図面の簡単な説明】 【図1】本発明の一実施例による可変アルゴリズム音源
を備えた電子楽器の全体のシステム構成図である。 【図2】音源部のブロック構成図である。 【図3】表示装置の表示画面の説明図である。 【図4】コンポーネント・ファイルのデータ構成を図表
的に示す説明図である。 【図5】コンポーネントの構成を示す説明図であり、
(a)はコンポーネントの大きさを決定する方法を示す
説明図であり、(b)は制御信号ピンおよび音声信号ピ
ンを示し、(c)はトリガ信号ピンを示し、(d)は音
声信号ピンのみを備えたコンポーネント(音声コンポー
ネント)のパターンを示し、(e)は制御信号ピンおよ
びトリガ信号ピンのみを備えたコンポーネント(制御コ
ンポーネント)のパターンを示し、(f)は制御信号ピ
ンおよびトリガ信号ピンと音声信号ピンとを備えたコン
ポーネントのパターンを示す。 【図6】コマンド・リスト・ウインドウの表示画面の説
明図である。 【図7】複数のDSPを使用する場合の処理を示す画面
の説明図である。 【図8】ポリフォニク処理を示す画面の説明図である。 【図9】音源アルゴリズムの一例を示すコンポーネント
の接続状態の説明図である。 【図10】DSPプログラムの生成処理の説明図であ
る。 【図11】CPU制御プログラムの生成処理の説明図で
ある。 【図12】表示装置の画面上におけるTVFの表示状態
を示す。 【図13】表示装置の画面上におけるTVEQの表示状
態を示す。 【図14】表示装置の画面上におけるTVAの表示状態
を示す。 【図15】表示装置の画面上におけるMixの表示状態
を示す。 【図16】表示装置の画面上におけるCMixの表示状
態を示す。 【図17】表示装置の画面上におけるPanの表示状態
を示す。 【図18】表示装置の画面上におけるOscの表示状態
を示す。 【図19】(a)は三角波を生成するための回路構成を
示し、(b)は発生されたノコギリ波の波形を示し、
(c)はノコギリ波を絶対値回路に通した後の波形を示
し、(d)は(c)の波形をシフトした三角波の波形を
示す。 【図20】表示装置の画面上におけるPcmWGの表示
状態を示す。 【図21】表示装置の画面上におけるDelの表示状態
を示す。 【図22】表示装置の画面上におけるDelSIの表示
状態を示す。 【図23】表示装置の画面上におけるDelFの表示状
態を示す。 【図24】表示装置の画面上におけるChorusの表
示状態を示す。 【図25】表示装置の画面上におけるReverbの表
示状態を示す。 【図26】表示装置の画面上におけるOutputの表
示状態を示す。 【図27】表示装置の画面上におけるPParaの表示
状態を示す。 【図28】表示装置の画面上におけるSelの表示状態
を示す。 【図29】表示装置の画面上におけるRingの表示状
態を示す。 【図30】表示装置の画面上におけるfaderの表示
状態を示す。 【図31】表示装置の画面上におけるccの表示状態を
示す。 【図32】表示装置の画面上におけるpBendの表示
状態を示す。 【図33】表示装置の画面上におけるchAftの表示
状態を示す。 【図34】表示装置の画面上におけるasgnNmの表
示状態を示す。 【図35】表示装置の画面上におけるasgnNLの表
示状態を示す。 【図36】表示装置の画面上におけるasgnNの表示
状態を示す。 【図37】表示装置の画面上におけるaddの表示状態
を示す。 【図38】表示装置の画面上におけるsubの表示状態
を示す。 【図39】表示装置の画面上におけるmulの表示状態
を示す。 【図40】表示装置の画面上におけるmaxの表示状態
を示す。 【図41】表示装置の画面上におけるminの表示状態
を示す。 【図42】表示装置の画面上におけるlfoの表示状態
を示す。 【図43】表示装置の画面上におけるlfoIの表示状
態を示す。 【図44】表示装置の画面上におけるlfoPGの表示
状態を示す。 【図45】表示装置の画面上におけるlfoWGの表示
状態を示す。 【図46】表示装置の画面上におけるlfoPSの表示
状態を示す。 【図47】表示装置の画面上におけるlfoPG、lf
oPSおよびlfoWGを組み合わせた場合の表示状態
を示す。 【図48】自由に位相差を設定することができる2つの
LFOの機能を実現するアルゴリズムを示すコンポーネ
ントの接続状態の説明図である。 【図49】表示装置の画面上におけるenvの表示状態
を示す。 【図50】表示装置の画面上におけるadsrの表示状
態を示す。 【図51】表示装置の画面上におけるrndの表示状態
を示す。 【図52】表示装置の画面上におけるnoise1_f
の表示状態を示す。 【図53】表示装置の画面上における12eの表示状態
を示す。 【図54】表示装置の画面上におけるc2stpの表示
状態を示す。 【図55】c2stpを使用したアルゴリズムの一例を
示す各コンポーネントの接続状態の説明図である。 【図56】表示装置の画面上におけるlimitの表示
状態を示す。 【図57】表示装置の画面上におけるconst1の表
示状態を示す。 【図58】表示装置の画面上におけるconst05の
表示状態を示す。 【図59】表示装置の画面上におけるconst−1の
表示状態を示す。 【図60】表示装置の画面上におけるconst−05
の表示状態を示す。 【図61】表示装置の画面上におけるcParaの表示
状態を示す。 【符号の説明】 100 音源部 200 アルゴリズム作成部 300 プログラム生成部 400 MIDIキーボード 500 サウンド・システム 600 表示装置 700 キーボード 800 マウス 900 コンポーネント・ファイル 1000 PCM波形データ・ファイル
フロントページの続き (72)発明者 豊村 隆 大阪府大阪市北区堂島浜1丁目4番16号 ローランド株式会社内 (72)発明者 片山 忍 大阪府大阪市北区堂島浜1丁目4番16号 ローランド株式会社内 (72)発明者 山中 正 大阪府大阪市北区堂島浜1丁目4番16号 ローランド株式会社内 (72)発明者 山端 利郎 大阪府大阪市北区堂島浜1丁目4番16号 ローランド株式会社内 (72)発明者 エイドリアン ブルース 大阪府大阪市北区堂島浜1丁目4番16号 ローランド株式会社内 (56)参考文献 特開 平4−348396(JP,A) 特開 昭58−211789(JP,A) (58)調査した分野(Int.Cl.7,DB名) G10H 1/00 - 7/00

Claims (1)

  1. (57)【特許請求の範囲】 【請求項1】 楽音を発生するための手順を編集指定す
    る楽音発生手順編集手段と、 前記楽音発生手順編集手段で編集指定された手順に対応
    する楽音発生プログラムを生成する楽音発生プログラム
    生成手段と、 前記楽音発生プログラム生成手段で生成した楽音発生プ
    ログラムの規模に関する情報を表示する表示手段と、 前記楽音発生プログラム生成手段で生成した楽音発生プ
    ログラムを記憶する記憶手段と、 前記記憶手段に記憶された楽音発生プログラムにしたが
    ってデジタル演算処理を行なうことにより楽音信号を生
    成する楽音生成手段とを有することを特徴とする可変ア
    ルゴリズム音源。
JP26431593A 1993-09-28 1993-09-28 可変アルゴリズム音源 Expired - Lifetime JP3444940B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26431593A JP3444940B2 (ja) 1993-09-28 1993-09-28 可変アルゴリズム音源

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26431593A JP3444940B2 (ja) 1993-09-28 1993-09-28 可変アルゴリズム音源

Publications (2)

Publication Number Publication Date
JPH07168575A JPH07168575A (ja) 1995-07-04
JP3444940B2 true JP3444940B2 (ja) 2003-09-08

Family

ID=17401480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26431593A Expired - Lifetime JP3444940B2 (ja) 1993-09-28 1993-09-28 可変アルゴリズム音源

Country Status (1)

Country Link
JP (1) JP3444940B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3838152B2 (ja) * 2002-05-08 2006-10-25 ヤマハ株式会社 通信ネットワークを利用した音楽演奏システムにおける演奏ネットワークの視覚化による演奏支援システム及びそのためのサーバ
US7617012B2 (en) 2004-03-04 2009-11-10 Yamaha Corporation Audio signal processing system
US8161390B2 (en) 2004-03-09 2012-04-17 Yamaha Corporation Apparatus for displaying formation of network
JP4471102B2 (ja) 2004-08-03 2010-06-02 ヤマハ株式会社 ミキサおよびプログラム
JP4645597B2 (ja) * 2007-01-09 2011-03-09 ヤマハ株式会社 楽音合成方法、記録媒体および楽音合成装置
JP4584324B2 (ja) * 2008-05-22 2010-11-17 ルネサスエレクトロニクス株式会社 データ処理システム、及びコンポーネント管理方法

Also Published As

Publication number Publication date
JPH07168575A (ja) 1995-07-04

Similar Documents

Publication Publication Date Title
JP3209156B2 (ja) 自動伴奏パターン発生装置及び方法
US5331111A (en) Sound model generator and synthesizer with graphical programming engine
US20050204901A1 (en) Performance information display apparatus and program
JP3444940B2 (ja) 可変アルゴリズム音源
US5354948A (en) Tone signal generation device for generating complex tones by combining different tone sources
US6180862B1 (en) System and method for editing tone parameter by use of a communication network
US5428183A (en) Tone signal generating apparatus for performing a timbre change by storing a full frequency band in a wave memory
US5698806A (en) Computerized sound source programmable by user's editing of tone synthesis algorithm
JP3525811B2 (ja) 音楽処理手段の設定方法、波形データ生成手段の設定方法、楽音生成方法、および、プログラムが記録されたコンピュータ読み取り可能な記録媒体
US5864081A (en) Musical tone generating apparatus, musical tone generating method and storage medium
US7534952B2 (en) Performance data processing apparatus and program
JP3839904B2 (ja) 楽音パラメータ設定装置
JP3246405B2 (ja) 楽音発生方法、楽音発生装置および楽音発生用プログラムを記録した記録媒体
JP3322131B2 (ja) 波形加工装置および音源
JP3094759B2 (ja) 楽音信号分配処理装置
JP2992295B2 (ja) 楽音制御用波形信号発生装置
JP2915753B2 (ja) 電子楽器
JP4214957B2 (ja) 音響信号処理用パラメータの編集装置及びプログラム
JPH1185155A (ja) ミキシング装置および楽器用集積回路
JP2858314B2 (ja) 楽音特性制御装置
JP3269361B2 (ja) 楽音発生方法および装置
JP3561983B2 (ja) 電子楽器
JP2790051B2 (ja) 電子楽器の表示装置
JP3159442B2 (ja) 楽音発生装置
JPH07248765A (ja) 電子楽器

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

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

Free format text: PAYMENT UNTIL: 20090627

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20090627

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090627

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100627

Year of fee payment: 7