JPH05346786A - 楽音生成装置 - Google Patents
楽音生成装置Info
- Publication number
- JPH05346786A JPH05346786A JP4156546A JP15654692A JPH05346786A JP H05346786 A JPH05346786 A JP H05346786A JP 4156546 A JP4156546 A JP 4156546A JP 15654692 A JP15654692 A JP 15654692A JP H05346786 A JPH05346786 A JP H05346786A
- Authority
- JP
- Japan
- Prior art keywords
- musical sound
- pitch
- control information
- musical
- midi
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
(57)【要約】
【目的】演奏テンポに合わせて、楽音の特質の変化速度
を自動的に設定する楽音生成装置を提供する。 【構成】テンポクロックに基づいて、楽音の所定の特質
を制御する制御情報の変化速度を求め、この求められた
変化速度をもって制御情報が変化するように、上記変化
速度に対応した変化幅分だけ変化した制御情報を所定時
間毎に生成し、この生成された制御情報に基づいて上記
所定の特質を制御する。
を自動的に設定する楽音生成装置を提供する。 【構成】テンポクロックに基づいて、楽音の所定の特質
を制御する制御情報の変化速度を求め、この求められた
変化速度をもって制御情報が変化するように、上記変化
速度に対応した変化幅分だけ変化した制御情報を所定時
間毎に生成し、この生成された制御情報に基づいて上記
所定の特質を制御する。
Description
【0001】
【産業上の利用分野】本発明は、自動演奏装置などの外
部の機器から出力される、ノートオン,ノートオフなど
を示す演奏データに基づいて楽音を生成する楽音生成装
置に関する。
部の機器から出力される、ノートオン,ノートオフなど
を示す演奏データに基づいて楽音を生成する楽音生成装
置に関する。
【0002】
【従来の技術】自動演奏装置などの外部の機器からMI
DI規格などの通信手段を介して供給されるノートオ
ン,ノートオフなどを示す演奏データに基づいて楽音を
生成する楽音生成装置が実現されている。このような楽
音生成装置においては、ポルタメントやエンベロープ、
ビブラートなど、音高や音量などの楽音の特質を時間経
過に伴って変化させる制御を行う場合に、その変化速度
をパネルなどに設けられた操作子によって設定するよう
に構成されている。
DI規格などの通信手段を介して供給されるノートオ
ン,ノートオフなどを示す演奏データに基づいて楽音を
生成する楽音生成装置が実現されている。このような楽
音生成装置においては、ポルタメントやエンベロープ、
ビブラートなど、音高や音量などの楽音の特質を時間経
過に伴って変化させる制御を行う場合に、その変化速度
をパネルなどに設けられた操作子によって設定するよう
に構成されている。
【0003】
【発明が解決しようとする課題】ところで、例えば演奏
テンポが速いときには前述の楽音の特質の変化速度もそ
れに合わせて速くするなど、楽音の特質の変化速度を自
動演奏装置などの外部機器から供給される演奏データに
基づく演奏のテンポに合わせたいときがある。従来は、
前述の楽音生成装置に自動演奏装置を接続して自動演奏
を行わせるにあたり、楽音の変化速度を自動演奏のテン
ポに合わせようとするときには、自動演奏装置から送ら
れてくる演奏データのテンポとは別に楽音生成装置側の
操作子によって演奏テンポに合った変化速度を設定する
必要があった。
テンポが速いときには前述の楽音の特質の変化速度もそ
れに合わせて速くするなど、楽音の特質の変化速度を自
動演奏装置などの外部機器から供給される演奏データに
基づく演奏のテンポに合わせたいときがある。従来は、
前述の楽音生成装置に自動演奏装置を接続して自動演奏
を行わせるにあたり、楽音の変化速度を自動演奏のテン
ポに合わせようとするときには、自動演奏装置から送ら
れてくる演奏データのテンポとは別に楽音生成装置側の
操作子によって演奏テンポに合った変化速度を設定する
必要があった。
【0004】本発明は、上記事情に鑑み、演奏テンポに
合わせて、楽音の所定の特質の変化幅を自動的に設定す
る楽音生成装置を提供することを目的とする。
合わせて、楽音の所定の特質の変化幅を自動的に設定す
る楽音生成装置を提供することを目的とする。
【0005】
【課題を解決するための手段】上記目的を達成するため
の本発明の楽音生成装置は、外部から周期的に入力され
るテンポクロックに基づいて、楽音の所定の特質を制御
する制御情報の変化速度を求める変化速度演算手段と、
前記制御情報が前記変化速度演算手段によって求められ
た前記変化速度をもって変化するように、該変化速度に
対応する変化幅ずつ変化した制御情報を所定時間毎に生
成する制御情報生成手段と、生成された前記制御情報に
基づいて前記所定の特質を制御する楽音制御手段とを備
えたことを特徴とするものである。
の本発明の楽音生成装置は、外部から周期的に入力され
るテンポクロックに基づいて、楽音の所定の特質を制御
する制御情報の変化速度を求める変化速度演算手段と、
前記制御情報が前記変化速度演算手段によって求められ
た前記変化速度をもって変化するように、該変化速度に
対応する変化幅ずつ変化した制御情報を所定時間毎に生
成する制御情報生成手段と、生成された前記制御情報に
基づいて前記所定の特質を制御する楽音制御手段とを備
えたことを特徴とするものである。
【0006】
【作用】本発明の楽音生成装置は、テンポクロックに基
づいて、楽音の所定の特質を制御する制御情報の変化速
度を求め、この求められた変化速度をもって制御情報が
変化するように、上記変化速度に対応した変化幅分だけ
変化した制御情報を所定時間毎に生成し、この生成され
た制御情報に基づいて上記所定の特質を制御するように
したため、演奏テンポに合わせて、楽音の特質の変化幅
が自動的に設定される。
づいて、楽音の所定の特質を制御する制御情報の変化速
度を求め、この求められた変化速度をもって制御情報が
変化するように、上記変化速度に対応した変化幅分だけ
変化した制御情報を所定時間毎に生成し、この生成され
た制御情報に基づいて上記所定の特質を制御するように
したため、演奏テンポに合わせて、楽音の特質の変化幅
が自動的に設定される。
【0007】ここで、楽音の所定の特質を直線的に変化
させる場合は、上記変化速度は一定とされ、例えば指数
関数的に変化させる場合は、上記変化速度は順次変化し
たものとされる。
させる場合は、上記変化速度は一定とされ、例えば指数
関数的に変化させる場合は、上記変化速度は順次変化し
たものとされる。
【0008】
【実施例】以下、図面を参照して、本発明の実施例につ
いて説明する。図1は本発明の一実施例に係る楽音生成
装置に、自動演奏装置が接続された状態を表した概略ブ
ロック図である。この楽音生成装置10は、自動演奏装
置30とMIDI(Musical Instrume
nt Digital Interface)で接続さ
れており、自動演奏装置30内の図示しない演奏データ
メモリに記憶されている演奏データが順次読み出されて
MIDI規格に準じた信号で楽音生成装置10に伝送さ
れ、そのMIDI回路14に入力される。各MIDI信
号がMIDI回路14に入力される毎に、MIDI回路
14は制御部16に対してMIDIインタラプトをか
け、MIDI信号が1つ入力されたことを制御部16に
知らせる。またこの楽音生成装置10にはパネル操作部
15が備えられている。このパネル操作部15は、ポル
タメントの音高変化時間やビブラートの変調周期などの
パラメータを入力するものである。制御部16は、MI
DIインタラプトに応じてMIDI回路14に入力され
たMIDI信号を読みだし、この信号に基づいて、音源
部18を制御し、楽音信号を生成させる。この音源部1
8から発せられた電気信号としての楽音信号は、増幅器
20に入力されて増幅された後、スピーカ22により上
記楽音信号が楽音として放音される。なお、MIDI規
格については既に広く知られているため(例えば特願昭
59−129745号参照)、ここではこのMIDI規
格の詳細な説明については省略する。また、簡単のた
め、本実施例では同時に生成される楽音は1つのみと
し、楽音の特質として音高を例として説明する。
いて説明する。図1は本発明の一実施例に係る楽音生成
装置に、自動演奏装置が接続された状態を表した概略ブ
ロック図である。この楽音生成装置10は、自動演奏装
置30とMIDI(Musical Instrume
nt Digital Interface)で接続さ
れており、自動演奏装置30内の図示しない演奏データ
メモリに記憶されている演奏データが順次読み出されて
MIDI規格に準じた信号で楽音生成装置10に伝送さ
れ、そのMIDI回路14に入力される。各MIDI信
号がMIDI回路14に入力される毎に、MIDI回路
14は制御部16に対してMIDIインタラプトをか
け、MIDI信号が1つ入力されたことを制御部16に
知らせる。またこの楽音生成装置10にはパネル操作部
15が備えられている。このパネル操作部15は、ポル
タメントの音高変化時間やビブラートの変調周期などの
パラメータを入力するものである。制御部16は、MI
DIインタラプトに応じてMIDI回路14に入力され
たMIDI信号を読みだし、この信号に基づいて、音源
部18を制御し、楽音信号を生成させる。この音源部1
8から発せられた電気信号としての楽音信号は、増幅器
20に入力されて増幅された後、スピーカ22により上
記楽音信号が楽音として放音される。なお、MIDI規
格については既に広く知られているため(例えば特願昭
59−129745号参照)、ここではこのMIDI規
格の詳細な説明については省略する。また、簡単のた
め、本実施例では同時に生成される楽音は1つのみと
し、楽音の特質として音高を例として説明する。
【0009】制御部16には、後述するプログラムを実
行するCPU16A、そのプログラムおよびプログラム
実行に必要なデータが記憶されているROM16B、そ
のプログラムの実行にあたって必要なレジスタなどが設
定されるワーキングエリアとしてのRAM16C、CP
Uに対して所定の周期ごとにタイマインタラプトをかけ
るタイマ16D等を含むコンピュータ・システムが内蔵
されている。
行するCPU16A、そのプログラムおよびプログラム
実行に必要なデータが記憶されているROM16B、そ
のプログラムの実行にあたって必要なレジスタなどが設
定されるワーキングエリアとしてのRAM16C、CP
Uに対して所定の周期ごとにタイマインタラプトをかけ
るタイマ16D等を含むコンピュータ・システムが内蔵
されている。
【0010】ここで、CPU16Aは所定のメインルー
チンを実行するとともに、各インタラプトに応じてそれ
ぞれのインタラプトルーチンを実行する。なお、一つの
インタラプトルーチンが実行されているときには、他の
インタラプトルーチンの実行は保留され、実行中のイン
タラプトルーチンが終了した直後に実行される。図2
は、後述する図3及び図4に示すフローで用いられる、
RAM内のワークエリアを表した図である。なお、ここ
では、簡単のため、このワークエリア中の各レジスタ
と、そのレジスタ内に格納された値に同一の記号を用い
ることとする。
チンを実行するとともに、各インタラプトに応じてそれ
ぞれのインタラプトルーチンを実行する。なお、一つの
インタラプトルーチンが実行されているときには、他の
インタラプトルーチンの実行は保留され、実行中のイン
タラプトルーチンが終了した直後に実行される。図2
は、後述する図3及び図4に示すフローで用いられる、
RAM内のワークエリアを表した図である。なお、ここ
では、簡単のため、このワークエリア中の各レジスタ
と、そのレジスタ内に格納された値に同一の記号を用い
ることとする。
【0011】ここでは、図1に示す制御部16内のCP
U16Aによって実行されるプログラムのうち、本発明
に関する部分のみについて説明する。RAM16C及び
タイマ16Dは、図示しないメインルーチンにより電源
投入時に初期設定されるものとする。図3はタイマイン
タラプトルーチンのフローチャート、図4はMIDIイ
ンタラプトルーチンのフローチャートである。
U16Aによって実行されるプログラムのうち、本発明
に関する部分のみについて説明する。RAM16C及び
タイマ16Dは、図示しないメインルーチンにより電源
投入時に初期設定されるものとする。図3はタイマイン
タラプトルーチンのフローチャート、図4はMIDIイ
ンタラプトルーチンのフローチャートである。
【0012】図3に示すタイマインタラプトルーチンが
実行される周期は、電源投入時に1msecに設定され
ており、1msec毎に、図2に示すワークエリアPE
RIODの内容が1ずつインクリメントされる。このワ
ークエリアPERIODは後述するMIDIインタラプ
トルーチン(図4参照)において新たなタイミングクロ
ックデータが入力される度にリセットされる。したがっ
て、PERIODの値は、タイミングクロックデータが
入力される周期を示すものとなる。この図3に示すルー
チンは、前述のようにしてタイミングクロックデータが
入力される周期を測定するとともに、1msecごとに
“1”を加算するカウントを行い、この値が所定値(本
実施例では“5”)になる毎に後述するMIDIインタ
ラプトルーチン(図4参照)で求められた変化速度に対
応する所定幅だけ楽音の音高を変化させるものである。
実行される周期は、電源投入時に1msecに設定され
ており、1msec毎に、図2に示すワークエリアPE
RIODの内容が1ずつインクリメントされる。このワ
ークエリアPERIODは後述するMIDIインタラプ
トルーチン(図4参照)において新たなタイミングクロ
ックデータが入力される度にリセットされる。したがっ
て、PERIODの値は、タイミングクロックデータが
入力される周期を示すものとなる。この図3に示すルー
チンは、前述のようにしてタイミングクロックデータが
入力される周期を測定するとともに、1msecごとに
“1”を加算するカウントを行い、この値が所定値(本
実施例では“5”)になる毎に後述するMIDIインタ
ラプトルーチン(図4参照)で求められた変化速度に対
応する所定幅だけ楽音の音高を変化させるものである。
【0013】このルーチンが起動されると、まずステッ
プ100において周期PERIODの値が“1”インク
リメントされる。ステップ101では、カウント値CO
UNTに“1”が加算され、楽音の音高を変化させる所
定の時間幅が計測される。ステップ102では、ステッ
プ101で加算されたカウント値COUNTが“5”で
あるか否かが判定される。“5”であると判定されたと
きは、ステップ103に進みカウント値COUNTがリ
セットされ、ステップ104に進む。ステップ104で
は、現在放音中の楽音の音高(PORTA_PITC
H)が、ステップ205(図4参照)で設定された目標
の音高に到達しているか否かが判定される。目標の音高
に到達していないときは、現在放音中の楽音の音高(P
ORTA_PITCH)を後述するMIDIインタラプ
トルーチン(図4参照)で求められるポルタメント幅P
ORTA_DELTAだけ変化させ、新たなPORTA
_PITCHとして図2に示すワークエリアPORTA
_PITCHに格納する。このPORTA_PITCH
の値が目標とする音高を越えてしまったときはPORT
A_PITCHの値が目標とする音高に書き改められ
る。以上の処理においては、ステップ102では、1m
secごとに“1”ずつ加算されたカウント値COUN
Tが“5”であるか否かが判定されているため、ステッ
プ105以下に示す楽音の音高を変化させる処理は5m
secごとに行われることとなる。
プ100において周期PERIODの値が“1”インク
リメントされる。ステップ101では、カウント値CO
UNTに“1”が加算され、楽音の音高を変化させる所
定の時間幅が計測される。ステップ102では、ステッ
プ101で加算されたカウント値COUNTが“5”で
あるか否かが判定される。“5”であると判定されたと
きは、ステップ103に進みカウント値COUNTがリ
セットされ、ステップ104に進む。ステップ104で
は、現在放音中の楽音の音高(PORTA_PITC
H)が、ステップ205(図4参照)で設定された目標
の音高に到達しているか否かが判定される。目標の音高
に到達していないときは、現在放音中の楽音の音高(P
ORTA_PITCH)を後述するMIDIインタラプ
トルーチン(図4参照)で求められるポルタメント幅P
ORTA_DELTAだけ変化させ、新たなPORTA
_PITCHとして図2に示すワークエリアPORTA
_PITCHに格納する。このPORTA_PITCH
の値が目標とする音高を越えてしまったときはPORT
A_PITCHの値が目標とする音高に書き改められ
る。以上の処理においては、ステップ102では、1m
secごとに“1”ずつ加算されたカウント値COUN
Tが“5”であるか否かが判定されているため、ステッ
プ105以下に示す楽音の音高を変化させる処理は5m
secごとに行われることとなる。
【0014】ステップ106では、MODの値がSTE
Pの値の分だけ増加される。ここでSTEPは、図4に
示す処理で設定される。次にステップ107に進み、こ
のステップ107ではMODが24を越えているか否か
が判定され、越えている場合はステップ108に進んで
MODから24が減算される。これによりMODの値が
0〜23の間に入るように制限される。次にステップ1
09に進む。ここで、ROM16Bには“0”〜“2
3”の値に対応して図6に示すような値が記憶されてい
るテーブルが設定されている。ステップ109では、M
ODの値に基づいてこのテーブルを参照し、このテーブ
ルから読み出した値をMOD PITCHに設定する。
この処理によりMOD PITCHの値は三角波状に変
化する。ステップ110では、放音中の楽音の音高を、
MOD PITCHの値とPORTA PITCHの値
とを加算した値に対応したものへ変化させる。この処理
の結果、放音される楽音の音高はPORTA PITC
Hに対応する音高を中心として設定された音符の長さに
対応する周期で三角波状に変化する。
Pの値の分だけ増加される。ここでSTEPは、図4に
示す処理で設定される。次にステップ107に進み、こ
のステップ107ではMODが24を越えているか否か
が判定され、越えている場合はステップ108に進んで
MODから24が減算される。これによりMODの値が
0〜23の間に入るように制限される。次にステップ1
09に進む。ここで、ROM16Bには“0”〜“2
3”の値に対応して図6に示すような値が記憶されてい
るテーブルが設定されている。ステップ109では、M
ODの値に基づいてこのテーブルを参照し、このテーブ
ルから読み出した値をMOD PITCHに設定する。
この処理によりMOD PITCHの値は三角波状に変
化する。ステップ110では、放音中の楽音の音高を、
MOD PITCHの値とPORTA PITCHの値
とを加算した値に対応したものへ変化させる。この処理
の結果、放音される楽音の音高はPORTA PITC
Hに対応する音高を中心として設定された音符の長さに
対応する周期で三角波状に変化する。
【0015】図4は、演奏データがMIDI信号として
MIDI回路14に入力されたときに起動されるMID
Iインタラプトルーチンを示した図である。このルーチ
ンが起動されると、まずステップ200において入力さ
れた演奏データがタイミングクロックデータであるか否
かが判定される。タイミングクロックデータであると判
定されるとステップ201に進み、PERIODの値に
“96”が乗算され、その積がPORTA RTIME
の値で除算された商がPORTA TIMEに設定され
る。なお、PORTA RTIMEはパネル操作部の操
作により図示しない処理によってポルタメントの音高変
化時間を音符長の形式で相対的に示すデータが設定され
ている。タイミングクロックデータが入力される周期は
4分音符1個分の長さに相当するようMIDI規格で適
宜されているため、このような演算により、例えばPO
RTA RTIMEが4分音符の長さを示す“4”と設
定されている場合にはPERIODの24倍の値、すな
わち4分音符の時間の長さを絶対的に示す値がPORT
A TIMEに設定される。次にステップ202に進
み、VIB PERIODの値に“5”を乗算した積が
PERIODの値および“4”で除算され、その商がS
TEPに設定される。ここで、VIB PERIODに
は、パネル操作部の操作により実行される図示しない処
理によってビブラートの変調周期を示すデータが設定さ
れている。このような演算により、例えばVIB PE
RIODが16分音符の長さを示す“16”と設定され
ている場合には“20”をPERIODの値で除算した
値がSTEPに設定される。このSTEPに基づいてス
テップ106〜108の演算が行なわれることにより、
MODはPERIODの長さの6倍に相当する期間、す
なわち16分音符の長さに相当する周期となる。ステッ
プ203では周期PERIODの値がリセットされ、こ
れにより次のタイミングクロックデータが入力されるま
での間の周期の計測が開始される。
MIDI回路14に入力されたときに起動されるMID
Iインタラプトルーチンを示した図である。このルーチ
ンが起動されると、まずステップ200において入力さ
れた演奏データがタイミングクロックデータであるか否
かが判定される。タイミングクロックデータであると判
定されるとステップ201に進み、PERIODの値に
“96”が乗算され、その積がPORTA RTIME
の値で除算された商がPORTA TIMEに設定され
る。なお、PORTA RTIMEはパネル操作部の操
作により図示しない処理によってポルタメントの音高変
化時間を音符長の形式で相対的に示すデータが設定され
ている。タイミングクロックデータが入力される周期は
4分音符1個分の長さに相当するようMIDI規格で適
宜されているため、このような演算により、例えばPO
RTA RTIMEが4分音符の長さを示す“4”と設
定されている場合にはPERIODの24倍の値、すな
わち4分音符の時間の長さを絶対的に示す値がPORT
A TIMEに設定される。次にステップ202に進
み、VIB PERIODの値に“5”を乗算した積が
PERIODの値および“4”で除算され、その商がS
TEPに設定される。ここで、VIB PERIODに
は、パネル操作部の操作により実行される図示しない処
理によってビブラートの変調周期を示すデータが設定さ
れている。このような演算により、例えばVIB PE
RIODが16分音符の長さを示す“16”と設定され
ている場合には“20”をPERIODの値で除算した
値がSTEPに設定される。このSTEPに基づいてス
テップ106〜108の演算が行なわれることにより、
MODはPERIODの長さの6倍に相当する期間、す
なわち16分音符の長さに相当する周期となる。ステッ
プ203では周期PERIODの値がリセットされ、こ
れにより次のタイミングクロックデータが入力されるま
での間の周期の計測が開始される。
【0016】ここでステップ201,202中にある演
算式の導出について説明する。先ずステップ201中に
ある演算式の導出の前提条件として、 (a)タイミングクロックデータは4分音符1個あたり
24個とMIDI規格で規定されている。 (b)PERIODにはタイミングクロックデータの入
力周期がmsec単位で設定される(ステップ100,
203参照)。 (c)音高の変化時間PORTA RTIMEは音符長
と同じ形式で値が設定される。例えば4分音符なら
“4”が設定される。
算式の導出について説明する。先ずステップ201中に
ある演算式の導出の前提条件として、 (a)タイミングクロックデータは4分音符1個あたり
24個とMIDI規格で規定されている。 (b)PERIODにはタイミングクロックデータの入
力周期がmsec単位で設定される(ステップ100,
203参照)。 (c)音高の変化時間PORTA RTIMEは音符長
と同じ形式で値が設定される。例えば4分音符なら
“4”が設定される。
【0017】以上の前提のもとに、ポルタメントの音高
変化時間PORTA TIMEは、PORTA RTI
MEに設定された相対時間を絶対時間に変換したものな
ので、 PORTA TIME=PERIOD×24×4/PORTA RTIME =PERIOD×96/PORTA RTIME …(1) となる。
変化時間PORTA TIMEは、PORTA RTI
MEに設定された相対時間を絶対時間に変換したものな
ので、 PORTA TIME=PERIOD×24×4/PORTA RTIME =PERIOD×96/PORTA RTIME …(1) となる。
【0018】ここで、“PERIOD×24”は
(a),(b)より4分音符1個あたりの時間(mse
c単位)を示す。また”4/PORTA RTIME”
はPORTA RTIMEに設定された音符の4分音符
に対する長さを示す。例えば16分音符なら1/4とな
る。またステップ202中にある演算式の導出の前提条
件として、前述した前提条件を含め、 (d)タイミングクロックデータは4分音符1個あたり
24個とMIDI規格で規定されている。 (e)ステップ103以後の音高を変化させる処理は5
msecごとに実行される。 (f)ビブラートの周期VIB PERIODは音符長
と同じ形式で値が設定される。例えば4分音符なら
“4”が設定される。 (g)MODの値の変化の1周期がビブラートの1周期
を示す。なお、MODは“0”〜“23”の間で繰り返
す。 (h)STEPはMODの1回あたりの増分である。
(a),(b)より4分音符1個あたりの時間(mse
c単位)を示す。また”4/PORTA RTIME”
はPORTA RTIMEに設定された音符の4分音符
に対する長さを示す。例えば16分音符なら1/4とな
る。またステップ202中にある演算式の導出の前提条
件として、前述した前提条件を含め、 (d)タイミングクロックデータは4分音符1個あたり
24個とMIDI規格で規定されている。 (e)ステップ103以後の音高を変化させる処理は5
msecごとに実行される。 (f)ビブラートの周期VIB PERIODは音符長
と同じ形式で値が設定される。例えば4分音符なら
“4”が設定される。 (g)MODの値の変化の1周期がビブラートの1周期
を示す。なお、MODは“0”〜“23”の間で繰り返
す。 (h)STEPはMODの1回あたりの増分である。
【0019】MODの1周期内における音高変化の回数
Nは、(g),(h)より N=24/STEP …(2) となる。一方、VIB PERIODに設定された時間
内の音高変化の処理回数もNであり、(d)〜(f)よ
り、 N=4/VIB PERIOD×PERIOD×24/5 …(3) となる。
Nは、(g),(h)より N=24/STEP …(2) となる。一方、VIB PERIODに設定された時間
内の音高変化の処理回数もNであり、(d)〜(f)よ
り、 N=4/VIB PERIOD×PERIOD×24/5 …(3) となる。
【0020】ここで、“4/VIB PERIOD”は
VIB PERIODに設定された音符の4分音符に対
する長さを示す。例えば16音符なら1/4となる。ま
た、“PERIOD×24”は前提より4分音符1個
あたりの時間である。また、前提(e)より、式
(2),(3)から、 24/STEP=4/VIB PERIOD×PERI
OD×24/5 1/STEP=4/VIB PERIOD×PERIO
D/5 変形して、 STEP=VIB PERIOD×5/(4×PERI
OD) となる。
VIB PERIODに設定された音符の4分音符に対
する長さを示す。例えば16音符なら1/4となる。ま
た、“PERIOD×24”は前提より4分音符1個
あたりの時間である。また、前提(e)より、式
(2),(3)から、 24/STEP=4/VIB PERIOD×PERI
OD×24/5 1/STEP=4/VIB PERIOD×PERIO
D/5 変形して、 STEP=VIB PERIOD×5/(4×PERI
OD) となる。
【0021】図4に示すルーチンにおいて、ステップ2
00でタイミングクロックデータでないと判定された場
合は、ステップ204に進みノート・オンデータである
か否かが判定される。ノート・オンデータであると判定
されるとステップ205に進み、ステップ105(図3
参照)で求められ図2に示すワークエリアREAL_P
ITCHに格納されている音高の楽音が放音される。ま
た、ノート・オンデータに含まれている音高データが目
標音高として設定される。ステップ206ではノート・
オンデータ(ステップ204参照)に含まれている音高
データと現在放音中の楽音の音高であるPORTA_P
ITCHに格納されている音高データとの差分が求めら
れ、この値が図2に示すワークエリアPITCH_DE
LTAに格納される。ステップ207では、ステップ2
06で設定されたPITCH_DELTAに5が乗算さ
れ、その積がステップ201で設定されたPORTA_
TIMEで除算され、得られた商が図2に示すワークエ
リアPORTA_DELTAに格納される。このPOR
TA_DELTAに格納された値が、ポルタメント効果
付与時における所定の時間間隔(ここでは5msec)
あたりの音高変化幅を示すポルタメント幅となる。ここ
で、ステップ205で設定されたPITCH_DELT
Aに5を乗算した理由は、本実施例においては、前述の
ステップ101〜104で示したように、音高変化の処
理が5msecごとに行われるようになっているからで
ある。例えばステップ104で示す音高変化の処理が3
msecごとに行われるようにするには、ステップ20
6で設定されたPITCH DELTAの値に3が乗算
される。
00でタイミングクロックデータでないと判定された場
合は、ステップ204に進みノート・オンデータである
か否かが判定される。ノート・オンデータであると判定
されるとステップ205に進み、ステップ105(図3
参照)で求められ図2に示すワークエリアREAL_P
ITCHに格納されている音高の楽音が放音される。ま
た、ノート・オンデータに含まれている音高データが目
標音高として設定される。ステップ206ではノート・
オンデータ(ステップ204参照)に含まれている音高
データと現在放音中の楽音の音高であるPORTA_P
ITCHに格納されている音高データとの差分が求めら
れ、この値が図2に示すワークエリアPITCH_DE
LTAに格納される。ステップ207では、ステップ2
06で設定されたPITCH_DELTAに5が乗算さ
れ、その積がステップ201で設定されたPORTA_
TIMEで除算され、得られた商が図2に示すワークエ
リアPORTA_DELTAに格納される。このPOR
TA_DELTAに格納された値が、ポルタメント効果
付与時における所定の時間間隔(ここでは5msec)
あたりの音高変化幅を示すポルタメント幅となる。ここ
で、ステップ205で設定されたPITCH_DELT
Aに5を乗算した理由は、本実施例においては、前述の
ステップ101〜104で示したように、音高変化の処
理が5msecごとに行われるようになっているからで
ある。例えばステップ104で示す音高変化の処理が3
msecごとに行われるようにするには、ステップ20
6で設定されたPITCH DELTAの値に3が乗算
される。
【0022】なお、ステップ204でノート・オンデー
タではないと判定されたときは、ステップ208に進
み、その他の処理、例えばノート・オフデータに対応す
る楽音消音処理等が行われる。以上説明したように、タ
イミングクロックデータが入力されるとその周期に応じ
てポルタメントタイムが決定されるとともに、この設定
されたポルタメントタイムに応じて、ポルタメント効果
付与時における所定時間間隔あたりの音高変化幅が設定
される。
タではないと判定されたときは、ステップ208に進
み、その他の処理、例えばノート・オフデータに対応す
る楽音消音処理等が行われる。以上説明したように、タ
イミングクロックデータが入力されるとその周期に応じ
てポルタメントタイムが決定されるとともに、この設定
されたポルタメントタイムに応じて、ポルタメント効果
付与時における所定時間間隔あたりの音高変化幅が設定
される。
【0023】ここで、このタイミングクロックデータは
4分音符1個あたり24個入力されるように定義されて
おり、通常、演奏される際の最も速い演奏テンポは1分
間あたり4分音符250個程度であるため、最も速い演
奏テンポにおいてはタイミングクロックデータの入力さ
れる周期は10msecとなる。本実施例においては、
この周期よりも速い周期(本実施例では5msec)で
音高変化の処理を行っているため、タイミングクロック
データの入力タイミングごとに音高を変化させる場合よ
りも滑らかな音高変化が得られる。
4分音符1個あたり24個入力されるように定義されて
おり、通常、演奏される際の最も速い演奏テンポは1分
間あたり4分音符250個程度であるため、最も速い演
奏テンポにおいてはタイミングクロックデータの入力さ
れる周期は10msecとなる。本実施例においては、
この周期よりも速い周期(本実施例では5msec)で
音高変化の処理を行っているため、タイミングクロック
データの入力タイミングごとに音高を変化させる場合よ
りも滑らかな音高変化が得られる。
【0024】また、本実施例ではタイミングクロックデ
ータが入力される周期よりも短い周期のタイミングで音
高を変化させたため滑らかな音高変化が得られるが、こ
れと同じ効果を得るためにタイミングクロックデータを
一層短い周期で入力させ、タイミングクロックデータの
入力タイミングごとに音高を変化させることも考えられ
る。しかし、この場合にはMIDI信号の単位時間あた
りのデータ量が増大するため、通信や信号の処理に時間
がかかるようになり好ましくない。本実施例によれば、
このような不都合を防止する効果もある。
ータが入力される周期よりも短い周期のタイミングで音
高を変化させたため滑らかな音高変化が得られるが、こ
れと同じ効果を得るためにタイミングクロックデータを
一層短い周期で入力させ、タイミングクロックデータの
入力タイミングごとに音高を変化させることも考えられ
る。しかし、この場合にはMIDI信号の単位時間あた
りのデータ量が増大するため、通信や信号の処理に時間
がかかるようになり好ましくない。本実施例によれば、
このような不都合を防止する効果もある。
【0025】なお、本実施例においては、外部の例えば
自動演奏装置から供給されるMIDI信号のみに基づい
て楽音を生成する楽音生成装置について説明したが、鍵
盤などの演奏操作手段を有し、この演奏操作手段からの
演奏データにも基づいて楽音を生成する楽音生成装置に
おいても本発明を適用できる。また、以上の実施例の記
載では、ポルタメント効果およびビブラート効果すなわ
ち時間経過に伴って変化させる楽音の特質として音高の
みを取り上げて説明したが、変化させる楽音の特質とし
ては音高に限定されず、音色、音量、変調深さ(周期的
に変化させる音高の変化幅)などとしてもよい。この場
合には、これらの特質を制御するためのエンベロープの
変化速度(エンベロープの所定時間あたりの変化幅)、
変調周期(変調波形が生成される周期)がテンポクロッ
クが入力される周期に基づいて制御される。また、以上
の実施例においては、所定時間間隔ごとに所定の一定幅
だけ音高を変化させるようにしたため音高の変化は直線
的に行われるが、音高の変化が指数カーブとなるように
音高を変化させてもよく、この場合にはタイミングクロ
ックデータの入力周期に基づいて指数カーブの時定数を
定めるようにするとよい。
自動演奏装置から供給されるMIDI信号のみに基づい
て楽音を生成する楽音生成装置について説明したが、鍵
盤などの演奏操作手段を有し、この演奏操作手段からの
演奏データにも基づいて楽音を生成する楽音生成装置に
おいても本発明を適用できる。また、以上の実施例の記
載では、ポルタメント効果およびビブラート効果すなわ
ち時間経過に伴って変化させる楽音の特質として音高の
みを取り上げて説明したが、変化させる楽音の特質とし
ては音高に限定されず、音色、音量、変調深さ(周期的
に変化させる音高の変化幅)などとしてもよい。この場
合には、これらの特質を制御するためのエンベロープの
変化速度(エンベロープの所定時間あたりの変化幅)、
変調周期(変調波形が生成される周期)がテンポクロッ
クが入力される周期に基づいて制御される。また、以上
の実施例においては、所定時間間隔ごとに所定の一定幅
だけ音高を変化させるようにしたため音高の変化は直線
的に行われるが、音高の変化が指数カーブとなるように
音高を変化させてもよく、この場合にはタイミングクロ
ックデータの入力周期に基づいて指数カーブの時定数を
定めるようにするとよい。
【0026】なお、上記実施例ではポルタメントの音高
変化時間は現在の音高と目標の音高との差にかかわらず
一定となるようにしたが、音高変化速度のみがテンポク
ロックの周期に対応し前記変化時間は前記差の大きさに
よって変化するようにしてもよい。また、上記実施例で
は、ポルタメントの変化時間およびビブラートの周期を
音符長に対応する数値で入力するようにしたが、タイミ
ングクロックデータの数を示す値として入力するように
してもよい。例えば、4分音符に相当する設定をする場
合には“24”を、8分音符に相当する設定をする場合
には“12”を入力するようにする。自動演奏装置にお
いては発音指示、消音指示などの送出タイミングはタイ
ミングクロックデータの数として定義されているので、
このような入力方法をとった場合にはポルタメントの変
化時間およびビブラートの周期が自動演奏装置における
タイミングを規定する数値と同じ形式となるため使用者
にとって把握しやすくなるという利点がある。
変化時間は現在の音高と目標の音高との差にかかわらず
一定となるようにしたが、音高変化速度のみがテンポク
ロックの周期に対応し前記変化時間は前記差の大きさに
よって変化するようにしてもよい。また、上記実施例で
は、ポルタメントの変化時間およびビブラートの周期を
音符長に対応する数値で入力するようにしたが、タイミ
ングクロックデータの数を示す値として入力するように
してもよい。例えば、4分音符に相当する設定をする場
合には“24”を、8分音符に相当する設定をする場合
には“12”を入力するようにする。自動演奏装置にお
いては発音指示、消音指示などの送出タイミングはタイ
ミングクロックデータの数として定義されているので、
このような入力方法をとった場合にはポルタメントの変
化時間およびビブラートの周期が自動演奏装置における
タイミングを規定する数値と同じ形式となるため使用者
にとって把握しやすくなるという利点がある。
【0027】さらに、上記実施例ではタイミングクロッ
クデータの間隔のうち最新のもののみに基づいて楽音の
特質の変化速度を制御するようにしているが、この間隔
を最新のもの以外に、例えば1つ前の間隔、2つ前の間
隔、3つ前の間隔をそれぞれ覚えるようにし、これらの
複数の間隔間で適当な重み付けを施した結果求められた
間隔にもとづいて前記制御を行なうようにしてもよい。
あるいは、前記制御を行なうために前回用いた間隔とタ
イミングクロックデータの最新の間隔との間で所定の演
算を施し、演算結果を前記制御を行なうための間隔とし
て用いるようにしてもよい。これらの処理を行なった場
合はタイミングクロックデータの間隔を示すデータが急
激に変化した場合でも前記制御を行なうために使用され
る間隔は滑らかに変化するようになる。
クデータの間隔のうち最新のもののみに基づいて楽音の
特質の変化速度を制御するようにしているが、この間隔
を最新のもの以外に、例えば1つ前の間隔、2つ前の間
隔、3つ前の間隔をそれぞれ覚えるようにし、これらの
複数の間隔間で適当な重み付けを施した結果求められた
間隔にもとづいて前記制御を行なうようにしてもよい。
あるいは、前記制御を行なうために前回用いた間隔とタ
イミングクロックデータの最新の間隔との間で所定の演
算を施し、演算結果を前記制御を行なうための間隔とし
て用いるようにしてもよい。これらの処理を行なった場
合はタイミングクロックデータの間隔を示すデータが急
激に変化した場合でも前記制御を行なうために使用され
る間隔は滑らかに変化するようになる。
【0028】
【発明の効果】以上説明したように、本発明の楽音生成
装置は、楽音の所定の特質を制御する制御情報の変化速
度を求め、この求められた変化速度をもって制御情報が
変化するように、上記変化速度に対応する変化幅分だけ
変化した制御情報を所定時間毎に生成し、この生成され
た制御情報に基づいて上記所定の特質を制御するように
構成したため、演奏テンポに合わせて、楽音の特質の変
化幅を自動的に設定することができる。
装置は、楽音の所定の特質を制御する制御情報の変化速
度を求め、この求められた変化速度をもって制御情報が
変化するように、上記変化速度に対応する変化幅分だけ
変化した制御情報を所定時間毎に生成し、この生成され
た制御情報に基づいて上記所定の特質を制御するように
構成したため、演奏テンポに合わせて、楽音の特質の変
化幅を自動的に設定することができる。
【図1】本発明の一実施例に係る楽音生成装置の概略ブ
ロック図である。
ロック図である。
【図2】RAM内のワークエリアを表した図である。
【図3】タイマインタラプトルーチンのフローチャート
である。
である。
【図4】MIDIインタラプトルーチンのフローチャー
トである。
トである。
【図5】レジスタMODの値の変化状態を示す図であ
る。
る。
【図6】ROM内のテーブルに設定された値をグラフと
して示した図である。
して示した図である。
10 楽音生成装置 14 MID
I回路 15 パネル操作部 16 制御部 18 音源部 20 増幅器
22 スピーカ
I回路 15 パネル操作部 16 制御部 18 音源部 20 増幅器
22 スピーカ
Claims (1)
- 【請求項1】 外部から周期的に入力されるテンポクロ
ックに基づいて、楽音の所定の特質を制御する制御情報
の変化速度を求める変化速度演算手段と、 前記制御情報が前記変化速度演算手段によって求められ
た前記変化速度をもって変化するように、該変化速度に
対応する変化幅ずつ変化した制御情報を所定時間毎に生
成する制御情報生成手段と、 生成された前記制御情報に基づいて前記所定の特質を制
御する楽音制御手段とを備えたことを特徴とする楽音生
成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4156546A JPH05346786A (ja) | 1992-06-16 | 1992-06-16 | 楽音生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4156546A JPH05346786A (ja) | 1992-06-16 | 1992-06-16 | 楽音生成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05346786A true JPH05346786A (ja) | 1993-12-27 |
Family
ID=15630165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4156546A Pending JPH05346786A (ja) | 1992-06-16 | 1992-06-16 | 楽音生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05346786A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009053432A (ja) * | 2007-08-27 | 2009-03-12 | Casio Comput Co Ltd | ポルタメント制御装置およびポルタメント制御処理プログラム |
WO2022102527A1 (ja) * | 2020-11-12 | 2022-05-19 | ヤマハ株式会社 | 信号生成装置、電子楽器、電子鍵盤装置、電子機器、信号生成方法およびプログラム |
-
1992
- 1992-06-16 JP JP4156546A patent/JPH05346786A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009053432A (ja) * | 2007-08-27 | 2009-03-12 | Casio Comput Co Ltd | ポルタメント制御装置およびポルタメント制御処理プログラム |
WO2022102527A1 (ja) * | 2020-11-12 | 2022-05-19 | ヤマハ株式会社 | 信号生成装置、電子楽器、電子鍵盤装置、電子機器、信号生成方法およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001175263A (ja) | 自動伴奏パターン発生装置及び方法 | |
JP2009251261A (ja) | 電子楽器 | |
JPH05346786A (ja) | 楽音生成装置 | |
US5266737A (en) | Positional and pressure-sensitive apparatus for manually controlling musical tone of electronic musical instrument | |
JPH05346785A (ja) | 楽音生成装置 | |
JP2629418B2 (ja) | 楽音合成装置 | |
US5434348A (en) | Electronic keyboard instrument | |
JP2745824B2 (ja) | 電子楽器 | |
JP3419174B2 (ja) | 電子楽器 | |
JPH096343A (ja) | 楽音信号発生装置 | |
JP2523779B2 (ja) | 自動演奏装置 | |
JP3346710B2 (ja) | 発音指示処理方法および発音指示処理装置 | |
JP3666469B2 (ja) | 楽音信号制御方法、楽音信号発生装置およびプログラム | |
JP2551193B2 (ja) | 自動演奏装置 | |
JP2551197B2 (ja) | 自動演奏装置 | |
JP3047431B2 (ja) | 電子楽器 | |
JP3716701B2 (ja) | 発音チャンネル割り当て方法及び装置 | |
JP3290722B2 (ja) | 遅延装置のパラメータ設定装置 | |
JPH0981154A (ja) | 楽音再生速度制御装置 | |
JP3538883B2 (ja) | 楽音制御装置 | |
JP3170013B2 (ja) | 自動演奏装置 | |
JP3022170B2 (ja) | 制御装置 | |
JP3136710B2 (ja) | 効果付加装置 | |
JPH0777982A (ja) | 効果付加装置 | |
JPH06308950A (ja) | 効果付加装置 |