JP2753765B2 - 電子楽器 - Google Patents

電子楽器

Info

Publication number
JP2753765B2
JP2753765B2 JP2179056A JP17905690A JP2753765B2 JP 2753765 B2 JP2753765 B2 JP 2753765B2 JP 2179056 A JP2179056 A JP 2179056A JP 17905690 A JP17905690 A JP 17905690A JP 2753765 B2 JP2753765 B2 JP 2753765B2
Authority
JP
Japan
Prior art keywords
data
channel
performance data
tone
performance
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 - Fee Related
Application number
JP2179056A
Other languages
English (en)
Other versions
JPH0467099A (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.)
ROORANDO KK
Original Assignee
ROORANDO KK
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 ROORANDO KK filed Critical ROORANDO KK
Priority to JP2179056A priority Critical patent/JP2753765B2/ja
Publication of JPH0467099A publication Critical patent/JPH0467099A/ja
Application granted granted Critical
Publication of JP2753765B2 publication Critical patent/JP2753765B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、電子楽器に関し、より詳しくは楽音生成用
の複数個のチャネルを有する際に、新たな楽音生成指示
に対応させていずれかのチャネルを選択してその選択さ
れたチャネルのエンベロープを必要に応じて急速に減衰
させる場合の技術に関するものである。
(従来の技術) 従来は、複数個のチャネルのうちに楽音生成中でない
チャネルが存在する状態において新たに楽音を生成させ
る楽音生成指示がある場合には、楽音生成中でないいず
れかのチャネルを選択し、この選択されたチャネルで新
たな楽音を生成させている。また、全てのチャネルが楽
音生成中である状態において新たに楽音を生成させる楽
音生成指示がある場合には、所定の優先順位にもとづい
ていずれかのチャネルを選択し、この選択されたチャネ
ルのエンベロープレベルを急速に減衰させ、生成中の楽
音を一旦停止させた後にそのチャネルで楽音生成指示に
対応する新たな楽音を生成させている。
(発明が解決しようとする課題) しかしながら、全てのチャネルが楽音生成中である場
合におけるエンベロープレベルの急速減衰は、減衰が終
了するまでにある程度の時間がかかる。したがって、新
たな楽音生成開始指示に対応する楽音の生成は、この急
速減衰の終了を待って行なわれるために遅れが生じる。
この遅れを小さくするためにはエンベロープレベルの
減衰速度を大きくして減衰に要する時間を小さくすれば
良いが、減衰速度を大きくした場合には生成中の楽音が
途中で急激に途切れることになり、クリックノイズが生
ずることになる。したがって、減衰速度をあまり大きく
することはできない。
このような問題点を解決するために、減衰途中で減衰
速度が大きくなるように変化させる等のクリックノイズ
が増加しない範囲内において、減衰にかかる時間を小さ
くするようないくつかの提案がなされている。しかし、
依然として減衰にはある程度の時間が必要であり、新た
な楽音の生成には必然的に遅れが生じてしまい、リズム
感が乱れて楽音表現上において好ましくないという問題
点がある。
本発明は、前述の問題点を解決することを目的とし
て、クリックノイズを増加させることなく、しかも楽音
の生成に遅れが生じることがない電子楽器を提供するこ
とにある。
(課題を解決するための手段) 前述された課題を解決するために、本第1発明による
電子楽器の構成上の特徴は、第1図(A)に示されてい
るように、 (a) 時間系列に構成される一連の演奏データを記憶
可能な記憶手段(1)、 (b) この記憶手段(1)に記憶されている一連の演
奏データを順次に所要時間間隔を置いて少なくとも2度
読出す読出し手段(2)および (c) この読出し手段(2)による前の読出しによっ
て読出される一連の演奏データのうちから少なくとも楽
音生成タイミングの重要な楽音生成開始を示す演奏デー
タに関してチャネル確保を指示するデータを楽音生成部
に供給する一方、後の読出しにより読出される一連の演
奏データにより楽音生成開始/停止を指示するデータを
その楽音生成部に供給するデータ供給手段(3) を具えることである。
また、本第2発明による電子楽器の構成上の特徴は、
第1図(A)に示されているように、 (a) 時間系列に構成される一連の楽音生成開始/停
止を指示するデータ間に、少なくとも楽音生成タイミン
グの重要な楽音生成開始を指示するデータに関連させて
時間的にその楽音生成開始を指示するデータの前にチャ
ネル確保を指示するデータが挿入される演奏データを記
憶可能な記憶手段(1′)、 (b) この記憶手段(1′)に記憶されている一連の
演奏データを順次に読出す読出し手段(2′)および (c) この読出し手段(2′)により読出される一連
の演奏データを順次に楽音を生成する楽音生成部に供給
するデータ供給手段(3′) を具えることである。
さらに、本第3発明による電子楽器の構成上の特徴
は、第1図(B)に示されているように、 (a) 楽音生成用の複数個のチャネル(10)、 (b) これらチャネルのうちのいずれかのチャネル
(10)を順次に供給される時間系列に構成される一連の
演奏データのうちのチャネル確保を指示するデータによ
って選択するとともに、この選択されたチャネル(10)
のエンベロープを必要に応じて急速に減衰させるチャネ
ル選択手段(11)および (c) このチャネル選択手段(11)により選択された
チャネル(10)によって、順次に供給されるその一連の
演奏データのうちの楽音生成開始を指示するデータにも
とづき楽音を生成させる楽音生成制御手段(12) を具えることである。
さらにまた、本第4発明による電子楽器の構成上の特
徴は、第1図(C)に示されているように、 (a) 楽音生成用の複数個のチャネル(10′)、 (b) これらチャネルのうちのいずれかのチャネル
(10′)を順次供給される時間系列に構成される一連の
演奏データのうちの楽音生成開始を指示するデータによ
って選択するとともに、この選択されたチャネル(1
0′)のエンベロープを必要に応じて急速に減衰させる
チャネル選択手段(11′)、 (c) 前記一連の演奏データを所定時間だけ遅延させ
る遅延手段(13)および (d) この遅延手段(13)により遅延された一連の演
奏データのうちの楽音生成開始を指示するデータにもと
づいて前記チャネル選択手段(11′)によって選択され
たチャネル(10′)により楽音を生成させる楽音生成制
御手段(12′) を具えることである。
なお、本第5発明による電子楽器の構成上の特徴は、
第1図(D)に示されているように、 (a) 時間系列に構成される一連の演奏データを記憶
可能な記憶手段(1″)、 (b) この記憶手段(1″)に記憶されている一連の
演奏データを順次に読出す読出し手段(2″)、 (c) この読出し手段(2″)によって読出される一
連のデータを所定時間だけ遅延させる遅延手段(13′)
および (d) 前記読出し手段(2″)により読出される一連
の演奏データのうちから少なくとも楽音生成タイミング
の重要な楽音生成開始を示す演奏データに関してチャネ
ル確保を指示するデータを楽音生成部に供給する一方、
前記遅延手段(13′)により読出される一連の演奏デー
タにより楽音生成開始/停止を指示するデータをその楽
音生成部に供給するデータ供給手段(3″) を具えることである。
(作 用) 第1発明; 記憶手段(1)に記憶されている一連の演奏データの
うちの楽音生成タイミングの重要な楽音生成開始を示す
楽音生成開始を指示するデータについては、読出し手段
(2)による2度の読出しによって、まず前の読出しに
もとづきデータ供給手段(3)により楽音生成部にその
楽音生成開始を指示するデータに対応してチャネル確保
を指示するデータを供給する。次に、後の読出しにもと
づき同様にデータ供給手段(3)により楽音生成部に当
該楽音生成開始を指示するデータを供給する。
したがって、楽音生成部においては、前に供給される
チャネル確保を指示するデータにもとづきチャネルを選
択し、この選択されたチャネルのエンベロープレベルが
“0"でない場合等必要に応じてエンベロープレベルの急
速減衰を行なって、この急速減衰されたチャネルよりそ
のチャネル確保指示データに対応する後に供給される楽
音生成開始を指示するデータにより楽音を生成するよう
になる。
第2発明; 記憶手段(1′)に記憶されている一連の楽音生成開
始/停止を指示するデータ間に、楽音生成タイミングの
重要な楽音生成開始を指示するデータに関連させて時間
的にその楽音生成開始を指示するデータの前にチャネル
確保を指示するデータが挿入される演奏データを読出し
手段(2′)により順次に読出す。この読出し手段
(2′)による順次の読出にしより、楽音生成タイミン
グの重要な楽音生成開始を指示するデータについては、
まずデータ供給手段(3′)によって楽音生成部にその
楽音生成開始を指示するデータに関連するチャネル確保
を指示するデータを供給する。次に、同様にデータ供給
手段(3′)によって楽音生成部に当該楽音生成開始を
指示するデータを供給する。
したがって、楽音生成部においては、第1発明の場合
と同様に、前に供給されるチャネル確保を指示するデー
タにもとづきチャネルを選択し、この急速減衰等された
チャネルによって後に供給される楽音生成開始を指示す
るデータにより楽音を生成するようになる。
第3発明; チャネル確保を指示するデータにもとづきチャネル選
択手段(11)により楽音生成要の複数個のチャネルのう
ちからいずれかのチャネル(10)を選択し、この選択さ
れたチャネル(10)のエンベロープを必要に応じて急速
減衰させる。このチャネル選択手段(11)によって選択
されたチャネル(10)から、楽音生成制御手段(12)に
よって順次に供給される楽音生成開始を指示するデータ
にもとづいて楽音を生成する。
第4発明; 楽音生成開始を指示するデータにもとづきチャネル選
択手段(11′)により楽音生成用の複数個のチャネルの
うちからいずれかのチャネル(10′)を選択し、この選
択されたチャネル(10′)のエンベロープを必要に応じ
て急速減衰させる。この選択されたチャネル(10′)に
よって楽音生成制御手段(12′)により、遅延手段(1
3)によって遅延されたその楽音生成開始を指示するデ
ータにもとづいて楽音を生成する。
第5発明; 記憶手段(1″)に記憶されている一連の演奏データ
のうちの楽音生成タイミングの重要な楽音生成開始を示
す楽音生成開始を指示するデータについては、読出し手
段(2″)による読出しにもとづきデータ供給手段
(3″)によりまず楽音生成部にその楽音生成開始を指
示するデータに対応してチャネル確保を指示するデータ
を供給する。次に、この読出し手段(2″)により読出
されて遅延手段(13′)により遅延された当該楽音生成
開始を指示するデータを同様にデータ供給手段(3″)
により楽音生成部に供給する。
したがって、第1発明の場合と同様に、楽音生成部に
おいては、前に供給されるチャネル確保を指示するデー
タにもとづきチャネルを選択し、この選択されたチャネ
ルのエンベロープレベルが“0"でない場合等必要に応じ
てエンベロープレベルの急速減衰を行なって、この急速
減衰されたチャネルによりそのチャネル確保指示データ
に対応する後に供給される楽音生成開始を指示するデー
タにより楽音を生成するようになる。
(発明の効果) よって、楽音生成開始のタイミングに先立っていずれ
かのチャネル(10),(10′)が選択され、必要に応じ
てその選択されたチャネル(10),(10′)のエンベロ
ープレベルが急速減衰されるために、クリックノイズを
増加させることなく、しかも楽音の生成に遅れが生じる
ことなく楽音を生成することができる。
(実施例) 次に、本発明による電子楽器の具体的実施例につき、
図面を参照しつつ説明する。
(第1実施例);第1,3発明 まず、本発明が適用された電子楽器Mが概略的に示さ
れている第2図において、電子楽器Mは予め内部に演奏
データを記憶可能な自動演奏部20と、所定の楽音を生成
する楽音生成部30と、これら自動演奏部20および楽音生
成部30を電気的に接続する信号線40とより構成されてい
る。この自動演奏部20において読出される予め記憶され
ている演奏データは、信号線40を介して楽音生成部30に
供給される。この演奏データには、楽音生成の開始指示
を示すノートオンデータ、楽音生成の停止指示を示すノ
ートオフデータ、チャネル確保指示を示すチャネル確保
指示データおよび演奏の終了を示す演奏終了データの4
種類のデータがある。
自動演奏部20において、この自動演奏部20の動作状態
を表示する表示器と自動演奏部20の各種動作を指示する
各種操作子とを有するパネル部21から、各種操作子の操
作状態にもとづく指示がバス22を介してA−マイコン23
に供給される。このA−マイコン23は、所定プログラム
を実行するA−中央処理装置(CPU)23Aと、実行される
プログラムを記憶するA−読出し専用メモリ(ROM)23B
と、プログラムを実行するに必要な各種フラグ、マップ
等のワーキングエリアとして、および演奏データが予め
記憶される演奏データエリアとしての各領域から成るA
−書込み/読出し可能メモリ(RAM)23Cと、本実施例に
おいては1ms毎の所定時間毎にタイマインタラプトをか
けて所定のタイマインタラプト処理を行なわせるタイマ
23Dとより構成されている。そして、A−マイコン23
は、A−ROM23Bに予め記憶されている所定プログラムを
実行することにより、パネル部21からの操作子の操作状
態にもとづく自動演奏の開始/停止の指示によってA−
RAM23Cに記憶されている演奏データを読出し、この読出
された演奏データをバス22を介してA−インターフェー
ス回路24に供給する。このA−インターフェース回路24
は、供給される複数個の演奏データを一次記憶するファ
ーストイン/ファーストアウトメモリ(FIFO)を内蔵し
ているとともに、このFIFOに記憶されている演奏データ
を供給された順に読出して信号線40を介して楽音生成部
30に供給する。なお、A−マイコン23は、電源遮断時に
もA−RAM23Cの記憶内容が消滅しないようにバックアッ
プされている。
一方、楽音生成部30において、信号線40を介して供給
される演奏データは、B−インターフェース回路31に供
給される。このB−インターフェース回路31は、A−イ
ンターフェース回路24と同様に供給される複数個の演奏
データを一次記憶するファーストインファーストアウト
メモリ(FIFO)を内蔵しているとともに、このFIFOに記
憶されている演奏データを供給された順に読出してバス
32を介してB−マイコン33に供給する。このB−マイコ
ン33は、所定プログラムを実行するB−中央処理装置
(CPU)33Aと、実行されるプログラムを記憶するB−読
出し専用メモリ(ROM)33Bと、プログラムを実行するに
必要な各種バッファ、フラグ、マップ等のワーキングエ
リアとしての領域から成るB−書込み/読出し可能メモ
リ(RAM)33Cとより構成されている。そして、B−マイ
コン33は、B−ROM33Bに予め記憶されている所定プログ
ラムを実行することにより、B−インターフェース回路
31からの演奏データを受取り、これら受取られた演奏デ
ータにもとづき楽音信号を生成するに必要な、エンベロ
ープレベル単位時間当たりの変化量を示すレートデータ
とエンベロープレベルの目標値を示す目標値データとを
含む楽音制御データを、バス32を介して楽音発生回路34
に供給してその楽音発生回路34を制御する。この楽音発
生回路34は、本実施例においては10個のチャネルを有し
て同時に10個までの楽音信号を生成できるとともに、各
チャネルに対応してエンベロープを形成する回路をも有
して楽音制御データにおけるレートデータおよび目標値
データにもとづきエンベロープ波形を形成する。言い換
えれば、レートデータのレート値を所定時間毎に累算
し、エンベロープレベルが目標値データの目標値に達す
る毎に、B−マイコン33にエンベロープインタラプト処
理を行なわせて新たなレートデータおよび目標値データ
を供給させるようにエンベロープインタラプトをかけ、
順次にエンベロープインタラプト毎に供給される新たな
レートデータおよび目標値データによって所望の折れ線
状のエンベロープ波形を形成する。したがって、楽音発
生回路34は、形成されるエンベロープ波形に応じた振幅
の所望の楽音信号を楽音制御データによって割当てられ
たチャネルにおいて生成し、増幅器35を介してスピーカ
36から楽音として発生させる。
次に、自動演奏部20におけるA−マイコン23のA−RA
M23Cに設定されている演奏データエリアおよびノート管
理マップについて説明する。
○演奏データエリア(第3図) 演奏データが先頭番地から順次に記憶されるととも
に、1個の演奏データに対して言えば演奏データの種類
を示すデータ種類“STATUS"、生成/停止される楽音の
音高を0〜127の数値で示す音高値“NUM"、生成される
楽音の強さを0〜127の数値で示す強度値“VEL"および
直前の演奏データから当該演奏データまでの経過時間
(差分時間)を示す経過時間“STET"を記憶する領域よ
り構成されている。このデータ種類“STATUS"の内容
は、演奏データが楽音生成開始のノートオンを示すいわ
ゆるノートオンデータの場合には“1"、楽音生成停止の
ノートオフを示すいわゆるノートオフデータの場合には
“0"、演奏内容の最後の演奏データの直後の演奏データ
における演奏終了を示すいわゆる演奏終了データの場合
には“9"と設定される。なお、演奏データが楽音生成開
始のノートオンであって、しかもチャネル確保指示の演
奏データである場合にはデータ種類“STATUS"の内容は
“2"と設定され、この演奏データの読出し時にはその演
奏データに対応させてまずチャネル確保指示を示す演奏
データ、いわゆるチャネル確保指示データが楽音生成部
30に供給され、その後にノートオンデータが楽音生成部
30に供給される。また、経過時間“STET"は演奏データ
の読出しタイミングを規制するものであり、経過時間
“STET"の値を所定時間毎に“1"を減じることによって
その値が“0"になることにより、次の読出しタイミング
を定めるものである。
○ノート管理マップ いずれの音高の楽音が生成中であるかを判断するため
に、楽音生成部30に供給される演奏データにもとづいて
各音高に対応してその音高の楽音が生成中である場合に
は“1"が、生成中でない場合には“0"が記憶される。
使用者は、パネル部21の各種操作子を操作することに
より、一連の演奏データを時間系列に入力してA−RAM2
3Cの演奏データエリアに順次に先頭番地から記憶させ
る。この場合に、特に楽音生成開始のタイミングが重要
なノートオンを示す演奏データに関してはデータ種類
“STATUS"の内容を“2"と設定する。なお、1個の演奏
データを構成する4種類のデータ、言い換えればデータ
種類“STATUS"、音高値“NUM"、強度値“VEL"および経
過時間“STET"のデータは共通の読出しポインタでもっ
て演奏データエリアから読出され、これら読出された4
種類のデータのうちの経過時間“STET"を除くデータ種
類“STATUS"、音高値“NUM"および強度値“VEL"が1個
の演奏データとして楽音生成部30に供給される。
ところで、楽音生成部30においては、自動演奏部20か
らデータ種類“STATUS"の内容が“2"である演奏データ
のチャネル確保指示データが供給される場合には、この
チャネル確保指示データに対応して後に供給されるノー
トオンデータによって生成される楽音のために、楽音発
生回路34のいずれかのチャネルを選択し、必要に応じて
そのチャネルに対するエンベロープレベルを急速減衰さ
せて割当てチャネルを確保する。そして、この確保され
たチャネルによってそのチャネル確保指示データに対応
して後に供給されるノートオンデータによる楽音を生成
する。したがって、楽音生成が遅れることなく行なわれ
る。なお、データ種類“STATUS"の内容が“1"である予
めチャネル確保指示データが供給されることなくして供
給されるノートオンデータの場合には、このノートオン
データが供給される時点においていずれかのチャネルを
選択し、必要に応じてそのチャネルに対するエンベロー
プレベルを急速減衰させてそのチャネルに生成楽音を割
当て、所望の楽音を生成させる。また、ノートオフデー
タが供給される場合には生成中の楽音を停止させるとと
もに、演奏終了データが供給される場合には確保されて
いるチャネルの確保を解除する。
次に、自動演奏部20の基本的動作について、第4図に
示されているメインルーチンのフローチャート図にもと
づき説明する。
A・A 電源の投入により所定プログラムの実行を開始
してA−RAM23Cに設定されているワーキングエリアをク
リヤするとともに、タイマ23DおよびA−インターフェ
ース回路24を初期設定する。
A・B パネル処理ルーチン。パネル部21の表示器の制
御およびそのパネル部21からの各種操作子の操作状態に
もとづく指示に関わる処理を行なう。詳細は、第5図に
示されているフローチャート図により後述する。
A・C プレイフラグPLFが演奏中を示す“1"であるか
否かを判断する。なお、プレイフラグPLFは、パネル部2
1の操作子による操作によって演奏の開始が指示された
場合において、ステップA・Bにおいて“1"と設定され
る。
A・D ステップA・Cにおける判断においてプレイフ
ラグPLFが演奏中を示す“1"である場合には、タイマ23D
により1ms毎の所定時間毎にかけられるタイマインタラ
プトに応じて実行されるタイマインタラプト処理を行な
う毎にその値が“1"増やされるとともに、演奏データ読
出し処理およびチャネル確保指示処理を行なう毎にその
値が“1"減らされるタイムP・TMの値が“0"を超えてい
るか否かを判断する。このタイムP・TMの値が“0"を超
えている場合には、前述の演奏データ読出し処理および
チャネル確保指示処理を行なうタイミングになっている
ことを示している。
なお、タイマインタラプトをかける時間間隔は、本実
施例においては固定の1ms毎としたが、この時間間隔に
よって演奏テンポは規定されるために、テンポを変更す
る場合にはその時間間隔を変更するようにする。
A・E 演奏データ読出し処理ルーチン。演奏データを
読出してチャネル確保指示データ以外の演奏データを楽
音生成部30に供給する処理を行なう。詳細は、第6図に
示されているフローチャート図により後述する。
A・F チャネル確保指示処理ルーチン。演奏データを
読出してチャネル確保指示データを楽音生成部30に供給
するチャネル確保指示処理を行なう。詳細は、第7図に
示されているフローチャート図により後述する。
A・G タイムP・TMの値から“1"を減らして、新たな
タイムP・TMの値とする。
以上のメインルーチンによる自動演奏部20の基本的動
作は、要するにパネル処理を繰返し行なうとともに、演
奏開始が指示された場合には演奏データを読出し処理お
よびチャネル確保指示処理を所定時間毎に行なうことで
ある。
まず、パネル処理ルーチン(ステップA・B)につい
て、第5図を参照しつつ説明する。
A・B−1 パネル部21の演奏開始の操作子が新たにオ
ン操作されているか否かを判断する。
A・B−2 ステップA・B−1における判断において
演奏開始の操作子がオン操作されている場合には、演奏
データ読出し処理によって読出される演奏データの番地
を示す読出しポインタP・RPの値を、演奏データエリア
の先頭番地の値とする。
A・B−3 読出しポインタP・RPで示されている番地
の演奏データを読出し、この読出された演奏データをバ
ッファP・BFに記憶させる。
A・B−4 バッファP・BFに記憶されている演奏デー
タの経過時間“STET"の値を、演奏データを出力するタ
イミングを求めるために用いるタイミング変数P・STと
する。
A・B−5 チャネル確保指示処理によって演奏データ
を読出す番地を示す読出しポインタR・RPの値を、演奏
データエリアの先頭番地の値とする。
A・B−6 演奏データの経過時間“STET"の累算値ΣS
Tをクリヤしてその値を“0"とする。
A・B−7 読出しポインタR・RPで示されている番地
の演奏データを読出し、この読出された演奏データをバ
ッファR・BFに記憶させる。
A・B−8 バッファR・BFに記憶されている演奏デー
タの経過時間“STET"の値と、累算値ΣSTの値とを加算
してその和を累算値ΣSTとする。
A・B−9 累算値ΣSTの値が“10"以上であるか否か
を判断する。
A・B−10 ステップA・B−9における判断において
累算値ΣSTの値が“10"以上でない場合には、読出しポ
インタR・RPの値に“1"加えて“1"進める。
A・B−11 ステップA・B−9における判断において
累算値ΣSTの値が“10"以上である場合には、累算値ΣS
Tの値から“10"を減らしてその値を、チャネル確保指示
データを出力するタイミングを求めるために用いるタイ
ミング変数R・STとする。
以上のステップA・B−5〜A・B−11においては、
演奏データエリアに記憶されている演奏データをそれら
演奏データの経過時間“STET"の累算値ΣSTが“10"以上
になるまで先頭番地から読出し、累算値ΣSTが“10"以
上になった場合にはその累算値ΣSTから“10"を減らし
た値をタイミング変数R・STとしている。このようにす
るのは、演奏開始直後にはまだいずれのチャネルも楽音
生成中でないために先頭番地の読出しから10ms経過する
までの演奏データに関してはチャネル確保指示データを
出力しないようにするとともに、データ種類“STATUS"
の内容が“2"である演奏データに関してチャネル確保指
示データを対応するノートオンデータよりも10msだけ先
立って出力させるためである。この10msという値は、楽
音生成部30において生成中の楽音のエンベロープレベル
を急速に減衰させる場合に減衰が終了するに充分な時間
であって、かつ生成中の楽音が不必要に早く停止され不
自然になることがない時間として選んである。クリック
ノイズが目立たない程度でより大きな減衰速度で減衰を
行なう等によって減衰がより早く終了する場合には、こ
の時間をもっと短くしても良い。また、生成中の楽音が
不必要に早く停止された不自然になることがない程度
に、この時間を長くしても良い。
なお、タイミング変数R・ST,P・STの値をチャネル確
保指示処理および演奏データ読出し処理において所定時
間毎に減じ、“0"になったか否かを判断することによっ
て、データを出力するタイミングが求められている。
A・B−12 タイムP・TMをクリアしてその値を“0"と
する。
A・B−13 プレイフラグPLFを演奏中を示す“1"に設
定する。
A・B−14 パネル部21の演奏停止の操作子が新たにオ
ン操作されているか否かを判断する。
A・B−15 ステップA・B−14における判断において
演奏停止の操作子が新たにオン操作されている場合に
は、A−RAM23Cに設定されているノート管理マップによ
り楽音生成中の音高を探し、この音高に関して楽音停止
を指示するノートオフデータを楽音生成部30に供給して
生成中の楽音を停止させる。
A・B−16 演奏が停止されたことを示す演奏終了デー
タを楽音生成部30に供給する。
A・B−17 プレイフラグPLFを演奏中でないことを示
す“0"に設定する。
A・B−18 パネル部21の表示器の制御処理、および演
奏データを作成/編集するための操作子等のその他の操
作子に関する処理を行なう。なお、演奏データを作成/
編集する処理は公知の技術、例えば特開昭62−43197号
特許公報、特公昭63−40318号特許公報、特開昭59−121
392号公開特許公報等に示されている技術を用いること
ができるので詳しい説明は省略する。
次に、演奏データ読出し処理ルーチン(ステップA・
E)について、第6図を参照しつつ説明する。
A・E−1 タイミング変数P・STの値が“0"であるか
否かを判断する。
A・E−2 ステップA・E−1における判断において
タイミング変数P・STの値が“0"で演奏データを読出す
タイミングである場合には、バッファP・BFに記憶され
ている演奏データを読出して演奏終了を示すものか否か
を判断する。
A・E−3 ステップA・E−2における判断において
読出された演奏データが演奏終了を示すデータでない場
合には、バッファP・BFに記憶されている演奏データを
読出して楽音生成部30に供給する。なお、供給される演
奏データはデータ種類“STATUS"、音高値“NUM"および
強度値“VEL"から構成されるものであるが、読出された
演奏データのデータ種類“STATUS"の内容が“2"でチャ
ネル確保指示データの出力を伴うノートオンの場合には
データ種類“STATUS"の内容を“1"としてノートオンデ
ータとして供給する。
A・E−4 読出された演奏データにもとづいてノート
管理マップの対応する音高の欄に、読出された演奏デー
タがノートオンを示すものである場合には“1"を、ノー
トオフを示すものである場合には“0"を記憶させて、ノ
ート管理マップを更新する。
A・E−5 読出しポインタP・RPの値に“1"を加えて
“1"進め、次の演奏データの読出しを準備する。
A・E−6 演奏データエリアから読出しポインタP・
RPの値によって示されている番地の演奏データを読出
し、バッファP・BFに記憶させる。
A・E−7 バッファR・BFに記憶されている演奏デー
タの経過時間“STET"の値をタイミング変数P・STとす
る。
A・E−8 ステップA・E−2における判断において
読出された演奏データが演奏終了を示す演奏データであ
る場合には、演奏終了データを楽音生成部30に供給す
る。
A・E−9 プレイフラグPLFを演奏中でないことを示
す“0"に設定する。
A・E−10 ステップA・E−1における判断において
タイミング変数P・STの値が“0"でない場合には、タイ
ミング変数P・STの値から“1"を減らして、時間経過を
反映させる。続いて、チャネル確保指示処理ルーチン
(ステップA・F)について、第7図を参照しつつ説明
する。
A・F−1 タイミング変数R・STの値が“0"であるか
否かを判断する。
A・F−2 ステップA・F−1における判断において
タイミング変数R・STの値が“0"で演奏データを読出す
タイミングである場合には、バッファR・BFに記憶され
ている演奏データを読出し、この読出された演奏データ
が演奏終了を示すものか否かを判断する。なお、読出さ
れた演奏データが演奏終了を示すものである場合には、
他の処理を行なわずにメインルーチンに戻る。
A・F−3 ステップA・F−2における判断において
読出された演奏データが演奏終了でないことを示してい
る場合には、バッファP・BFに記憶されている演奏デー
タを読出し、この読出された演奏データがチャネル確保
指示データを出力すべきデータであるか否かを、演奏デ
ータのデータ種類“STATUS"の内容が“2"であるか否か
によって判断する。
A・F−4 ステップA・F−3における判断において
読出された演奏データがチャネル確保指示データを出力
すべきデータである場合には、バッファR・BFに記憶さ
れている演奏データにもとづくチャネル確保指示データ
を楽音生成部30に供給する。
A・F−5 読出しポインタR・RPの値に“1"を加えて
“1"進め、次の演奏データの読出しを準備する。
A・F−6 演奏データエリアから読出しポインタR・
RPによって示されている番地の演奏データを読出し、こ
の読出された演奏データをバッファR・BFに記憶させ
る。
A・F−7 バッファR・BFに記憶されている演奏デー
タの経過時間“STET"の値をタイミング変数R・STとす
る。
A・F−8 ステップA・F−1における判断において
タイミング変数R・STの値が“0"でない場合には、タイ
ミング変数R・STの値から“1"を減らして、時間経過を
反映させる。
なお、楽音生成部30に供給されるチャネル確保指示デ
ータは、データ種類“STATUS"、音高値“NUM"および強
度値“VEL"から構成されているとともに、音高値“NUM"
および強度値“VEL"は後に演奏データ読出し処理によっ
て楽音生成部30に供給されるノートオンデータに含まれ
るものと同じものである。この楽音生成部30にチャネル
確保指示データが供給される場合には、いずれかのチャ
ネルを選択する等の処理を行なうとともに、音高値“NU
M"および強度値“VEL"にもとづき楽音発生回路34を制御
する楽音制御データを求める等の処理を行なって楽音生
成開始タイミングに先立って楽音を生成する準備を行な
う。
次に、楽音生成部30におけるB−マイコン33のB−RA
M33Cに設定されているノートマップおよびチャネルマッ
プについて説明する。
○ノートマップ(第8図) 各音高に対応して使用されているチャネルのチャネル
番号が記憶され、演奏データに含まれている音高値“NU
M"に対する各音高(0〜127)に対応してチャネル番号
(1〜10)を記憶する領域が設定されている。なお、こ
の音高に対応していずれのチャネルも使用されていない
場合にはチャネル番号として“0"が記憶される。
○チャネルマップ(第9図) 各チャネル(番号)に対応して、生成中の楽音の音
高、チャネルの確保状況、ノートオン処理状況、エンベ
ロープレベルの状況および楽音制御データが記憶され
る。各チャネル(1〜10)に対応して音高(0〜127)
を記憶する領域、チャネルの確保状況を示すリザーブフ
ラグRVFが記憶される領域、チャネルのノートオン処理
状況を示すオンフラグONFが記憶される領域、チャネル
のエンベロープレベルの状況を示すアイドルフラグIDF
が記憶される領域および楽音生成開始時に用いられる楽
音発生回路34を制御する楽音制御データを記憶する領域
がそれぞれ設定されている。
リザーブフラグRVFは各チャネルに対応してそのチャ
ネルが確保状態である場合には“1"、確保状態でない場
合には“0"に設定される。また、オンフラグONFは各チ
ャネルに対応してそのチャネルがノートオンを受取って
いるが未だ楽音生成を行なっていない場合には“1"、楽
音生成を行なっている場合には“0"に設定されるととも
に、アイドルフラグIDFは各チャネルに対応してそのチ
ャネルのエンベロープレベルが“0"の場合には“1"、エ
ンベロープレベルが“0"でない場合には“0"に設定され
る。
ここで、「確保状態」の意味について説明する。
楽音生成部30において、チャネル確保指示データが供
給される場合にはいずれかのチャネルを選択して必要に
応じてそのチャネルのエンベロープレベルを減衰させ、
チャネル確保指示データに対応したノートオンデータが
供給される場合には先程選択したチャネルを楽音生成に
使用する。なお、「確保状態」はチャネル確保指示デー
タが供給されてからノートオンデータが供給され楽音生
成が開始されるまで保持されて「確保状態」になってい
るチャネルは他の楽音生成に関するチャネル選択の対象
から除かれる。このために、ノートオンデータが供給さ
れた時点において楽音生成に用いるチャネルを確実に用
意しておくことができる。
次に、楽音生成部30の基本的動作について、第10図に
示されているメインルーチンのフローチャート図にもと
づき説明する。
B・A 電源の投入により所定プログラムの実行を開始
してB−RAM33Cに設定されているワーキングエリアをク
リヤするとともに、B−インターフェース回路31および
楽音発生回路34を初期設定する。
B・B B−インターフェース回路31を介して自動演奏
部20から演奏データが供給されているか否かを判断す
る。
B・C B−インターフェース回路31から供給された1
個の演奏データを読出してバッファD・BFに記憶させ
る。
B・D バッファD・BFに記憶されている演奏データが
チャネル確保指示データであるか否かを判断する。
B・E チャネル確保処理ルーチン。チャネル確保指示
データに対応して後に供給されるノートオンデータによ
る楽音を生成するのに用いるチャネルを確保するチャネ
ル確保処理を行なう。詳細は、第11図に示されているフ
ローチャート図により後述する。
B・F アサイン処理ルーチン。チャネル確保指示デー
タに対応して後に供給されるノートオンデータによる楽
音を、確保したチャネルに割当てるアサイン処理を行な
う。詳細は、第12図に示されているフローチャート図に
より後述する。
B・G ステップB・Dにおける判断においてバッファ
D・BFに記憶されている演奏データがチャネル確保指示
データでない場合には、このバッファD・BFに記憶され
ている演奏データがノートオンデータであるか否かを判
断する。
B・H ステップB・Gにおける判断においてバッファ
D・BFに記憶されている演奏データがノートオンデータ
である場合には、このバッファD・BFに記憶されている
ノートオンデータに対応したチャネル確保指示データに
もとづきチャネル確保が既に行なわれているか否かを判
断する。具体的には、供給されるノートオンデータの音
高値“NUM"によってノートマップを参照して対応するチ
ャネル番号を読出し、この読出されたチャネル番号によ
ってチャネルマップを参照して対応するリザーブフラグ
RSVが“1"であるか否かによって判断する。
B・I チャネル確保処理ルーチン。ステップB・Eと
同様のチャネル確保処理を行なう。
B・J アサイン処理ルーチン。ステップB・Fと同様
のアサイン処理を行なう。
B・K バッファD・BFに記憶されているノートオンデ
ータの音高値“NUM"によってノートマップを参照して対
応するチャネル番号を読出し、この読出されたチャネル
番号をチャネル番号CHとする。
B・L チャネルマップにおけるチャネル番号CHに対応
するオンフラグONF(CH)を、チャネルがノートオンを
受取ったが未だ楽音生成を行なっていないことを示す
“1"に設定する。
B・M ステップB・Gにおける判断においてバッファ
D・BFに記憶されている演奏データがノートオンデータ
でない場合には、このバッファD・BFに記憶されている
演奏データがノートオフデータであるか否かを判断す
る。なお、ノートオフデータでない場合には、演奏終了
データである。
B・N ステップB・Mにおける判断においてバッファ
D・BFに記憶されている演奏データがノートオフデータ
である場合には、このノートオフデータにもとづいて楽
音生成を、次のようにして停止させる。
演奏データに含まれている停止される楽音の音高値
“NUM"によりノートマップからその音高値“NUM"に対応
するチャネル番号を読出し、この読出されたチャネル番
号に対応する楽音発生回路34のチャネルに楽音生成停止
用の楽音制御データを供給して生成中の楽音を停止させ
る。なお、読出されたチャネル番号が“0"であった場合
にはその音高値“NUM"に対応した楽音は既に停止されて
いることを示すためにその場合には何もしない。
B・O ステップB・Mにおける判断においてバッファ
D・BFに記憶されている演奏データがノートオフデータ
でない場合には、演奏が終了あるいは途中で停止されて
いるために、チャネルマップの全てのリザーブフラグRV
Fを“0"に設定して確保状態を解除する。
B・P 楽音生成処理ルーチン。楽音を生成する楽音生
成処理を行なう。詳細は、第13図に示されているフロー
チャート図により後述する。
まず、チャネル確保処理ルーチン(ステップB・E,B
・I)について、第11図を参照しつつ説明する。
B・E−1 チャネルマップを参照してリザーブフラグ
RVFが“0"を示す確保状態でない各チャネルのエンベロ
ープレベル(現在値)を楽音発生回路34より読出し、最
もエンベロープレベルの小さいチャネルを選択する。
B・E−2 選択されたチャネルのチャネル番号をチャ
ネル番号CHEとする。
B・E−3 選択されたチャネルのエンベロープレベル
が“0"であるか否かを判断する。
B・E−4 ステップB・E−3における判断において
選択されたチャネルのエンベロープレベルが“0"でない
場合には、選択されたチャネルのエンベロープレベルが
急速に減衰するように楽音発生回路34に楽音制御データ
を供給する。なお、B−マイコン33は楽音発生回路34に
楽音制御データを供給した後には直ぐにメインルーチン
に戻るとともに、楽音発生回路34においては供給された
楽音制御データにもとづいてエンベロープレベルを急速
に減衰させる。
以上のチャネル確保処理ルーチンは、確保状態でない
チャネルのうちのエンベロープレベルが最も小さいチャ
ネルを選択して、そのエンベロープレベルが“0"でない
場合には、エンベロープレベルを急速に減衰させるもの
である。
次に、アサイン処理ルーチン(ステップB・F,B・
J)について、第12図を参照しつつ説明する。
B・F−1 エンベロープインタラプトをマスクする。
なお、マスクされている間にエンベロープインタラプト
がかけられた場合には、エンベロープインタラプトに関
する処理は保留され、マスクが解除されたのちに実行さ
れる。
B・F−2 バッファD・BFに記憶されている演奏デー
タに含まれている音高値“NUM"によって示される生成さ
れる楽音の音高に対応するノートマップのうちのチャネ
ル番号を記憶する領域に、選択されたチャネルのチャネ
ル番号CHEを記憶させる。また、チャネル番号CHEにもと
づいてチャネルマップを参照して選択されたチャネルが
従前まで対応していた音高を読出し、この読出された音
高に対応していずれのチャネルも使用されていないこと
を示す“0"をノートマップのその音高に対応するチャネ
ル番号を記憶する領域に記憶させる。
B・F−3 チャネル番号CHEに対応するチャネルマッ
プの音高を記憶する領域に、バッファD・BFに記憶され
ている演奏データに含まれている音高値“NUM"によって
示される生成される楽音の音高の番号を記憶させる。ま
た、リザーブフラグRVF(CHE)をそのチャネル番号CHE
に対応するチャネルが確保状態であることを示す“1"に
設定する。さらに、バッファD・BFに記憶されている演
奏データに含まれている音高値“NUM"、強度値“VEL"に
もとづき生成する楽音の音高、音色、音量等を制御する
楽音制御データを求めて楽音制御データを記憶する領域
に記憶させる。
B・F−4 エンベロープインタラプトのマスクを解除
する。
以上のアサイン処理ルーチンは、要するに新たに生成
される楽音に対応してノートマップ、チャネルマップを
更新しているものである。
続いて、楽音生成処理ルーチン(ステップB・P)に
ついて、第13図を参照しつつ説明する。
B・P−1 チャネル番号CHPを“1"に設定する。
B・P−2 チャネルマップのチャネル番号CHPに対応
するオンフラグONF(CHP)が“1"であるか否かによって
そのチャネル番号CHPに対応するチャネルがノートオン
を受取っているが未だ楽音生成を行なっていないか否か
を判断する。
B・P−3 ステップB・P−2における判断において
チャネル番号CHPに対応するチャネルがノートオンを受
取っているが未だ楽音生成を行なっていない場合には、
チャネルマップのチャネル番号CHPに対応するアイドル
フラグIDF(CHP)が“1"であるか否かによってそのチャ
ネル番号CHPに対応するチャネルのエンベロープレベル
が“0"であるか否かを判断する。
B・P−4 ステップB・P−3における判断において
チャネル番号に対応するチャネルのエンベロープレベル
が“0"である場合には、チャネルマップからチャネル番
号CHPに対応するチャネルの楽音制御データを読出し、
この読出された楽音制御データを楽音発生回路34のチャ
ネル番号CHPに対応するチャネルに供給して楽音を生成
する。
B・P−5 チャネルマップのチャネル番号CHPに対応
するチャネルのリザーブフラグRVF(CHP)、オンフラグ
ONF(CHP)およびアイドルフラグIDF(CHP)を“0"に設
定する。
B・P−6 チャネル番号CHPが全チャネル数“10"と等
しいか否かを判断する。
B・P−7 ステップB・P−6における判断において
チャネル番号CHPが全チャネル数“10"と等しくない場合
には、チャネル番号CHPの値に“1"を加えて“1"進め
る。
以上の楽音生成処理ルーチンは、要するにノートオン
を受取っているか未だ楽音生成を行なっておらず、かつ
エンベロープレベルが“0"であるチャネルに対して楽音
生成を行ない、関連するフラグを“0"に設定するもので
ある。
最後に、エンベロープインタラプト処理ルーチンにつ
いて、第14図を参照しつつ説明する。
エンベロープインタラプトは、いずれかのチャネルの
エンベロープレベルが供給される目標値に達した場合に
かかり、次の処理が行なわれる。
X−1 供給される目標値データの目標値にエンベロー
プレベルが達したチャネルのチャネル番号を楽音発生回
路34から読出してチャネル番号CHXとする。
X−2 チャネル番号CHXに対応するチャネルのエンベ
ロープレベルを楽音発生回路34から読出してエンベロー
プレベルが“0"であるか否か、言い換えればエンベロー
プが終了したか否かを判断する。
X−3 ステップX−2における判断においてチャネル
番号CHXに対応するチャネルのエンベロープが終了して
いない場合には、所望のエンベロープ波形を形成する新
たなレートデータおよび目標値データを含む楽音制御デ
ータを楽音発生回路34に供給する。
X−4 ステップX−2における判断においてチャネル
番号CHXに対応するチャネルのエンベロープが終了して
いる場合には、このチャネル番号CHXに対応するチャネ
ルのアイドルフラグIDF(CHX)をそのチャネルのエンベ
ロープレベルが“0"であることを示す“1"に設定する。
X−5 チャネル番号CHXによってチャネルマップを参
照してそのチャネル番号CHXに対応するチャネルのリザ
ーブフラグRVF(CHX)が“1"であるか否かによってその
チャネルが確保状態であるか否かを判断する。
X−6 ステップX−5における判断においてチャネル
番号CHXに対応するチャネルが確保状態でない場合に
は、チャネル番号CHXによってチャネルマップを参照し
てそのチャネル番号CHXに対応するチャネル音高を読出
し、この読出された音高に対応するノートマップのうち
のチャネル番号を記憶する領域にいずれのチャネルも使
用されていないことを示す“0"を記憶させる。
以上のエンベロープインタラプト処理ルーチンは、要
するに供給される目標値データの目標値にエンベロープ
レベルが達したチャネルに関して、エンベロープレベル
が“0"でない場合には所望のエンベロープ波形を形成す
る新たな楽音制御データを楽音発生回路34に供給する。
また、エンベロープレベルが“0"である場合にはそのチ
ャネルに対応するアイドルフラグIDFを“1"に設定し、
さらに確保状態でない場合にはノートマップを書換えて
いるものである。
次に、本実施例の電子楽器の動作について説明する。
パネル部21の演奏開始指示の操作子をオン操作すると
演奏が開始され、自動演奏部20においてA−マイコン23
のA−RAM23Cに記憶されている演奏データの読出しが行
なわれる。この演奏データの読出しは、1個の演奏デー
タに関してそれぞれ演奏データ読出し処理とチャネル確
保指示処理とが行なわれる。まず、演奏データ読出し処
理により、読出された演奏データがノートオンを示す場
合にはノートオンデータが、ノートオフを示す場合には
ノートオフデータが楽音生成部30に供給される。また、
チャネル確保指示処理により、読出された演奏データが
チャネル確保指示データの出力を伴うノートオンを示す
場合にはチャネル確保指示データが楽音生成部30に供給
される。なお、ある演奏データにもとづいてチャネル確
保指示データが楽音生成部30に供給される場合には、10
msだけ遅れて同じ演奏データにもとづくノートオンデー
タが楽音生成部30に供給される。
一方、楽音生成部30にチャネル確保指示データが供給
される場合には、このチャネル確保指示データに対応し
て後に供給されるノートオンデータに対処してチャネル
を選択し、この選択されたチャネルのエンベロープレベ
ルが“0"でない場合にはエンベロープレベルの急速減衰
を行なうとともに、楽音生成用の楽音制御データを求め
て記憶させる。次に、楽音生成部30にチャネル確保指示
データに対応したノートオンデータが供給される場合に
は、選択されたチャネルに先程求めておいた楽音制御デ
ータを供給して楽音を生成させる。なお、ノートオフを
示す演奏データが供給される場合には生成中の楽音を停
止させる。また、チャネル確保指示データに対応しない
ノートオンデータが供給される場合には、チャネルをそ
の時点で選択してその選択されたチャネルのエンベロー
プレベルが“0"でない場合にはエンベロープレベルの急
速減衰を行なうとともに、楽音生成用の楽音制御データ
を求めて楽音を生成させる。
以上に説明したように、楽音生成開始のタイミングが
重要な楽音に関してはデータ種類“STATUS"の内容を
“2"に設定してチャネル確保指示データを出力するよう
に演奏データを作成すると、楽音生成部30にノートオン
データが供給されて楽音生成のタイミングとなった時点
においては、既にエンベロープレベルが“0"であるチャ
ネルが常に用意されてエンベロープレベルの急速減衰を
改めて行なう必要がないために楽音生成が遅れることな
く行なわれる。また、楽音生成部30にノートオンデータ
が供給された時点では既に楽音制御用データが用意さ
れ、改めて楽音制御用データを求める必要がないことも
楽音生成が遅れずに行なえることに貢献している。
本実施例においては、メロディーパート、伴奏パー
ト、リズムパート等の複数個のパートによる演奏につい
ては示さなかったが、複数個のパートによる演奏を行な
う場合について、次に説明する。なお、複数個のパート
による演奏を行なう場合にA−RAM23Cに設定される演奏
データエリアが第15図に示されているが、本実施例にお
ける第3図に示されているものと異なる点は各演奏デー
タにその演奏データがいずれのパートに属するかをパー
ト番号(1〜10)で示す記憶領域PARTが設けられている
点である。
自動演奏部20から楽音生成部30にパート番号を付した
演奏データを供給し、楽音生成部30において第8図に示
されているノートマップを各パート毎に設ける等して各
パート毎に音高と対応するチャネルとを管理し、演奏デ
ータに含まれるパート番号に対応した音色の楽音を生成
する。この場合に、特定のパート、例えば基本的なリズ
ム感を形成して正確な楽音生成タイミングが要求される
リズムパートに関してのみチャネル確保指示データを出
力するようにしても良い。特に、リズムパートの演奏デ
ータに関してチャネル確保指示データを出力する場合に
は、リズムパートのノートオンを示す演奏データのデー
タ種類“STATUS"の内容を“2"に設定するように演奏デ
ータを作成する。この演奏データの作成方法としては使
用者が各演奏データのデータ種類の“STATUS"をそれぞ
れ入力記憶するようにしても良いが、使用者はノートオ
ンあるいはノートオフとのみ演奏データを入力するだけ
で、リズムパートの演奏データに関してはその演奏デー
タがノートオンを示す場合には自動演奏部20が自動的に
データ種類“STATUS"の内容を“2"と記憶するようにし
ても良い。また、ノートオンを示す全ての演奏データの
データ種類“STATUS"の内容を“1"と記憶し、演奏デー
タの読出しを行なう時点、具体的にはチャネル確保指示
処理においてリズムパートのノートオンデータに関して
は自動演奏部20が自動的にデータ種類“STATUS"の内容
を“2"とした演奏データを出力するようにしても良い。
また、生成される楽音の音色(特定の音色)に対応し
て、例えば鋭い立上がりのエンベロープ形状を有するピ
アノ等の音色に対応して、チャネル確保指示データを出
力するようにしても良い。例えば、楽音生成部30におい
て生成する楽音の音色切換えを指示する音色切換えデー
タを演奏データとして記憶して、この音色切換えデータ
を演奏中に楽音生成部30に供給する構成とした場合に
は、自動演奏部20において記憶されている音色切換えデ
ータにもとづいて、特定の音色への音色切換え指示デー
タの後に読出されるノートオンを示す演奏データに関し
てチャネル確保指示データを自動的に出力するようにし
ても良い。
なお、全てのオートオンデータに対応してチャネル確
保指示データを出力する場合には、ノートオンデータの
データ種類“STATUS"の内容を“1"に設定して記憶し、
チャネル確保指示処理のステップA・F−3において、
データ種類“STATUS"の内容が“1"であると判断した場
合に、チャネル確保指示データを出力するようにしても
良い。
(第2実施例);第2,3発明 第1実施例における自動演奏部20においては、演奏デ
ータの読出し時に楽音生成部30に2個の演奏データ、言
い換えればチャネル確保指示データおよびノートオンデ
ータを供給するデータ種類“STATUS"の内容が“2"であ
る演奏データのために、このデータ種類“STATUS"の内
容が“2"の演奏データの個数が例え極く少なかったとし
ても演奏データの読出し処理を全演奏データに関して2
回づつ行なわねばならない。このために、第1実施例の
自動演奏部20におけるA−マイコン23のA−CPU23Aの負
担は、従来のいわゆる自動演奏装置のものと較べて2倍
になっている。
ところで、本実施例においては、従来のいわゆる自動
演奏装置と同様に演奏データのノートオンデータを示す
種類“STATUS"の内容としては“1"だけとして自動演奏
部20における演奏データの読出し処理を1回だけ行なう
ようにする。この代わりに、楽音生成タイミングが重要
なノートオンデータについては、A−マイコン23のA−
RAM23Cにおける演奏データエリアにおいてそのノートオ
ンデータよりも前に、第1実施例を例にすれば10msだけ
前に読出される記憶箇所にそのノートオンデータに対応
するチャネル確保指示データの出力のみを指示する演奏
データを記憶し、この演奏データが読出された時にチャ
ネル確保指示データを楽音生成部30に供給するようにし
て、CPUの負担増を最小限にしつつ第1実施例と同様の
効果を得ている。
次に、本実施例について具体的に説明するが、第1実
施例と同一符号は同一内容を示すとともに、特に第1実
施例と異なる部分についてのみ説明して重複する部分等
の説明等は省略する。
まず、前述のような処理を行なうためのA−RAM23Cに
おける演奏データエリアにつき、第16図を参照しつつ説
明する。
1個の演奏データを構成するデータ種類“STATUS"、
音高値“NUM"、強度値“VEL"および経過時間“STET"の
意味内容は、第1実施例の場合と同様であるが、前述さ
れたチャネル確保指示データの出力のみを指示する演奏
データのデータ種類“STATUS"の内容は“3"に設定され
ている。なお、第16図中においてアによって示されてい
る演奏データは、イによって示されているノートオンの
演奏データに対応するチャネル確保指示データの出力を
指示する演奏データである。したがって、ア、イにより
示されている両演奏データの音高値“NUM"および強度値
“VEL"の内容は同一になっているとともに、イによって
示されている演奏データはアによって示されている演奏
データが読出された10ms後に読出されるように経過時間
“STET"の値が“10"に設定されている。
自動演奏部20においては、データ種類“STATUS"の内
容が“3"である演奏データを読出した場合には、第1実
施例と同様にチャネル確保指示データを楽音生成部30に
供給する。このようなデータ種類“STATUS"の内容が
“3"である演奏データは、使用者によってパネル部21の
操作子の操作により入力記憶させるようにしても良い
が、演奏のパートまたは音色に対応して演奏データにも
とづいてチャネル確保指示データを出力すべき演奏デー
タをA−マイコン23が判断してデータ種類“STATUS"の
内容が“3"である演奏データを一連の時系列の演奏デー
タ中に挿入するようにしても良い。
次に、第1および第2の実施例の変形例等について説
明する。
第1および第2の実施例においては、チャネル確保指
示データはいずれかのノートオンデータに必ず対応して
いる。したがって、楽音生成部30においては、チャネル
確保指示データを受取る場合にそのチャネル確保指示デ
ータに対応して後に供給されるノートオンデータによっ
て生成される楽音のために、いずれかのチャネルを選択
し、必要に応じてそのチャネルに対するエンベロープレ
ベルを急速減衰させて割当てチャネルを確保している。
しかしながら、第1あるいは第2の実施例において、
全てのノートオンデータに対応してチャネル確保指示デ
ータを出力する場合には、チャネル確保指示データの出
力を指示する演奏データの音高値“NUM"および強度値
“VEL"を無視して、チャネル確保指示データに対応して
選択されたチャネルを特定のノートオンデータと対応さ
せないようにしても良い。これに際して、楽音生成部30
においては、チャネル確保指示データを受取る場合に
は、第1および第2実施例と同様にいずれかのチャネル
を選択するとともに、アサイン処理、楽音制御データを
求める処理は行なわないで必要に応じてエンベロープレ
ベルの急速減衰処理のみを行なう。なお、この時に選択
されたチャネルの確保状態はエンベロープレベルが“0"
となった時点で解除され、次に楽音生成部30がノートオ
ンデータを受取った場合には改めてチャネルを選択し直
してアサイン処理、楽音制御データを求める処理を行な
って楽音を生成するようにする。したがって、ノートオ
ンデータを受取った時に選択されるチャネルはエンベロ
ープレベルが最も小さいものであるために、結局それ以
前のチャネル確保指示データによる処理によってエンベ
ロープレベルが“0"とされたチャネルが選択されること
になり、第1および第2の実施例と同様にエンベロープ
レベルの急速減衰による楽音生成の遅れを生じることは
ない。
また、複数個のパートによる演奏を行ない特定のパー
トのノートオンに対してのみチャネル確保指示データを
出力する場合には、楽音生成部30においてチャネル確保
指示データにもとづいて選択確保されたチャネルを、特
定のパートのノートオンデータであればいずれのノート
オンデータに対しても使用するようにしても良い。これ
に際して、楽音生成部30においては、チャネル確保指示
データを受取る場合にはいずれかのチャネルを選択する
とともに、アサイン処理、楽音制御データを求める処理
は行なわないで必要に応じてエンベロープレベルの急速
減衰処理のみを行なってそのチャネルを確保状態とす
る。そして、特定のパートに対応するノートオンデータ
を受取る場合には確保状態とされているチャネルがあれ
ばそのチャネルを選択して楽音を生成するようにすると
ともに、特定のパート以外のノートオンデータを受取る
場合には確保状態としたチャネル以外のチャネルを用い
て楽音を生成するようにする。
なお、このような手法を採る場合において、和音演奏
等の複数個の楽音を同時に生成するような場合には、複
数個のチャネル確保指示データを同時に出力しなければ
ならない。このような場合には、チャネル確保指示デー
タの出力を指示するデータをノートオンデータの数と同
じだけ記憶させておいても良いが、1個のチャネル確保
指示データの出力を指示するデータによって同時に複数
個のチャネル確保指示データを出力するようにして、チ
ャネル確保指示データの出力を指示するデータに同時に
出力するチャネル確保指示データの個数を示すデータを
音高値“NUM"または強度値“VEL"等の領域を用いて含ま
せるようにしても良い。または、同時に複数個のチャネ
ル確保指示データを出力するのではなくてチャネル確保
指示データの出力を指示するデータに選択するチャネル
の数を示すデータを含ませるようにして、選択すべきチ
ャネルの数を示すデータを含んだチャネル確保指示デー
タを1個だけ出力するようにして楽音生成部30において
は指示された数のチャネルを選択確保するようにしても
良い。また、チャネル確保指示データに、現在生成中の
いずれの楽音に対応しているチャネルを選択して生成中
の楽音を消去するかを生成中の楽音に対応する音高で指
定するデータを含ませるようにしても良く、この場合に
は生成中の楽音の停止により損われる音楽性が最も小さ
い楽音を使用者が任意に指定できる。
ところで、チャネル確保指示データを特定のノートオ
ンデータに関してのみ出力する場合には、いずれのノー
トオンデータに関してチャネル確保指示データを出力す
るかが重要となる。一度作成した演奏データを演奏する
ことにより、楽音生成タイミングが正確か否かによって
そのような判断をすることもできるが、このような判断
は初心者にとっては困難である。したがって、楽音生成
タイミングが不正確になるのはエンベロープレベルの急
速減衰が行なわれる場合であることに着目して、楽音生
成部30において演奏中にそのような急速減衰が行なわれ
たことを表示するようにしても良い。これに際して、1
個の急速減衰中に別の急速減衰が重ねて行なわれた場合
等の急速減衰の度合いに応じて表示態様を変えるように
しても良い。また、急速減衰開始時のエンベロープレベ
ルが大きく、急速減衰が終了するのに要する時間が大き
い場合には楽音生成タイミングを顕著に遅らせるところ
から、急速減衰開始時のエンベロープレベルを合わせて
表示するようにしても良い。さらに、急速減衰は短時間
で終了してしまうために、表示機能としては急速減衰が
起った瞬間に表示を始め、ある程度の時定数をもって表
示を消すようなものが好ましい。この場合の時定数とし
ては4分音符1つ分の長さ等テンポに応じるようにして
も良いし、また固定でも良い。さらにまた、急速減衰が
いずれの楽音の生成に関して起ったのかを音高表示等で
表示するようにしても良い。または、楽音生成部30にお
いて急速減衰が行なわれた時に、いずれのノートオンの
受取りにもとづいて急速減衰が行なわれたかを示す情報
を自動演奏部20に供給し、自動演奏部20においてはその
情報にもとづいて急速減衰が行なわれるきっかけとなっ
たノートオンデータに対して、次回の演奏時からはその
ノートオンに対応してチャネル確保指示データを自動的
に出力するようにしても良い。なお、第1の実施例に適
用する場合にはそのノートオンデータのデータ種類“ST
ATUS"の内容を“2"に設定し、第2実施例に適用する場
合にはデータ種類“STATUS"の内容が“3"であるデータ
をそのノートオンデータより10ms早く読出されるよう記
憶する。このようにすれば、作成した演奏データにもと
づく演奏を一度行なわせれば、次回からは必要な箇所で
チャネル確保指示データが自動的に出力されるようにな
り、使用者がチャネル確保指示データの送出を考慮する
ことなしに楽音生成のタイミングが正確な演奏が行なえ
るようになる。
(第3実施例);第4発明 第1実施例において説明した手法では、自動演奏部20
において演奏データを2回づつ読出すことによって楽音
生成タイミングに先立ってチャネル確保指示データを出
力している。
ところで、本実施例においては、自動演奏部20が通常
のいわゆる自動演奏装置と同様に演奏データを1回だけ
読出して通常のノートオン/オフの演奏データを楽音生
成部30に供給するだけとする。この代わりに、楽音生成
部30において供給される演奏データを所定時間だけ遅延
させることによって時間をおいて演奏データを2回づつ
用いるようにして、同様の効果を得ている。
次に、本実施例について具体的に説明するが、第1実
施例と同一符号は同一内容を示すとともに、特に第1実
施例と異なる部分についてのみ説明して重複する部分等
の説明等は省略する。
第1実施例においては自動演奏部20が演奏データを読
出す処理として演奏データ読出し処理およびチャネル確
保指示処理の2つの処理を行なったが、本実施例におい
ては自動演奏部20が通常のいわゆる自動演奏装置と同様
の動作をすれば良いことから演奏データ読出し処理のみ
が行なわれる。一方、楽音生成部30のB−マイコン33に
は、B−CPU33A、B−ROM33BおよびB−RAM33Cに加えて
本実施例においては1ms毎の所定時間毎にタイムインタ
ラプトをかけて所定のタイムインタラプト処理を行なわ
せるタイマが設けられている。なお、その他は第1実施
例の場合と同様である。
まず、楽音生成部30におけるB−マイコン33のB−RA
M33Cに設定されている遅延バッファにつき、第17図を参
照しつつ説明する。
供給される演奏データが記憶されるとともに、この記
憶される演奏データは本実施例においては10msの所定時
間後に読出される。第1実施例における自動演奏部20の
A−マイコン23のA−RAM23Cに設定されている演奏デー
タエリアと同様の構成であって、1個の演奏データに関
してデータ種類“STATUS"、音高値“NUM"、強度値“VE
L"および経過時間“STET"を記憶する領域より構成され
ている。この経過時間“STET"は直前の演奏データから
の時間経過を記憶して記憶されている演奏データの読出
しタイミングを規制するものであり、演奏データを読出
すタイミングを求めるには第1実施例における演奏デー
タ読出し処理と同様に経過時間“STET"の値を所定時間
毎に“1"を減じてその値が“0"になることにより、次の
読出しタイミングを定めるものである。なお、これらの
演奏データは、共通の書込みポインタまたは読出しポイ
ンタでもって示される箇所に対して書込みまたは読出し
がされるように構成されている。また、一時的な記憶に
しか使用されないために、仮想的にリング状に構成され
ているとともに、100個分の演奏データに相当する10ms
の遅延に充分な記憶容量に構成されている。
次に、楽音生成部30の基本的動作について、第18図に
示されているメインルーチンのフローチャート図にもと
づき説明する。なお、本実施例においても第1実施例と
同様に楽音生成部30におけるB−マイコン33のB−RAM3
3Cにノートマップおよびチャネルマップが設定されてい
るとともに、エンベロープインタラプト処理が行なわれ
る。
C・A 電源の投入により所定プログラムの実行を開始
しB−RAM33Cに設定されているワーキングエリアをクリ
ヤするとともに、B−インターフェース回路31、楽音発
生回路34およびB−タイマを初期設定する。
C・B B−インターフェース回路31を介して自動演奏
部20より演奏データが供給されているか否かを判断す
る。
C・C B−インターフェース回路31から供給された1
個の演奏データを読出してバッファD・BFに記憶させ
る。
C・D バッファD・BFに記憶されている演奏データが
ノートオンデータであるか否かを判断する。なお、本実
施例においては自動演奏部20から供給される演奏データ
はノートオンデータ、ノートオフデータおよび演奏終了
データだけであるために、供給される演奏データがノー
トオンデータでない場合にはノートオフデータあるいは
演奏終了データである。
C・E チャネル確保指示ルーチン。バッファD・BFに
記憶されているノートオンデータにもとづいて第1実施
例と同様のチャネル確保処理を行なう。
C・F アサイン処理ルーチン。バッファD・BFに記憶
されているノートオンデータにもとづいて第1実施例と
同様のアサイン処理を行なう。
C・G 遅延バッファ記憶処理ルーチン。バッファD・
BFに記憶されている演奏データをB−RAM33Cに設定され
ている遅延バッファに記憶させる遅延バッファ記憶処理
を行なう。詳細は、第20図に示されているフローチャー
ト図により後述する。
C・H B−タイマにより1ms毎の所定時間毎にかけら
れるタイマインタラプトに応じて実行されるタイマイン
タラプト処理を行なう毎にその値が“1"増やされるとと
もに、次ステップC・Iの楽音生成開始/停止処理を行
なう毎にステップC・Jにおいてその値が“1"減らされ
るタイムD・TMの値が“0"を超えているか否かを判断す
る。このような処理により、次ステップC・Iの楽音生
成開始/停止処理が1ms毎に行なわれる。
C・I 楽音生成開始/停止処理ルーチン。遅延バッフ
ァに記憶されている演奏データを読出して楽音生成/停
止を行なう。詳細は、第21図に示されているフローチャ
ート図により後述する。
C・J タイムD・TMの値を“1"減らして、新たなタイ
ムD・TMの値とする。
続いて、演奏データを遅延バッファに記憶させて10ms
だけ遅延させる動作を、第19図(A)(B)を参照して
説明する。
第1の演奏データが記憶されてから10ms以上経過した
後に、次の演奏データが記憶される場合を示している第
19図(A)において、時刻t1において第1の演奏データ
が遅延バッファに書込まれて記憶されているとする。こ
の場合に、遅延バッファの第1の演奏データ対応する経
過時間“STET"の値として“10"を記憶させ、記憶させて
から経過時間“STET"の値を1ms毎に“1"減らして経過時
間“STET"の値が“0"になった時刻t′1において演奏
データを読出すようにする。このようにすれば、時刻t1
と時刻t′1との差は10msとなって、演奏データは10ms
だけ遅延されることになる。その後に、第2の演奏デー
タが時刻t2において遅延バッファに記憶される場合も同
様にして10ms遅延される。同様にして遅延バッファに記
憶される演奏データは各10msだけ遅延される。
次に、第1の演奏データが記憶されてから10ms以上経
過する以前に、次の演奏データが記憶される場合を示し
ている第19図(B)において、時刻t1から6ms後の時刻t
2において第2の演奏データが遅延バッファに記憶され
ているとする。この場合に、第1の演奏データの遅延は
前述と同様にして行なわれるが、第2の演奏データに関
しては遅延バッファの第2の演奏データに対応する経過
時間“STET"の値として“6"を記憶させ、第1の演奏デ
ータを読出してから第2の演奏データに対応する経過時
間“STET"の値を1ms毎に“1"減らして経過時間“STET"
の値が“0"となった時刻t′2において第2の演奏デー
タを読出すようにする。このようにすれば、時刻t′1
と時刻t′2との差は6msとなり、時刻t2と時刻t′2
との差は10msとなって第2の演奏データは10ms遅延され
る。
以上のように、直前の演奏データが記憶された時点か
らの経過時間が10ms以上であれば経過時間“STET"の値
として“10"を記憶させ、直前の演奏データが記憶され
た時点からの経過時間が10ms以内であれば経過時間“ST
ET"に経過時間をそのまま記憶するようにする。
まず、遅延バッファ記憶処理ルーチン(ステップC・
G)について、第20図を参照しつつ説明する。
C・G−1 バッファD・BFに記憶されているデータ種
類“STATUS"、音高値“NUM"および強度値“VEL"の演奏
データを遅延バッファの書込みポインタによって示され
ている箇所に記憶させる。
C・G−2 タイミング変数D・STの値を遅延バッファ
の書込みポインタによって示されている箇所の経過時間
“STET"の値とする。
C・G−3 タイミング変数D・STの値を“0"に設定す
る。
C・G−4 書込みポインタの値に“1"を加えて“1"進
める。
続いて、楽音生成開始/停止処理ルーチンについて、
第21図を参照しつつ説明する。
C・I−1 遅延バッファに記憶されている演奏データ
の経過時間“STET"の値を減らしている最中に“1"に設
定されるフラグCDFが“1"であるか否かを判断する。
C・I−2 ステップC・I−1における判断において
フラグCDFが“1"でない場合には、書込みポインタの値
と読出しポインタの値とが同じか否かを判断する。各ポ
インタの値が同じである場合には遅延バッファに演奏デ
ータが記憶されていないことを示すのでメインルーチン
に戻る。
C・I−3 ステップC・I−2における判断において
書込みポインタの値と読出しポインタの値とが同じでな
い場合には、遅延バッファの読出しポインタで示されて
いる演奏データを読出し、データ種類“STATUS"、音高
値“NUM"および強度値“VEL"をバッファG・BFに記憶さ
せるとともに、経過時間“STET"の値をタイミング変数C
D・STとする。
C・I−4 タイミング変数CD・STの値が“0"であるか
否かを判断する。
C・I−5 ステップC・I−4における判断において
タイミング変数CD・STの値が“0"である場合には、演奏
データを読出すタイミングであるために、バッファG・
BFに記憶されている演奏データを読出し、この読出され
た演奏データにもとづいて第1実施例のステップB・
G、B・K〜B・Pと同様の処理を行なって、楽音の生
成開始/停止、確保状態の解除を行なう。
C・I−6 読出しポインタの値に“1"を加えて“1"進
め、次の演奏データの読出しを準備する。
C・I−7 フラグCDFを“0"に設定する。
C・I−8 ステップC・I−4における判断において
タイミング変数CD・STの値が“0"でない場合には、タイ
ミング変数CD・STの値を“1"減らして時間経過を反映さ
せる。
C・I−9 フラグCDFを演奏データの経過時間“STET"
の値を減らしている最中であることを示す“1"に設定す
る。
最後に、タイマインタラプト処理ルーチンについて、
第22図を参照しつつ説明する。
Y−1 遅延バッファ記憶処理を行なう毎にその値が
“0"にクリアされるとともに、当該タイマインタラプト
処理毎に値が“1"増やされて直前の遅延バッファ記憶処
理からの時間経過を示しているタイミング変数D・STの
値を“1"増やして、新たなタイミング変数D・STとす
る。
Y−2 タイミング変数D・STの値が“10"を超えてい
るか否かを判断する。
Y−3 ステップY−2における判断においてタイミン
グ変数D・STの値が“10"を超えている場合には、タイ
ミング変数D・STの値を“10"に設定する。
したがって、時間経過によってタイミング変数D・ST
の値が“10"を超えるようになった場合には“10"に固定
される。なお、タイミング変数D・STの値は電源投入時
のステップC・Aによる初期化によって初期値として
“10"に設定されている。
Y−4 タイムD・TMの値を“1"増やして、新たなタイ
ムD・TMの値とする。
なお、本実施例の楽音生成部30においてタイマインタ
ラプトをかける時間間隔は第1実施例の場合とは異なり
演奏テンポとは無関係である。次に、本実施例の電子楽
器の動作について説明する。
自動演奏部20においては、通常のいわゆる自動演奏装
置と同様に演奏タイミングに応じて演奏データを楽音生
成部30に供給するとともに、この演奏データを受取った
楽音生成部30は演奏データがノートオンを示すものであ
る場合にはチャネル確保処理およびアサイン処理を行な
った後に、遅延バッファにその演奏データを記憶する。
遅延バッファへの記憶から10msの所定時間が経過した場
合には、記憶している演奏データを読出し、この読出さ
れた演奏データにもとづいて楽音の生成開始/停止を行
なう。楽音の生成開始を行なう時点においてはエンベロ
ープレベルが“0"となっているチャネルが用意されてい
るために正確なタイミングで楽音生成が行なわれる。
なお、楽音生成部30における受取った演奏データを所
定時間だけ遅延させる処理方法は第3実施例に示した方
法以外のものでも良い。例えば、チャネルマップの各チ
ャネル毎にデータ種類“STATUS"、音高値“NUM"および
強度値“VEL"が構成される演奏データの内容および時間
を記憶する領域をさらに設け、演奏データを受取る場合
にはその演奏データがノートオンデータであるときには
チャネル確保処理およびアサイン処理を行なう。また、
選択したチャネルの演奏データの内容を記憶する領域に
演奏データの内容を記憶させ、さらに時間を記憶する領
域に値“10"を記憶させる。また、ノートオフデータで
あるときにはそのノートオフの音高に対応して楽音生成
中のチャネルの対応する領域に演奏データの内容および
時間として値“10"を記憶させる。また、各チャネルの
時間を記憶する各領域の値を1ms毎のタイマインタラプ
トに応じて“1"減らす。この時間を記憶する領域の値が
“0"になるとチャネルマップに記憶されている演奏内容
を読出し、この読出された演奏内容に応じて楽音の生成
開始/停止を行なう。なお、時間を記憶する領域の値が
“0"となりその時間を記憶する領域のチャネルに対応す
る演奏内容が読出された場合にはそのチャネルの演奏内
容を記憶する領域に記憶されている演奏内容が無効とな
るような値、例えばデータ種類“STATUS"の内容として
“4"を記憶させる。したがって、時間を記憶する領域の
値が“0"となったときでもそのデータ種類“STATUS"の
内容が“4"であった場合には楽音生成開始/停止処理は
行なわないようにする。
第1乃至第3実施例において、全てのチャネルが確保
状態である場合に、新たにチャネル確保を指示するデー
タ(第3実施例の場合には単なる「ノートオンデー
タ」)が供給されたときには、この「ノートオンデー
タ」を無視しても良いし、または確保状態とされている
チャネルに新たな「ノートオンデータ」を強制的に割当
てるようにしても良い。
第1乃至第3実施例の電子楽器は自動演奏部20と楽音
生成部30との両方を含むものであったが、自動演奏部20
と楽音生成部30とが別個であって、言い換えれば別個の
自動演奏装置と楽音生成装置とをMIDI規格等の通信手段
を用いて接続して演奏データの送受信を行なうような構
成であっても良い。このMIDI規格を通信手段とする場合
には、自動演奏装置から楽音生成装置に供給されるノー
トオン/オフデータをMIDI規格で定義されているノート
オン/オフを示す通常のチャネル・ボイス・メッセージ
の形式とすれば良く、また第1および第2の実施例にお
いて用いられたチャネル確保指示データは現在のMIDI規
格では未定義であるのでエクスクルーシブ・メッセージ
等の形式で新たに定義すれば良い。
ところで、第1および第2の実施例による自動演奏部
20を用いる場合、どのような楽音生成部(装置)が相手
方として接続されるか分らないが、本発明によるチャネ
ル確保指示データとしてのエクスクルーシブ・メッセー
ジに対応していない従来の楽音生成装置と組合せて使用
した場合にも、楽音生成装置では単にエクスクルーシブ
・メッセージを無視するだけであり、後に供給されるノ
ートオン/オフを示すチャネル・ボイス・メッセージに
よって通常の楽音生成開始/停止がなされ正常に動作す
るために、従来の装置との互換性が保たれる。また、第
1および第2の実施例に示した楽音生成部を従来の自動
演奏装置と組合せて使用した場合にも、通常のノートオ
ン/オフを示すチャネル・ボイス・メッセージによって
楽音の生成開始/停止がなされ正常に動作し従来の装置
との互換性が保たれる。
第1乃至第3実施例においては、自動演奏部20を持つ
電子楽器について説明したが、演奏内容が楽音生成タイ
ミングに先行して知ることができる自動伴奏部を持つ電
子楽器にも本発明を適用することができる。一般に自動
伴奏においては、伴奏用鍵盤で押鍵指定した和音を構成
する各音高に関して、リズムに対応した複数回のノート
オン/オフ夫々がなされるために、和音の指定の変更が
なく和音が持続されている場合には第1乃至第3実施例
と同様に楽音生成タイミング以前に生成される楽音(楽
音の音高)を知ることができ、この楽音に対してチャネ
ルの選択を行なうことにより本発明を有効に適用でき
る。また、小節頭部などで伴奏用の和音の指定が変更さ
れ生成される楽音の音高が変更された場合には、変更さ
れた音高に関してノートマップおよびチャネルマップを
書換え、和音指定の変更前に確保されたチャネルを和音
指定の変更後に生成される楽音に有効に使用できるよう
にする。
第1乃至第3実施例においては、チャネル確保指示デ
ータによるチャネル選択を楽音生成よりも常に所定時間
(前記実施例では10ms)先行して行なっているが、先行
する時間は固定でなくても良く、楽音開始および楽音停
止のタイミングさえ正確であれば、処理の都合で多少変
化しても構わない。
第1乃至第3実施例ではノートオンに関してのみ実際
のノートオンタイミング以前にチャネル選択の処理を行
なう等の処理を行なっているが、ノートオフに関しても
実際のノートオフタイミング以前になんらかの処理を行
なうようにしても良い。例えば、チャネル選択におい
て、すぐ後にノートオフされる音高に対応しているチャ
ネルの選択の優先度を上げる等の処理に利用できる。
なお、第1乃至第3実施例の楽音生成部30において
は、チャネル確保指示データの受取りにもとづいて、選
択したチャネルのエンベロープレベルが“0"でない場合
にエンベロープレベルの急速減衰を行なっているが、急
速減衰を行なう条件を、エンベロープレベルが充分小さ
くない等他のものとしても良い。
ところで、第1実施例の自動演奏部20においては、演
奏データエリアからの演奏データの読出しを2回ずつ行
なうことにより、チャネル確保指示データを楽音生成開
始/停止を指示するデータに先立って楽音生成部30に出
力しているが、この読出しを1回だけとすることもでき
る。この場合には、演奏データエリアからの演奏データ
の読出し時にはチャネル確保指示データを出力するとと
もに、読出した演奏データを記憶手段に記憶する等して
所定時間遅延させたのちに、この演奏データにもとづき
楽音生成開始/停止を指示するデータとして出力するよ
うにしても良い。この場合の遅延する方法としては第3
実施例に示したものが使用できる(第5発明)。
【図面の簡単な説明】
第1図(A)〜(D)夫々は特許請求の範囲に記載した
第1乃至第5の発明の構成に対応するブロック図である
とともに、 第2図乃至第14図は第1および第2の発明に対応する本
発明による電子楽器の第1実施例を説明するための図面
であって、 第2図は全体概略図、 第3図は自動演奏部におけるマイコンのRAMに設定され
ている演奏データエリアの構成図、 第4図乃至第7図夫々は自動演奏部のメインルーチン、
パネル処理ルーチン、演奏データ読出し処理ルーチンお
よびチャネル確保指示処理ルーチンのフローチャート
図、 第8図および第9図夫々は楽音生成部におけるマイコン
のRAMに設定されているノートマップおよびチャネルマ
ップの構成図、 第10図乃至第14図夫々は楽音生成部のメインルーチン、
チャネル確保処理ルーチン、アサイン処理ルーチン、楽
音生成処理ルーチンおよびエンベロープインタラプト処
理ルーチンのフローチャート図、 第15図は変形例の第3図に対応する構成図、 第16図は第2および第3の発明に対応する本発明による
電子楽器の第2実施例を説明するための第3図に対応す
る構成図、 第17図乃至第22図夫々は第4発明に対応する本発明によ
る電子楽器の第3実施例を説明するための図面であっ
て、 第17図は楽音生成部におけるマイコンのRAMに設定され
ている遅延バッファの構成図、 第18図、第20図乃至第22図夫々は楽音生成部のメインル
ーチン、遅延バッファ記憶処理ルーチン、楽音生成開始
/停止処理ルーチンおよびタイマインタラプト処理ルー
チンのフローチャート図、 第19図(A)(B)夫々は演奏データを遅延バッファに
記憶させて10msだけ遅延させる動作を説明するための説
明図である。 1,1′,1″……記憶手段 2,2′,2″……読出し手段 3,3′,3″……データ供給手段 10,10′……チャネル 11,11′……チャネル選択手段 12,12′……楽音生成制御手段 13,13′……遅延手段 20……自動演奏部 21……パネル部 22……バス 23……A−マイコン 23A……A−CPU 23B……A−ROM 23C……A−RAM 23D……タイマ 24……A−インターフェース回路 30……楽音生成部 31……B−インターフェース回路 32……バス 33A……B−CPU 33B……B−ROM 33C……B−RAM 34……楽音発生回路 35……増幅器 36……スピーカ

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】(a) 時間系列に構成される一連の演奏
    データを記憶可能な記憶手段、 (b) この記憶手段に記憶されている一連の演奏デー
    タを順次に所要時間間隔を置いて少なくとも2度読出す
    読出し手段および (c) この読出し手段による前の読出しによって読出
    される一連の演奏データのうちから少なくとも楽音生成
    タイミングの重要な楽音生成開始を示す演奏データに関
    してチャネル確保を指示するデータを楽音生成部に供給
    する一方、後の読出しにより読出される一連の演奏デー
    タにより楽音生成開始/停止を指示するデータをその楽
    音生成部に供給するデータ供給手段 を具えることを特徴とする電子楽器。
  2. 【請求項2】(a) 時間系列に構成される一連の楽音
    生成開始/停止を指示するデータ間に、少なくとも楽音
    生成タイミングの重要な楽音生成開始を指示するデータ
    に関連させて時間的にその楽音生成開始を指示するデー
    タの前にチャネル確保を指示するデータが挿入される演
    奏データを記憶可能な記憶手段、 (b) この記憶手段に記憶されている一連の演奏デー
    タを順次に読出す読出し手段および (c) この読出し手段により読出される一連の演奏デ
    ータを順次に楽音を生成する楽音生成部に供給するデー
    タ供給手段 を具えることを特徴とする電子楽器。
  3. 【請求項3】(a) 楽音生成用の複数個のチャネル、 (b) これらチャネルのうちのいずれかのチャネルを
    順次に供給される時間系列に構成される一連の演奏デー
    タのうちのチャネル確保を指示するデータによって選択
    するとともに、この選択されたチャネルのエンベロープ
    を必要に応じて急速に減衰させるチャネル選択手段およ
    び (c) このチャネル選択手段により選択されたチャネ
    ルによって、順次に供給されるその一連の演奏データの
    うちの楽音生成開始を指示するデータにもとづき楽音を
    生成させる楽音生成制御手段 を具えることを特徴とする電子楽器。
  4. 【請求項4】(a) 楽音生成用の複数個のチャネル、 (b) これらチャネルのうちのいずれかのチャネルを
    順次に供給される時間系列に構成される一連の演奏デー
    タのうちの楽音生成開始を指示するデータによって選択
    するとともに、この選択されたチャネルのエンベロープ
    を必要に応じて急速に減衰させるチャネル選択手段、 (c) 前記一連の演奏データを所定時間だけ遅延させ
    る遅延手段および (d) この遅延手段により遅延された一連の演奏デー
    タのうちの楽音生成開始を指示するデータにもとづいて
    前記チャネル選択手段によって選択されたチャネルによ
    り楽音を生成させる楽音生成制御手段 を具えることを特徴とする電子楽器。
  5. 【請求項5】(a) 時間系列に構成される一連の演奏
    データを記憶可能な記憶手段、 (b) この記憶手段に記憶されている一連の演奏デー
    タを順次に読出す読出し手段および (c) この読出し手段によって読出される一連のデー
    タを所定時間だけ遅延させる遅延手段、 (d) 前記読出し手段により読出される一連の演奏デ
    ータのうちから少なくとも楽音生成タイミングの重要な
    楽音生成開始を示す演奏データに関してチャネル確保を
    指示するデータを楽音生成部に供給する一方、前記遅延
    手段により読出される一連の演奏データにより楽音生成
    開始/停止を指示するデータをその楽音生成部に供給す
    るデータ供給手段 を具えることを特徴とする電子楽器。
