JPH0816164A - 発音命令生成装置 - Google Patents
発音命令生成装置Info
- Publication number
- JPH0816164A JPH0816164A JP6150254A JP15025494A JPH0816164A JP H0816164 A JPH0816164 A JP H0816164A JP 6150254 A JP6150254 A JP 6150254A JP 15025494 A JP15025494 A JP 15025494A JP H0816164 A JPH0816164 A JP H0816164A
- Authority
- JP
- Japan
- Prior art keywords
- command
- keyboard
- pronunciation
- key
- sound generation
- 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.)
- Abandoned
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
(57)【要約】
【目的】 発音命令生成装置において浪費される処理時
間を省くことで処理効率を向上させる。 【構成】 鍵盤LSI102は、鍵盤101に対する演
奏者の押鍵、離鍵操作を検出し、その検出した操作の種
類、及び操作を検出した鍵の鍵番号等を鍵盤情報データ
として内部バッファに順次ストアする。CPU103
は、所定の時間毎に鍵盤LSI102の内部バッファに
ストアされた鍵盤情報データを読み出し、音源である発
音LSI104の発音チャンネル数(最大同時発音数)
に基づき、その内部バッファから読み出した鍵盤情報デ
ータにおいて、発音チャンネル数を越えた分の押鍵イベ
ントに対応する発音命令データの作成を行わずに作成し
た発音命令データを発音LSI104に転送する。
間を省くことで処理効率を向上させる。 【構成】 鍵盤LSI102は、鍵盤101に対する演
奏者の押鍵、離鍵操作を検出し、その検出した操作の種
類、及び操作を検出した鍵の鍵番号等を鍵盤情報データ
として内部バッファに順次ストアする。CPU103
は、所定の時間毎に鍵盤LSI102の内部バッファに
ストアされた鍵盤情報データを読み出し、音源である発
音LSI104の発音チャンネル数(最大同時発音数)
に基づき、その内部バッファから読み出した鍵盤情報デ
ータにおいて、発音チャンネル数を越えた分の押鍵イベ
ントに対応する発音命令データの作成を行わずに作成し
た発音命令データを発音LSI104に転送する。
Description
【0001】
【産業上の利用分野】本発明は、電子楽器、キーボード
コントローラ等に搭載され、音源に楽音波形を生成させ
るための発音命令を生成する発音命令生成装置に関す
る。
コントローラ等に搭載され、音源に楽音波形を生成させ
るための発音命令を生成する発音命令生成装置に関す
る。
【0002】
【従来の技術】電子楽器に搭載される一般的な発音命令
生成装置は、電子楽器の音源に対し、それが生成する楽
音波形を指定する命令(発音命令)を生成するものであ
る。例えば、音高指定スイッチ群として鍵盤を備えた電
子楽器において、ユーザの鍵盤の各鍵に対する操作を検
出し、該検出した操作に応じて発音命令を生成してこれ
を音源に出力する。音源は、発音命令生成装置から発音
命令を入力すると、この入力した発音命令に従って楽音
波形を生成して出力することで、電子楽器はユーザの鍵
盤に対する操作に応じて楽音を発音することになる。
生成装置は、電子楽器の音源に対し、それが生成する楽
音波形を指定する命令(発音命令)を生成するものであ
る。例えば、音高指定スイッチ群として鍵盤を備えた電
子楽器において、ユーザの鍵盤の各鍵に対する操作を検
出し、該検出した操作に応じて発音命令を生成してこれ
を音源に出力する。音源は、発音命令生成装置から発音
命令を入力すると、この入力した発音命令に従って楽音
波形を生成して出力することで、電子楽器はユーザの鍵
盤に対する操作に応じて楽音を発音することになる。
【0003】電子楽器がポリフォニックである場合、一
般に、上記の音源は時分割処理と呼ばれる方法を用いて
楽音波形を生成する。即ち、上記の鍵盤を備えた電子楽
器では、発音命令生成装置は操作された各鍵毎に発音命
令を生成してこれを音源に出力し、音源は発音命令生成
装置から入力した発音命令に各々処理時間を割り当て、
各発音命令毎に生成した楽音波形を合成することで最終
的な楽音波形を生成する。
般に、上記の音源は時分割処理と呼ばれる方法を用いて
楽音波形を生成する。即ち、上記の鍵盤を備えた電子楽
器では、発音命令生成装置は操作された各鍵毎に発音命
令を生成してこれを音源に出力し、音源は発音命令生成
装置から入力した発音命令に各々処理時間を割り当て、
各発音命令毎に生成した楽音波形を合成することで最終
的な楽音波形を生成する。
【0004】ところで、電子楽器は、エレクトロニクス
技術を生かしたものであることから、近年、技術の進歩
と音楽の変遷とが相まって様々な機能が搭載されてきて
いる。また、一方では、電子楽器のデジタル化に伴い、
MIDI(Musical Instrument Digital Interface)と
呼ばれる、演奏情報を他の楽器に伝達するための手段が
急速に普及している。
技術を生かしたものであることから、近年、技術の進歩
と音楽の変遷とが相まって様々な機能が搭載されてきて
いる。また、一方では、電子楽器のデジタル化に伴い、
MIDI(Musical Instrument Digital Interface)と
呼ばれる、演奏情報を他の楽器に伝達するための手段が
急速に普及している。
【0005】MIDIは、複数の楽器を接続することが
できるものである。このため、演奏者は、複数の楽器を
MIDIで接続することで、これらの楽器を一人で同時
に演奏することができる。また、MIDIは、異なるメ
ーカーの音源を組み合わせたり、性格の異なる音源を組
み合わせることもできることから、音源を持たないコン
トロール専用のキーボード(キーボードコントローラ)
などが出現し、楽器のコンポーネント化を促進させてい
る。このことは、例えば、好きなタッチの鍵盤と好みの
音源とを自由に組み合わせるといった、自分に合ったシ
ステムを簡単に構成できることを意味しており、演奏者
にとって大きな利点となっている。
できるものである。このため、演奏者は、複数の楽器を
MIDIで接続することで、これらの楽器を一人で同時
に演奏することができる。また、MIDIは、異なるメ
ーカーの音源を組み合わせたり、性格の異なる音源を組
み合わせることもできることから、音源を持たないコン
トロール専用のキーボード(キーボードコントローラ)
などが出現し、楽器のコンポーネント化を促進させてい
る。このことは、例えば、好きなタッチの鍵盤と好みの
音源とを自由に組み合わせるといった、自分に合ったシ
ステムを簡単に構成できることを意味しており、演奏者
にとって大きな利点となっている。
【0006】このような利点を備えたMIDIは、デジ
タル技術の進歩を受けて急速に普及している。MIDI
の普及は、上記したように楽器のコンポーネント化を進
めるとともに、楽器の演奏スタイル、音楽制作方法を始
め、音楽のスタイルをも変化させている。特に、MID
Iの出現によって自動演奏の分野は大きく発展し、MI
DIシーケンサ(以降、単にシーケンサーと記す)が登
場することになる。このシーケンサは、デジタル処理を
行うことから自動演奏の編集が容易なため、一般の演奏
者も簡単にシーケンサ音楽を行うことができ、自動演奏
との競演を自由に楽しむことができる。
タル技術の進歩を受けて急速に普及している。MIDI
の普及は、上記したように楽器のコンポーネント化を進
めるとともに、楽器の演奏スタイル、音楽制作方法を始
め、音楽のスタイルをも変化させている。特に、MID
Iの出現によって自動演奏の分野は大きく発展し、MI
DIシーケンサ(以降、単にシーケンサーと記す)が登
場することになる。このシーケンサは、デジタル処理を
行うことから自動演奏の編集が容易なため、一般の演奏
者も簡単にシーケンサ音楽を行うことができ、自動演奏
との競演を自由に楽しむことができる。
【0007】このように、楽器の形態が多様化するに伴
い、発音命令生成装置も電子楽器に搭載されるだけでな
く、他の機器にも広く搭載されるようになっている。例
えば、前述のキーボードコントローラといった専用の入
力機器は、キーボード等に対して行われた操作に応じて
音源モジュールに演奏情報を出力するために発音命令生
成装置を搭載している。
い、発音命令生成装置も電子楽器に搭載されるだけでな
く、他の機器にも広く搭載されるようになっている。例
えば、前述のキーボードコントローラといった専用の入
力機器は、キーボード等に対して行われた操作に応じて
音源モジュールに演奏情報を出力するために発音命令生
成装置を搭載している。
【0008】一方の音源モジュールは、電子楽器を含む
入力機器から演奏情報を入力し、この入力した演奏情報
を用いて発音命令を生成し、その内部の音源にこの生成
した発音命令を出力していることから、音源モジュール
も発音命令生成装置を搭載していることになる。
入力機器から演奏情報を入力し、この入力した演奏情報
を用いて発音命令を生成し、その内部の音源にこの生成
した発音命令を出力していることから、音源モジュール
も発音命令生成装置を搭載していることになる。
【0009】ここで、上記の演奏情報と発音命令は、そ
の内容の違いからではなく、外部機器にそれを出力する
か否かにより区別して記載したものである。例えば、内
部に音源を搭載した電子楽器において、生成した発音命
令をその音源に出力すれば発音命令と記載するが、この
発音命令を外部機器(音源モジュール等)に出力すれば
演奏情報と記載する。従って、換言すれば、演奏情報は
外部機器に対する発音命令である。以降においてもこの
ように記載することとする。
の内容の違いからではなく、外部機器にそれを出力する
か否かにより区別して記載したものである。例えば、内
部に音源を搭載した電子楽器において、生成した発音命
令をその音源に出力すれば発音命令と記載するが、この
発音命令を外部機器(音源モジュール等)に出力すれば
演奏情報と記載する。従って、換言すれば、演奏情報は
外部機器に対する発音命令である。以降においてもこの
ように記載することとする。
【0010】
【発明が解決しようとする課題】しかしながら、上記の
発音命令生成装置は、操作されたと検出した音高指定ス
イッチ、及び/或いは他の外部機器から入力した発音命
令に応じて音源に出力する発音命令を生成しているた
め、音源が時分割処理する発音命令数、即ち同時に発音
可能な音の数(以降、最大同時発音数と記す)に係わら
ずに発音命令を生成することになり、音源は最大同時発
音数を越えた分の発音命令は処理できないことから、こ
れを越えた分の発音命令を生成するのに要した時間を浪
費し、処理効率を低下させていたという問題点があっ
た。
発音命令生成装置は、操作されたと検出した音高指定ス
イッチ、及び/或いは他の外部機器から入力した発音命
令に応じて音源に出力する発音命令を生成しているた
め、音源が時分割処理する発音命令数、即ち同時に発音
可能な音の数(以降、最大同時発音数と記す)に係わら
ずに発音命令を生成することになり、音源は最大同時発
音数を越えた分の発音命令は処理できないことから、こ
れを越えた分の発音命令を生成するのに要した時間を浪
費し、処理効率を低下させていたという問題点があっ
た。
【0011】前述したように、MIDIの出現によって
電子楽器を用いた音楽は大きく変化しており、演奏者
は、複数の楽器を1つの音源モジュールに接続したり、
シーケンサーを用いて自動演奏との競演を行うことも多
くなっている。このため、発音命令生成装置において
も、音源の最大同時発音数が小さい場合はもとより、最
大同時発音数が大きい場合であってもこれを越えて発音
命令を生成する場合が増えている。
電子楽器を用いた音楽は大きく変化しており、演奏者
は、複数の楽器を1つの音源モジュールに接続したり、
シーケンサーを用いて自動演奏との競演を行うことも多
くなっている。このため、発音命令生成装置において
も、音源の最大同時発音数が小さい場合はもとより、最
大同時発音数が大きい場合であってもこれを越えて発音
命令を生成する場合が増えている。
【0012】一般的な音源は、最大同時発音数を越える
発音命令を入力すると、越えた分の発音命令を無視し
て、或いは、いわゆる後押し優先方式と呼ばれる方式で
発音処理(時分割処理)を実行する。この後押し優先方
式は、例えば全ての発音チャンネルが使用されていると
きに新たに1つの押鍵イベントが発生した場合、発音チ
ャンネルの中から適当な方法で発音チャンネルを割り当
て(最も長く発音されているもの等)、この割り当てた
発音チャンネルでの発音をハイリリース等により無音状
態にした後、この発音チャンネルに新たに押鍵イベント
の発音命令をストアするものである。
発音命令を入力すると、越えた分の発音命令を無視し
て、或いは、いわゆる後押し優先方式と呼ばれる方式で
発音処理(時分割処理)を実行する。この後押し優先方
式は、例えば全ての発音チャンネルが使用されていると
きに新たに1つの押鍵イベントが発生した場合、発音チ
ャンネルの中から適当な方法で発音チャンネルを割り当
て(最も長く発音されているもの等)、この割り当てた
発音チャンネルでの発音をハイリリース等により無音状
態にした後、この発音チャンネルに新たに押鍵イベント
の発音命令をストアするものである。
【0013】最大同時発音数を越えた発音命令を後押し
優先方式で処理する場合の音源の動作を具体例を挙げて
説明すると、次のようになる。ここで、最大同時発音数
は32、押鍵イベントの発音命令数は35とし、現在発
音中ではないとする。
優先方式で処理する場合の音源の動作を具体例を挙げて
説明すると、次のようになる。ここで、最大同時発音数
は32、押鍵イベントの発音命令数は35とし、現在発
音中ではないとする。
【0014】音源は、発音命令生成装置から35個の発
音命令を入力すると、先ず、発音命令の入力順に32個
の発音命令を時分割処理(1回目)することで32個の
音を発音させ、次に最大同時発音数を越えた分である3
個の発音命令を最も早く受信した3個の発音命令と置き
換えて2回目の時分割処理を実行する。
音命令を入力すると、先ず、発音命令の入力順に32個
の発音命令を時分割処理(1回目)することで32個の
音を発音させ、次に最大同時発音数を越えた分である3
個の発音命令を最も早く受信した3個の発音命令と置き
換えて2回目の時分割処理を実行する。
【0015】このように時分割処理を行うことで、35
個の発音命令を全て処理したことになるが、1回目の時
分割処理でのみ処理された3個の発音命令により発音さ
れた音は直ちに消音されるので、実質的に32個の発音
命令だけを処理したことになる。従って、超過分(ここ
では3個)の発音命令を生成するために要した時間を浪
費したことになる。
個の発音命令を全て処理したことになるが、1回目の時
分割処理でのみ処理された3個の発音命令により発音さ
れた音は直ちに消音されるので、実質的に32個の発音
命令だけを処理したことになる。従って、超過分(ここ
では3個)の発音命令を生成するために要した時間を浪
費したことになる。
【0016】一方、電子楽器等に搭載される機能も増え
てきているとともに、その機能も複雑なものとなってき
ている。このようなことからも、処理時間の浪費を省く
ことで処理時間を短縮し、処理効率を向上することが望
まれていた。現在においても多機能化が進んでいるの
で、これは、今後、一層望まれることである。
てきているとともに、その機能も複雑なものとなってき
ている。このようなことからも、処理時間の浪費を省く
ことで処理時間を短縮し、処理効率を向上することが望
まれていた。現在においても多機能化が進んでいるの
で、これは、今後、一層望まれることである。
【0017】本発明の課題は、浪費される処理時間を省
くことで処理効率を向上させることにある。
くことで処理効率を向上させることにある。
【0018】
【課題を解決するための手段】本発明の発音命令生成装
置は、内部の音源を搭載した電子楽器を始め、音源を持
たないキーボードコントローラ等の入力機器、音源モジ
ュールにも搭載されるものである。
置は、内部の音源を搭載した電子楽器を始め、音源を持
たないキーボードコントローラ等の入力機器、音源モジ
ュールにも搭載されるものである。
【0019】上記の装置に搭載される本発明の発音命令
生成装置は、音高指定スイッチ群に対して行われた操作
を検出し、該検出した操作に従って演奏情報を生成して
これを格納する操作検出手段、及び/或いは、外部機器
が出力した演奏情報を入力し、該入力した演奏情報を格
納する入力手段を演奏情報生成手段として備え、発音命
令生成手段は、音源の最大同時発音数に基づいて、演奏
情報生成手段に格納された演奏情報を用いて発音命令を
生成し、該生成した発音命令を音源に出力する。
生成装置は、音高指定スイッチ群に対して行われた操作
を検出し、該検出した操作に従って演奏情報を生成して
これを格納する操作検出手段、及び/或いは、外部機器
が出力した演奏情報を入力し、該入力した演奏情報を格
納する入力手段を演奏情報生成手段として備え、発音命
令生成手段は、音源の最大同時発音数に基づいて、演奏
情報生成手段に格納された演奏情報を用いて発音命令を
生成し、該生成した発音命令を音源に出力する。
【0020】
【作用】本発明の発音命令生成装置は、演奏者が行った
音高指定スイッチ群に対する操作を検出、及び/或い
は、外部機器から演奏情報を入力すると、音源の最大同
時発音数に応じて、例えば音高指定スイッチ群に対して
検出したオン操作の数、及び/或いは、外部機器から入
力した演奏情報における発音数が音源の最大同時発音数
を越えた場合、音高指定スイッチのオン操作を後押し優
先方式で、及び/或いは、外部機器から演奏情報を後受
信優先方式で、音源に出力する発音命令を最大同時発音
数だけ生成し、この生成した発音命令を音源に出力す
る。
音高指定スイッチ群に対する操作を検出、及び/或い
は、外部機器から演奏情報を入力すると、音源の最大同
時発音数に応じて、例えば音高指定スイッチ群に対して
検出したオン操作の数、及び/或いは、外部機器から入
力した演奏情報における発音数が音源の最大同時発音数
を越えた場合、音高指定スイッチのオン操作を後押し優
先方式で、及び/或いは、外部機器から演奏情報を後受
信優先方式で、音源に出力する発音命令を最大同時発音
数だけ生成し、この生成した発音命令を音源に出力す
る。
【0021】
【実施例】以下、本発明の実施例について、図面を参照
しながら詳細に説明する。図1は、本実施例による発音
命令生成装置を搭載した電子楽器100のシステム構成
を示す概略ブロック図であり、図中の矢印はデータが出
力される方法を示すものである。同図を参照して、その
構成における概略動作を説明する。
しながら詳細に説明する。図1は、本実施例による発音
命令生成装置を搭載した電子楽器100のシステム構成
を示す概略ブロック図であり、図中の矢印はデータが出
力される方法を示すものである。同図を参照して、その
構成における概略動作を説明する。
【0022】鍵盤101は、鍵盤LSI(Large Scale
Integrated Circuit)102によって演奏者が行った押
鍵、離鍵操作の各イベントが検出される。鍵盤LSI1
02は、押鍵操作を検出した場合、その押鍵操作を検出
した鍵の鍵番号と、その鍵に対する押鍵操作時の押鍵速
度を表す鍵速度データとを1つの鍵における1イベント
の鍵盤情報データとして、図示しない内部バッファにス
トアし、反対に離鍵操作を検出した場合、その離鍵操作
を検出した鍵の鍵番号を1イベントの鍵盤情報データと
して同様に内部バッファにストアする。このようにして
鍵盤LSI102は、鍵盤101に対する操作イベント
を検出する度に鍵盤情報データを作成し、内部バッファ
にそれをストアする。
Integrated Circuit)102によって演奏者が行った押
鍵、離鍵操作の各イベントが検出される。鍵盤LSI1
02は、押鍵操作を検出した場合、その押鍵操作を検出
した鍵の鍵番号と、その鍵に対する押鍵操作時の押鍵速
度を表す鍵速度データとを1つの鍵における1イベント
の鍵盤情報データとして、図示しない内部バッファにス
トアし、反対に離鍵操作を検出した場合、その離鍵操作
を検出した鍵の鍵番号を1イベントの鍵盤情報データと
して同様に内部バッファにストアする。このようにして
鍵盤LSI102は、鍵盤101に対する操作イベント
を検出する度に鍵盤情報データを作成し、内部バッファ
にそれをストアする。
【0023】図2は、鍵盤LSI102の内部バッファ
にストアされる鍵盤情報データのフォーマット例を示す
説明図である。図2に示す如く、鍵盤情報データは、そ
れに対応する鍵の押鍵操作、或いは離鍵操作の各イベン
トを検出した順に内部バッファにストアされる。各鍵盤
情報データは押鍵、離鍵操作に係わらず2バイトのデー
タであり、その鍵盤情報データにおける1バイト目は、
押鍵操作か離鍵操作かを示す状態フラグと、その操作を
検出した鍵の鍵番号データとがストアされ、2バイト目
はその鍵の押鍵操作時における鍵速度データがストアさ
れる。状態フラグは、1バイト目のMSBにストアさ
れ、その値が“0”のとき押鍵状態、“1”のとき離鍵
状態を示すものである。
にストアされる鍵盤情報データのフォーマット例を示す
説明図である。図2に示す如く、鍵盤情報データは、そ
れに対応する鍵の押鍵操作、或いは離鍵操作の各イベン
トを検出した順に内部バッファにストアされる。各鍵盤
情報データは押鍵、離鍵操作に係わらず2バイトのデー
タであり、その鍵盤情報データにおける1バイト目は、
押鍵操作か離鍵操作かを示す状態フラグと、その操作を
検出した鍵の鍵番号データとがストアされ、2バイト目
はその鍵の押鍵操作時における鍵速度データがストアさ
れる。状態フラグは、1バイト目のMSBにストアさ
れ、その値が“0”のとき押鍵状態、“1”のとき離鍵
状態を示すものである。
【0024】鍵盤LSI102の内部バッファにストア
された鍵盤情報データは、所定の時間間隔毎にCPU
(Central Processing Unit )103により読み出され
る。CPU103は、その内部メモリに楽器全体の制御
を行うための各種プログラムを記憶しており、詳細は後
述するように、この内部メモリに記憶したプログラムを
実行することで、鍵盤LSI102から読み出した鍵盤
情報データを用いて発音命令データを作成し、この作成
した発音命令データを発音LSI104に転送する。ま
た、CPU103は、特には図示しないシーケンサーか
ら入力した演奏情報を用いて発音命令データを作成し、
これを同様に発音LSI104に転送することもできる
ものである。従って、電子楽器100は、音源モジュー
ルとして用いることができる。
された鍵盤情報データは、所定の時間間隔毎にCPU
(Central Processing Unit )103により読み出され
る。CPU103は、その内部メモリに楽器全体の制御
を行うための各種プログラムを記憶しており、詳細は後
述するように、この内部メモリに記憶したプログラムを
実行することで、鍵盤LSI102から読み出した鍵盤
情報データを用いて発音命令データを作成し、この作成
した発音命令データを発音LSI104に転送する。ま
た、CPU103は、特には図示しないシーケンサーか
ら入力した演奏情報を用いて発音命令データを作成し、
これを同様に発音LSI104に転送することもできる
ものである。従って、電子楽器100は、音源モジュー
ルとして用いることができる。
【0025】発音LSI104は、図示しない内部メモ
リに各種発音処理に関するプログラムを記憶しており、
また、予め波形データが記憶された波形メモリ(図示せ
ず)が接続されたものである。発音LSI104は、こ
の内部メモリに記憶したプログラムを実行することで、
CPU103から転送された発音命令データに基づいて
波形メモリから波形データを読み出してこれを加工する
ことにより、楽音波形データを作成する。
リに各種発音処理に関するプログラムを記憶しており、
また、予め波形データが記憶された波形メモリ(図示せ
ず)が接続されたものである。発音LSI104は、こ
の内部メモリに記憶したプログラムを実行することで、
CPU103から転送された発音命令データに基づいて
波形メモリから波形データを読み出してこれを加工する
ことにより、楽音波形データを作成する。
【0026】発音LSI104が作成した楽音波形デー
タは、D/A変換器(DAC)105に出力される。D
AC105は、発音LSI104が出力した楽音波形デ
ータをアナログ信号に変換してスピーカ106に出力す
る。これにより、スピーカ106から楽音が放音され
る。
タは、D/A変換器(DAC)105に出力される。D
AC105は、発音LSI104が出力した楽音波形デ
ータをアナログ信号に変換してスピーカ106に出力す
る。これにより、スピーカ106から楽音が放音され
る。
【0027】以上が電子楽器100の概略動作である。
次に、その制御動作について詳細に説明する。最初に、
所定の時間間隔毎にCPU103が実行する処理であ
り、鍵盤情報データから発音命令データを作成し、この
作成した発音命令データを発音LSI104に転送する
発音コマンド処理について説明する。
次に、その制御動作について詳細に説明する。最初に、
所定の時間間隔毎にCPU103が実行する処理であ
り、鍵盤情報データから発音命令データを作成し、この
作成した発音命令データを発音LSI104に転送する
発音コマンド処理について説明する。
【0028】図3(a)は、本実施例による発音コマン
ド処理を示すフローチャートである。同図を参照して、
その処理動作を説明する。先ず、鍵盤LSI102の内
部バッファから鍵盤情報データを読み出し、発音命令デ
ータを作成する発音命令データ作成処理(詳細は後述す
る)を実行する(S301)。この発音命令データ作成
処理を実行することで作成された発音命令データは、C
PU103の図示しない内部バッファ(以降、発音命令
データバッファと記す)にストアされる。
ド処理を示すフローチャートである。同図を参照して、
その処理動作を説明する。先ず、鍵盤LSI102の内
部バッファから鍵盤情報データを読み出し、発音命令デ
ータを作成する発音命令データ作成処理(詳細は後述す
る)を実行する(S301)。この発音命令データ作成
処理を実行することで作成された発音命令データは、C
PU103の図示しない内部バッファ(以降、発音命令
データバッファと記す)にストアされる。
【0029】発音命令データ作成処理が終了すると、次
に発音LSI104が割込処理中であるか否か、即ち発
音LSI104がCPU103と発音LSI104を接
続するバスを使用しているか否か判断する(S30
2)。発音LSI104が割込処理中ではないと判断す
ると、即ちCPU103と発音LSI104を接続する
バスを使用できると判断すると、このバスの使用権利を
取得するためのバス権取得処理を実行する(S30
3)。
に発音LSI104が割込処理中であるか否か、即ち発
音LSI104がCPU103と発音LSI104を接
続するバスを使用しているか否か判断する(S30
2)。発音LSI104が割込処理中ではないと判断す
ると、即ちCPU103と発音LSI104を接続する
バスを使用できると判断すると、このバスの使用権利を
取得するためのバス権取得処理を実行する(S30
3)。
【0030】バス権取得処理が終了すると、次にこのバ
スを用いて発音命令データバッファにストアした発音命
令データを発音LSI104に転送する転送処理を実行
し(S304)、この転送処理が終了すると、不要とな
ったバス権を解放するバス権解放処理を実行して(S3
05)、一連の処理を終了する。
スを用いて発音命令データバッファにストアした発音命
令データを発音LSI104に転送する転送処理を実行
し(S304)、この転送処理が終了すると、不要とな
ったバス権を解放するバス権解放処理を実行して(S3
05)、一連の処理を終了する。
【0031】ステップS302において、発音LSI1
04が割込処理中であると判断、即ちCPU103と発
音LSI104を接続するバスを使用できないと判断す
ると、次に、この発明コマンド処理の次に実行する処理
は発音命令データ非作成処理であるか否か、即ち次に実
行する処理においてCPU103と発音LSI104を
接続するバスを使用するか否か判断する(S306)。
04が割込処理中であると判断、即ちCPU103と発
音LSI104を接続するバスを使用できないと判断す
ると、次に、この発明コマンド処理の次に実行する処理
は発音命令データ非作成処理であるか否か、即ち次に実
行する処理においてCPU103と発音LSI104を
接続するバスを使用するか否か判断する(S306)。
【0032】発音コマンド処理の次に実行する処理は発
音命令データ非作成処理と判断、即ち次に実行する処理
においてCPU103と発音LSI104を接続するバ
スを使用しないと判断すると、ここで一連の処理を終了
し、反対に発音コマンド処理の次に実行する処理は発音
命令データ非作成処理ではないと判断、即ち次に実行す
る処理においてCPU103と発音LSI104を接続
するバスを使用すると判断すると、発音LSI104の
割込処理が終了、即ちバスが使用できるようになるまで
待って(S307)、ステップS303の処理に移行す
る。
音命令データ非作成処理と判断、即ち次に実行する処理
においてCPU103と発音LSI104を接続するバ
スを使用しないと判断すると、ここで一連の処理を終了
し、反対に発音コマンド処理の次に実行する処理は発音
命令データ非作成処理ではないと判断、即ち次に実行す
る処理においてCPU103と発音LSI104を接続
するバスを使用すると判断すると、発音LSI104の
割込処理が終了、即ちバスが使用できるようになるまで
待って(S307)、ステップS303の処理に移行す
る。
【0033】図3(b)は、発音LSI104が実行し
た処理のシーケンス例を示すフローチャートである。こ
のフローチャートは、図3(a)の発音コマンド処理に
おけるその各処理ステップの進行と対応させて発音LS
I104が実行した処理の順序を示したものである。発
音LSI104が図3(b)に示すように処理を実行し
た場合、前述した発音コマンド処理の進行は以下のよう
になる。
た処理のシーケンス例を示すフローチャートである。こ
のフローチャートは、図3(a)の発音コマンド処理に
おけるその各処理ステップの進行と対応させて発音LS
I104が実行した処理の順序を示したものである。発
音LSI104が図3(b)に示すように処理を実行し
た場合、前述した発音コマンド処理の進行は以下のよう
になる。
【0034】CPU103が発音コマンド処理の実行を
開始した時点において、発音LSI104はCPU10
3とを接続するバスの使用権利を得て何らかの処理(図
示せず)を行っており、この処理が終了すると、バス権
の解放処理を実行する(S311)。
開始した時点において、発音LSI104はCPU10
3とを接続するバスの使用権利を得て何らかの処理(図
示せず)を行っており、この処理が終了すると、バス権
の解放処理を実行する(S311)。
【0035】一方のCPU103は、発音LSI104
がこのバス権を解放するまでの間に処理を進行してお
り、この間にステップS301の発音命令データ作成処
理が終了し、ステップS302の判断処理を実行した場
合、次にステップS306の判断処理を実行することに
なる。このステップS306の処理において、次に実行
する処理がCPU103と発音LSI104を接続する
バスを使用しないと判断すると、ここで発音コマンド処
理を終了(中断)し、反対に、次に実行する処理がこの
バスを使用すると判断すると、ステップS307の処理
に移行して、発音LSI104がバス権を解放するまで
待つことになる。
がこのバス権を解放するまでの間に処理を進行してお
り、この間にステップS301の発音命令データ作成処
理が終了し、ステップS302の判断処理を実行した場
合、次にステップS306の判断処理を実行することに
なる。このステップS306の処理において、次に実行
する処理がCPU103と発音LSI104を接続する
バスを使用しないと判断すると、ここで発音コマンド処
理を終了(中断)し、反対に、次に実行する処理がこの
バスを使用すると判断すると、ステップS307の処理
に移行して、発音LSI104がバス権を解放するまで
待つことになる。
【0036】発音LSI104がステップS311のバ
ス権解放処理を実行すると、CPU103はステップS
303のバス権取得処理を実行することでバスの使用権
利を得て、ステップS304の発音命令データ転送処理
を実行し、この転送処理の終了後、ステップS305の
バス権解放処理を実行して、発音コマンド処理を終了す
る。
ス権解放処理を実行すると、CPU103はステップS
303のバス権取得処理を実行することでバスの使用権
利を得て、ステップS304の発音命令データ転送処理
を実行し、この転送処理の終了後、ステップS305の
バス権解放処理を実行して、発音コマンド処理を終了す
る。
【0037】一方、発音LSI104は、ステップS3
11のバス権解放処理の終了後、CPU103から発音
命令データを入力すると、CPU103がバス権を解放
するのを待ってバス権取得処理を実行する(S31
2)。発音LSI104は、バス権を取得すると、詳細
は省略するが、CPU103から入力した発音命令デー
タを用いて楽音波形データを生成し、この生成した楽音
波形データをDAC105に出力する発音処理を実行し
て(S313)、CPU103が発音コマンド処理を実
行した間の処理を終了する。
11のバス権解放処理の終了後、CPU103から発音
命令データを入力すると、CPU103がバス権を解放
するのを待ってバス権取得処理を実行する(S31
2)。発音LSI104は、バス権を取得すると、詳細
は省略するが、CPU103から入力した発音命令デー
タを用いて楽音波形データを生成し、この生成した楽音
波形データをDAC105に出力する発音処理を実行し
て(S313)、CPU103が発音コマンド処理を実
行した間の処理を終了する。
【0038】このように、本実施例では、CPU103
と発音LSI104を接続するバスの使用状況に応じて
命令コマンド処理を中断するようにしている。このた
め、このバスが使用できす、即ち作成した発音命令デー
タを発音LSI104に転送できない場合でもこのバス
を使用しない他の処理を先に行うことができる。従っ
て、無駄な待機時間の発生を低減できるので、CPU1
03の処理効率を向上させることができる。
と発音LSI104を接続するバスの使用状況に応じて
命令コマンド処理を中断するようにしている。このた
め、このバスが使用できす、即ち作成した発音命令デー
タを発音LSI104に転送できない場合でもこのバス
を使用しない他の処理を先に行うことができる。従っ
て、無駄な待機時間の発生を低減できるので、CPU1
03の処理効率を向上させることができる。
【0039】次に、上記の発音命令データ作成処理の詳
細について説明する。図4は、発音命令データ作成処理
を示すフローチャートである。ここでは、簡単のため、
鍵盤情報データと発音命令データのフォーマットが同じ
であり、また、外部機器からは演奏情報を入力していな
いとして説明する。
細について説明する。図4は、発音命令データ作成処理
を示すフローチャートである。ここでは、簡単のため、
鍵盤情報データと発音命令データのフォーマットが同じ
であり、また、外部機器からは演奏情報を入力していな
いとして説明する。
【0040】前述したように、鍵盤LSI102の内部
バッファには、鍵盤情報データがイベントの発生順にス
トアされており、先ず、この内部バッファにストアされ
た鍵盤情報データをイベントの発生順(イベントの発生
が古い順)に読み出し、CPU103の鍵盤情報データ
バッファにその先頭アドレスから順に転送(ストア)す
る鍵盤情報データ転送処理を実行する(S401)。こ
の鍵盤情報データ転送処理において、鍵盤情報データバ
ッファにストアした鍵盤情報データ数であるイベント数
も合わせてカウントする。
バッファには、鍵盤情報データがイベントの発生順にス
トアされており、先ず、この内部バッファにストアされ
た鍵盤情報データをイベントの発生順(イベントの発生
が古い順)に読み出し、CPU103の鍵盤情報データ
バッファにその先頭アドレスから順に転送(ストア)す
る鍵盤情報データ転送処理を実行する(S401)。こ
の鍵盤情報データ転送処理において、鍵盤情報データバ
ッファにストアした鍵盤情報データ数であるイベント数
も合わせてカウントする。
【0041】鍵盤情報データ転送処理が終了すると、次
に鍵盤情報データバッファに転送した鍵盤情報データ数
であるイベント数が0であるか否か判断する(S40
2)。イベント数が0ではないと判断すると、鍵盤情報
データバッファにおけるデータの読み出しの現在アドレ
ス(以降、現在読出アドレスと記す)、及び鍵盤情報デ
ータから生成した発音命令データをストアする内部バッ
ファ(以降、発音命令データバッファと記す)における
データの書き込みの現在アドレス(以降、現在書込アド
レスと記す)の初期値を設定する(S403)。
に鍵盤情報データバッファに転送した鍵盤情報データ数
であるイベント数が0であるか否か判断する(S40
2)。イベント数が0ではないと判断すると、鍵盤情報
データバッファにおけるデータの読み出しの現在アドレ
ス(以降、現在読出アドレスと記す)、及び鍵盤情報デ
ータから生成した発音命令データをストアする内部バッ
ファ(以降、発音命令データバッファと記す)における
データの書き込みの現在アドレス(以降、現在書込アド
レスと記す)の初期値を設定する(S403)。
【0042】このステップS403において設定される
各アドレスの初期値は、ステップS401の鍵盤情報デ
ータ転送処理においてカウントしたイベント数を用い
て、以下に示す式により算出するものである。
各アドレスの初期値は、ステップS401の鍵盤情報デ
ータ転送処理においてカウントしたイベント数を用い
て、以下に示す式により算出するものである。
【0043】現在読出アドレスの初期値 = 鍵盤情報
データバッファの先頭アドレス+ ((イベント数−
1)・2) 現在書込アドレスの初期値 = 発音命令データバッフ
ァの先頭アドレス+ イベント数・2 鍵盤情報データバッファには、イベントの発生順にその
鍵盤情報データがストアされているので、現在読出アド
レスの初期値は最新(最も新しいイベント)の鍵盤情報
データがストアされたアドレスを示す値である。一方の
現在書込アドレスの初期値もこれに対応させて設定した
ものである。ここで、例えば、各バッファの先頭アドレ
スの値が1で、イベント数が50であったとすると、現
在読出アドレスの初期値は99、一方の現在書込アドレ
スの初期値は101となる。
データバッファの先頭アドレス+ ((イベント数−
1)・2) 現在書込アドレスの初期値 = 発音命令データバッフ
ァの先頭アドレス+ イベント数・2 鍵盤情報データバッファには、イベントの発生順にその
鍵盤情報データがストアされているので、現在読出アド
レスの初期値は最新(最も新しいイベント)の鍵盤情報
データがストアされたアドレスを示す値である。一方の
現在書込アドレスの初期値もこれに対応させて設定した
ものである。ここで、例えば、各バッファの先頭アドレ
スの値が1で、イベント数が50であったとすると、現
在読出アドレスの初期値は99、一方の現在書込アドレ
スの初期値は101となる。
【0044】現在読出アドレスと現在書込アドレスに各
々初期値を設定すると、次に発音命令データバッファの
初期値設定された現在書込アドレスにFFを書き込み、
現在書込アドレスを2つ減算する(S404)。このF
Fは、発音LSI104がCPU103から転送された
発音命令データの終了を判別するためのエンドマーク
(制御符号)である。
々初期値を設定すると、次に発音命令データバッファの
初期値設定された現在書込アドレスにFFを書き込み、
現在書込アドレスを2つ減算する(S404)。このF
Fは、発音LSI104がCPU103から転送された
発音命令データの終了を判別するためのエンドマーク
(制御符号)である。
【0045】発音命令データバッファにFFを書き込む
と、次に押鍵カウンタに0をセットする(S405)。
押鍵カウンタに0をセットすると、鍵盤情報データバッ
ファの現在読出アドレスからデータを読み出す(S40
6)。このデータの読み出しは、1イベント分(2バイ
ト)ずつ読み出すものである。
と、次に押鍵カウンタに0をセットする(S405)。
押鍵カウンタに0をセットすると、鍵盤情報データバッ
ファの現在読出アドレスからデータを読み出す(S40
6)。このデータの読み出しは、1イベント分(2バイ
ト)ずつ読み出すものである。
【0046】鍵盤情報データバッファの現在読出アドレ
スからデータを読み出すと、この読み出したデータが押
鍵イベントのものであるか否か、即ち状態フラグの値が
0か否か判断する(S407)。このデータが押鍵イベ
ントのものではないと判断すると、後述するステップS
410の処理に移行し、反対に押鍵イベントのデータと
判断すると、押鍵カウンタをインクリメントし(S40
8)、押鍵カウンタの値が最大同時発音数である発音チ
ャンネル(CH)数以下か否か判断する(S409)。
押鍵カウンタの値が発音チャンネル数より大きいと判断
すると、後述するステップS412の処理に移行し、反
対に押鍵カウンタの値が発音チャンネル数以下と判断す
ると、ステップS410の処理に移行する。
スからデータを読み出すと、この読み出したデータが押
鍵イベントのものであるか否か、即ち状態フラグの値が
0か否か判断する(S407)。このデータが押鍵イベ
ントのものではないと判断すると、後述するステップS
410の処理に移行し、反対に押鍵イベントのデータと
判断すると、押鍵カウンタをインクリメントし(S40
8)、押鍵カウンタの値が最大同時発音数である発音チ
ャンネル(CH)数以下か否か判断する(S409)。
押鍵カウンタの値が発音チャンネル数より大きいと判断
すると、後述するステップS412の処理に移行し、反
対に押鍵カウンタの値が発音チャンネル数以下と判断す
ると、ステップS410の処理に移行する。
【0047】ステップS410では、鍵盤情報データバ
ッファから読み出したデータ(鍵盤情報データ)を発音
命令データバッファの現在書込アドレスに書き込む処理
を実行する。鍵盤情報データバッファから読み出したデ
ータは2バイトであるので、鍵盤情報データバッファの
現在読出アドレスのデータ(状態フラグ及び鍵番号デー
タ)は発音命令データバッファの現在書込アドレスに、
現在読出アドレスの次のアドレスにストアされているデ
ータ(鍵速度データ)は現在読出アドレスの次のアドレ
スに各々ストアされることになる。
ッファから読み出したデータ(鍵盤情報データ)を発音
命令データバッファの現在書込アドレスに書き込む処理
を実行する。鍵盤情報データバッファから読み出したデ
ータは2バイトであるので、鍵盤情報データバッファの
現在読出アドレスのデータ(状態フラグ及び鍵番号デー
タ)は発音命令データバッファの現在書込アドレスに、
現在読出アドレスの次のアドレスにストアされているデ
ータ(鍵速度データ)は現在読出アドレスの次のアドレ
スに各々ストアされることになる。
【0048】発音命令データバッファにデータを書き込
むと、次に現在書込アドレスを新たに設定(移動)し
(S411)、続けて現在読出アドレスを新たに設定
(移動)する(S412)。このステップS411の処
理により現在書込アドレスの値は2だけ減算され、一方
の現在読出アドレスもステップS412の処理により2
だけ減算される。
むと、次に現在書込アドレスを新たに設定(移動)し
(S411)、続けて現在読出アドレスを新たに設定
(移動)する(S412)。このステップS411の処
理により現在書込アドレスの値は2だけ減算され、一方
の現在読出アドレスもステップS412の処理により2
だけ減算される。
【0049】現在読出アドレスを移動すると、次に移動
させた現在読出アドレスの値が鍵盤情報データバッファ
の先頭アドレスの値以下であるか否か、即ち鍵盤情報デ
ータバッファから全イベント分の鍵盤情報データの読み
出しが終了したか否か判断する(S413)。現在読出
アドレスの値が鍵盤情報データバッファの先頭アドレス
の値より大きいと判断、即ち鍵盤情報データバッファか
らの鍵盤情報データの読み出しが完了していないと判断
すると、ステップS406の処理に戻って以降の処理を
続行し、反対に現在読出アドレスの値が鍵盤情報データ
バッファの先頭アドレスの値以下と判断、即ち鍵盤情報
データバッファからの鍵盤情報データの読み出しが完了
したと判断すると、次に押鍵カウンタの値が発音チャン
ネル数以下か否か、即ち押鍵イベント数が最大同時発音
数以下か否か判断する(S414)。
させた現在読出アドレスの値が鍵盤情報データバッファ
の先頭アドレスの値以下であるか否か、即ち鍵盤情報デ
ータバッファから全イベント分の鍵盤情報データの読み
出しが終了したか否か判断する(S413)。現在読出
アドレスの値が鍵盤情報データバッファの先頭アドレス
の値より大きいと判断、即ち鍵盤情報データバッファか
らの鍵盤情報データの読み出しが完了していないと判断
すると、ステップS406の処理に戻って以降の処理を
続行し、反対に現在読出アドレスの値が鍵盤情報データ
バッファの先頭アドレスの値以下と判断、即ち鍵盤情報
データバッファからの鍵盤情報データの読み出しが完了
したと判断すると、次に押鍵カウンタの値が発音チャン
ネル数以下か否か、即ち押鍵イベント数が最大同時発音
数以下か否か判断する(S414)。
【0050】押鍵カウンタの値が発音チャンネル数以下
と判断、即ち押鍵イベント数が最大同時発音数以下と判
断すると、ここで一連の処理を終了する。反対に押鍵カ
ウンタの値が発音チャンネル数よりも大きいと判断、即
ち押鍵イベント数が最大同時発音数よりも大きいと判断
すると、後述する発音命令データ調整処理を実行して
(S415)、一連の処理を終了する。
と判断、即ち押鍵イベント数が最大同時発音数以下と判
断すると、ここで一連の処理を終了する。反対に押鍵カ
ウンタの値が発音チャンネル数よりも大きいと判断、即
ち押鍵イベント数が最大同時発音数よりも大きいと判断
すると、後述する発音命令データ調整処理を実行して
(S415)、一連の処理を終了する。
【0051】ここで、上記の発音命令データ調整処理に
ついて説明する。この発音命令データ調整処理が実行さ
れたときは、押鍵イベントの値が発音チャンネル数より
も大きいときなので、前述したように一連の処理が実行
されることにより、鍵盤情報データバッファの最も新し
いイベントから順次読み出された鍵盤情報データのう
ち、発音チャンネル数を越えた分の押鍵イベントの鍵盤
情報データは発音命令データバッファに書き込まれない
ことになる。
ついて説明する。この発音命令データ調整処理が実行さ
れたときは、押鍵イベントの値が発音チャンネル数より
も大きいときなので、前述したように一連の処理が実行
されることにより、鍵盤情報データバッファの最も新し
いイベントから順次読み出された鍵盤情報データのう
ち、発音チャンネル数を越えた分の押鍵イベントの鍵盤
情報データは発音命令データバッファに書き込まれない
ことになる。
【0052】しかし、発音命令データバッファには全イ
ベント数を考慮して発音命令データが書き込まれている
ので、その先頭アドレスから押鍵カウンタの最終値(押
鍵イベント数)が発音チャンネル数を越えた分だけデー
タが書き込まれていないことになる。発音命令データ調
整処理は、このような場合において、発音命令データバ
ッファに既に書き込んだ発音命令データをその先頭アド
レスまで移動させる処理である。
ベント数を考慮して発音命令データが書き込まれている
ので、その先頭アドレスから押鍵カウンタの最終値(押
鍵イベント数)が発音チャンネル数を越えた分だけデー
タが書き込まれていないことになる。発音命令データ調
整処理は、このような場合において、発音命令データバ
ッファに既に書き込んだ発音命令データをその先頭アド
レスまで移動させる処理である。
【0053】この発音命令データ調整処理を具体的に説
明すると、以下のようになる。ここでは簡単のため、発
音チャンネル数を32、押鍵イベント数を35、全イベ
ント数を50として説明する。
明すると、以下のようになる。ここでは簡単のため、発
音チャンネル数を32、押鍵イベント数を35、全イベ
ント数を50として説明する。
【0054】上記のように各数字を想定した場合、発音
命令データバッファのアドレス(1バイトである)に
は、(押鍵イベント数−発音チャンネル数)・鍵盤情報
データのバイト数、即ち(35−32)・2=6(バイ
ト)だけ、その先頭アドレスを含めてデータが書き込ま
れていない領域が存在する。発音命令データが書き込ま
れている先頭のアドレス(以降、書込先頭アドレスと記
す)、及びエンドマークであるFFが書き込まれている
書込終了アドレス(これは、現在書込アドレスの初期値
である)は、一般的に次のようになる。
命令データバッファのアドレス(1バイトである)に
は、(押鍵イベント数−発音チャンネル数)・鍵盤情報
データのバイト数、即ち(35−32)・2=6(バイ
ト)だけ、その先頭アドレスを含めてデータが書き込ま
れていない領域が存在する。発音命令データが書き込ま
れている先頭のアドレス(以降、書込先頭アドレスと記
す)、及びエンドマークであるFFが書き込まれている
書込終了アドレス(これは、現在書込アドレスの初期値
である)は、一般的に次のようになる。
【0055】書込先頭アドレス = 発音命令データバ
ッファの先頭アドレス+ (押鍵イベント数 − 発音
チャンネル数)・2 書込終了アドレス = 発音命令データバッファの先頭
アドレス+ 押鍵イベント数・2 従って、発音命令データバッファの先頭アドレスを1と
すると、書込先頭アドレスは7、書込終了アドレスは1
01となる。書込先頭アドレスと書込終了アドレスの間
にストアされたデータは、各々(押鍵イベント数−発音
チャンネル数)・鍵盤情報データのバイト数、即ち書込
先頭アドレスから先頭アドレスを引いた値だけ前のアド
レスに移動させることから、この場合において発音命令
データは6(=7−1)だけ前のアドレスに移動させら
れる。
ッファの先頭アドレス+ (押鍵イベント数 − 発音
チャンネル数)・2 書込終了アドレス = 発音命令データバッファの先頭
アドレス+ 押鍵イベント数・2 従って、発音命令データバッファの先頭アドレスを1と
すると、書込先頭アドレスは7、書込終了アドレスは1
01となる。書込先頭アドレスと書込終了アドレスの間
にストアされたデータは、各々(押鍵イベント数−発音
チャンネル数)・鍵盤情報データのバイト数、即ち書込
先頭アドレスから先頭アドレスを引いた値だけ前のアド
レスに移動させることから、この場合において発音命令
データは6(=7−1)だけ前のアドレスに移動させら
れる。
【0056】一方、ステップS402において、鍵盤情
報データバッファに転送した鍵盤情報データのイベント
数が0、即ち鍵盤101が操作されていないと判断する
と、次に発音命令データバッファの先頭アドレスにFF
を書き込んで(S416)、一連の処理を終了する。
報データバッファに転送した鍵盤情報データのイベント
数が0、即ち鍵盤101が操作されていないと判断する
と、次に発音命令データバッファの先頭アドレスにFF
を書き込んで(S416)、一連の処理を終了する。
【0057】なお、発音命令データバッファに書き込ま
れた発音命令データは、前述した発音命令データ転送処
理が実行されることで発音LSI104に転送され、発
音LSI104が発音処理を実行することで、スピーカ
106から楽音が放音されることになる。
れた発音命令データは、前述した発音命令データ転送処
理が実行されることで発音LSI104に転送され、発
音LSI104が発音処理を実行することで、スピーカ
106から楽音が放音されることになる。
【0058】このように、本実施例では、発音チャンネ
ル数を越えた分の音は実質的に発音することができない
ことから、発音チャンネル数を越えた分の押鍵イベント
の発音命令データを作成しないため、この分の発音命令
データを作成するために要する時間を短縮することがで
きる。また、押鍵イベント数が発音チャンネル数を越え
ているか否かに係わらず、離鍵イベントの発音命令デー
タは作成して発音LSI104に転送するので、離鍵さ
れた鍵に対応する音が消音されないといった不具合の発
生は回避される。
ル数を越えた分の音は実質的に発音することができない
ことから、発音チャンネル数を越えた分の押鍵イベント
の発音命令データを作成しないため、この分の発音命令
データを作成するために要する時間を短縮することがで
きる。また、押鍵イベント数が発音チャンネル数を越え
ているか否かに係わらず、離鍵イベントの発音命令デー
タは作成して発音LSI104に転送するので、離鍵さ
れた鍵に対応する音が消音されないといった不具合の発
生は回避される。
【0059】また、押鍵イベントは、その押鍵イベント
が発生した順序を考慮し、新しく発生した押鍵イベント
を優先してその発音命令データを作成しているので、演
奏者は鍵盤101に対して行った操作と、その操作によ
り発音される音との対応において違和感を与え難いとい
う効果もある。
が発生した順序を考慮し、新しく発生した押鍵イベント
を優先してその発音命令データを作成しているので、演
奏者は鍵盤101に対して行った操作と、その操作によ
り発音される音との対応において違和感を与え難いとい
う効果もある。
【0060】近年におけるMIDIの普及は、前述した
ように、楽器のコンポーネント化を進め、MIDIコン
トロールを前提とする音源モジュールや、音源を持たな
いコントロール専用のキーボード、シーケンサなどを出
現させるとともに、演奏者は複数の楽器を同時に演奏す
ることができることから、音楽表現力を大幅に向上させ
ている。特にシーケンサの出現は、自動演奏の演奏情報
を容易に編集することができることから、演奏者は自動
演奏との競演を所望のバリエーションで容易に行うこと
ができる。
ように、楽器のコンポーネント化を進め、MIDIコン
トロールを前提とする音源モジュールや、音源を持たな
いコントロール専用のキーボード、シーケンサなどを出
現させるとともに、演奏者は複数の楽器を同時に演奏す
ることができることから、音楽表現力を大幅に向上させ
ている。特にシーケンサの出現は、自動演奏の演奏情報
を容易に編集することができることから、演奏者は自動
演奏との競演を所望のバリエーションで容易に行うこと
ができる。
【0061】このことから、電子楽器に搭載される機能
は増えると共に、一度に発音させる音の数もまた増えて
きている。しかし、処理速度の点から最大同時発音数
(発音チャンネル数)を増やすことは困難であり、ま
た、搭載される機能が増えることでその処理も重くなっ
てきている。
は増えると共に、一度に発音させる音の数もまた増えて
きている。しかし、処理速度の点から最大同時発音数
(発音チャンネル数)を増やすことは困難であり、ま
た、搭載される機能が増えることでその処理も重くなっ
てきている。
【0062】一方、外部機器から入力した演奏情報にお
いては、通常、入力した演奏情報をそのまま発音命令と
することはできないので、演奏情報を発音命令に変換す
る処理が必要である。また、本実施例のように、鍵盤情
報データをそのまま発音命令データとすることは殆どな
いので、実際には鍵盤情報データから発音命令データを
作成するためには所定の処理を行わなければならない。
本発明は、上述したように、発明コマンド処理(発音命
令データ作成処理を含む)を実行することで、このよう
な処理におけるその負担を軽減し、処理効率の向上に貢
献するものである。
いては、通常、入力した演奏情報をそのまま発音命令と
することはできないので、演奏情報を発音命令に変換す
る処理が必要である。また、本実施例のように、鍵盤情
報データをそのまま発音命令データとすることは殆どな
いので、実際には鍵盤情報データから発音命令データを
作成するためには所定の処理を行わなければならない。
本発明は、上述したように、発明コマンド処理(発音命
令データ作成処理を含む)を実行することで、このよう
な処理におけるその負担を軽減し、処理効率の向上に貢
献するものである。
【0063】なお、本実施例では、発音命令データ調整
処理を実行することで、発音命令データバッファの先頭
アドレスから発音命令データをストアしているが、この
発音命令データ調整処理を行わないようにしても良い。
このようにした場合、発音命令データバッファにおいて
発音命令データがストアされた範囲を指定することで、
発音命令データを発音LSI104に転送すれば良い。
処理を実行することで、発音命令データバッファの先頭
アドレスから発音命令データをストアしているが、この
発音命令データ調整処理を行わないようにしても良い。
このようにした場合、発音命令データバッファにおいて
発音命令データがストアされた範囲を指定することで、
発音命令データを発音LSI104に転送すれば良い。
【0064】また、CPU103は、発音命令データの
転送処理を行わず、発音LSI104が発音命令データ
バッファから発音命令データを読み出すようにしても良
い。このようにすることで、CPU103の処理の負担
をさらに軽減することができる。
転送処理を行わず、発音LSI104が発音命令データ
バッファから発音命令データを読み出すようにしても良
い。このようにすることで、CPU103の処理の負担
をさらに軽減することができる。
【0065】また、本実施例は、その内部に音源である
発音LSI104を備えた電子楽器100に適用させた
ものであるが、これに限定されるものではない。本発明
は、音源に出力する発音命令の作成に関するものである
ので、音源を持たない専用の入力機器(キーボードコン
トローラ等)、及び外部機器から演奏情報を入力する音
源モジュールに対しても容易に適用することができるも
のである。
発音LSI104を備えた電子楽器100に適用させた
ものであるが、これに限定されるものではない。本発明
は、音源に出力する発音命令の作成に関するものである
ので、音源を持たない専用の入力機器(キーボードコン
トローラ等)、及び外部機器から演奏情報を入力する音
源モジュールに対しても容易に適用することができるも
のである。
【0066】
【発明の効果】以上、説明したように本発明の発音命令
生成装置は、演奏者が行った音高指定スイッチ群に対す
る操作を検出、及び/或いは、外部機器から演奏情報を
入力すると、音源の最大同時発音数に基づいて発音命令
を生成してこれを音源に出力するため、最大同時発音数
を越える発音命令を生成することがなく、余分な処理を
実行することで浪費する時間を省くことができることか
ら、処理の負担が軽減され、処理効率を向上させること
ができる。
生成装置は、演奏者が行った音高指定スイッチ群に対す
る操作を検出、及び/或いは、外部機器から演奏情報を
入力すると、音源の最大同時発音数に基づいて発音命令
を生成してこれを音源に出力するため、最大同時発音数
を越える発音命令を生成することがなく、余分な処理を
実行することで浪費する時間を省くことができることか
ら、処理の負担が軽減され、処理効率を向上させること
ができる。
【図1】本実施例を搭載した電子楽器のシステム構成を
示す概略ブロック図である。
示す概略ブロック図である。
【図2】鍵盤LSIの内部バッファにストアされる鍵盤
情報データのフォーマット例を示す説明図である。
情報データのフォーマット例を示す説明図である。
【図3】本実施例による発音コマンド処理を示すフロー
チャート(a)、発音LSIが実行した処理のシーケン
ス例を示すフローチャート(b)である。
チャート(a)、発音LSIが実行した処理のシーケン
ス例を示すフローチャート(b)である。
【図4】本実施例による発音命令データ作成処理を示す
フローチャートである。
フローチャートである。
100 電子楽器 101 鍵盤 102 鍵盤LSI 103 CPU 104 発音LSI 105 DAC 106 スピーカ
Claims (1)
- 【請求項1】 楽音の音高を指定する音高指定スイッチ
群に対する操作、外部機器から入力した演奏情報の少な
くとも一方に従って楽音を発音させるための発音命令を
生成し、該生成した発音命令を機器内部、或いは外部の
音源に出力する発音命令生成装置であって、 前記音高指定スイッチ群に対して行われた操作を検出
し、該検出した操作に従って演奏情報を生成してこれを
格納する操作検出手段、外部機器が出力した演奏情報を
入力し、該入力した演奏情報を格納する入力手段の少な
くとも一方を演奏情報生成手段として備え、 前記音源の最大同時発音数に基づいて、前記演奏情報生
成手段に格納された演奏情報を用いて発音命令を生成
し、該生成した発音命令を前記音源に出力する発音命令
生成手段を、 具備したことを特徴とする発音命令生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6150254A JPH0816164A (ja) | 1994-06-30 | 1994-06-30 | 発音命令生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6150254A JPH0816164A (ja) | 1994-06-30 | 1994-06-30 | 発音命令生成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0816164A true JPH0816164A (ja) | 1996-01-19 |
Family
ID=15492930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6150254A Abandoned JPH0816164A (ja) | 1994-06-30 | 1994-06-30 | 発音命令生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0816164A (ja) |
-
1994
- 1994-06-30 JP JP6150254A patent/JPH0816164A/ja not_active Abandoned
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0954586A (ja) | 楽音発生装置 | |
JP7124371B2 (ja) | 電子楽器、方法及びプログラム | |
JP3444947B2 (ja) | 楽音信号発生装置 | |
JPH06149261A (ja) | 電子楽器 | |
JPH0887270A (ja) | 電子楽器 | |
JPH03269584A (ja) | 電子楽器 | |
JPH0566777A (ja) | 電子楽器用音源装置 | |
JP3152198B2 (ja) | 楽音発生方法および楽音発生装置 | |
JPH0816164A (ja) | 発音命令生成装置 | |
JPH0968980A (ja) | 電子鍵盤楽器の音色制御装置 | |
JP3799711B2 (ja) | 楽音発生方法および楽音発生装置 | |
JP3978928B2 (ja) | 楽音生成装置 | |
JP2798077B2 (ja) | 電子楽器用音源装置 | |
JP3721789B2 (ja) | ミキシング装置 | |
JP3928725B2 (ja) | 楽音信号発生装置及びレガート処理プログラム | |
JP3508139B2 (ja) | デジタル信号処理プロセッサ | |
JP3278857B2 (ja) | 楽音形成装置 | |
JP2937029B2 (ja) | 楽音発生装置 | |
JP4306138B2 (ja) | 楽音発生装置及び楽音発生処理のプログラム | |
JP3612742B2 (ja) | 電子楽器 | |
JPH0515279B2 (ja) | ||
JPH1031486A (ja) | 演奏データ記憶再生方法および装置 | |
JP3561983B2 (ja) | 電子楽器 | |
JP2573416Y2 (ja) | 楽音情報処理装置 | |
JP3758267B2 (ja) | 音源回路設定方法、該方法によって設定される音源回路を備えたカラオケ装置、および記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040217 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20040331 |