JP2179056A 1990-07-05 1990-07-05 電子楽器 Expired - Fee Related JP2753765B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2179056A JP2753765B2 (ja) 1990-07-05 1990-07-05 電子楽器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2179056A JP2753765B2 (ja) 1990-07-05 1990-07-05 電子楽器

Publications (2)

Publication Number Publication Date
JPH0467099A JPH0467099A (ja) 1992-03-03
JP2753765B2 true JP2753765B2 (ja) 1998-05-20

Family

ID=16059346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2179056A Expired - Fee Related JP2753765B2 (ja) 1990-07-05 1990-07-05 電子楽器

Country Status (1)

Country Link
JP (1) JP2753765B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2715795B2 (ja) * 1992-03-05 1998-02-18 ヤマハ株式会社 発音割当手段を有する楽音合成装置
JP7124370B2 (ja) * 2018-03-22 2022-08-24 カシオ計算機株式会社 電子楽器、方法及びプログラム

Also Published As

Publication number Publication date
JPH0467099A (ja) 1992-03-03

Similar Documents

Publication Publication Date Title
EP1260964B1 (en) Music sound synthesis with waveform caching by prediction
EP0372678A2 (en) Apparatus for reproducing music and displaying words
US6872877B2 (en) Musical tone-generating method
US6255576B1 (en) Device and method for forming waveform based on a combination of unit waveforms including loop waveform segments
US7396992B2 (en) Tone synthesis apparatus and method
US6570082B2 (en) Tone color selection apparatus and method
US7557288B2 (en) Tone synthesis apparatus and method
EP0413868A2 (en) Automatic playing apparatus and sound generating unit in automatic musical playing system
JP2753765B2 (ja) 電子楽器
JPH10214083A (ja) 楽音生成方法および記憶媒体
TW200402688A (en) Automatic music performing apparatus and automatic music performance processing program
JP3840851B2 (ja) 記録媒体および楽音信号生成方法
US7271330B2 (en) Rendition style determination apparatus and computer program therefor
KR100302626B1 (ko) 악음생성장치 및 방법
JP3518253B2 (ja) データ編集装置
US6535772B1 (en) Waveform data generation method and apparatus capable of switching between real-time generation and non-real-time generation
JP3398554B2 (ja) 自動アルペジオ演奏装置
JPH06230783A (ja) 電子楽器
US6274798B1 (en) Apparatus for and method of setting correspondence between performance parts and tracks
JP4070315B2 (ja) 波形再生装置
JP3613062B2 (ja) 楽音データ作成方法および記憶媒体
US6417438B1 (en) Apparatus for and method of providing a performance guide display to assist in a manual performance of an electronic musical apparatus in a selected musical key
US6459028B2 (en) Performance data modifying method, performance data modifying apparatus, and storage medium
JP3389609B2 (ja) 電子楽器
JPH0719150B2 (ja) 電子楽器のアサイナ

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees