JP2002196763A - 楽音発生方法 - Google Patents
楽音発生方法Info
- Publication number
- JP2002196763A JP2002196763A JP2001393560A JP2001393560A JP2002196763A JP 2002196763 A JP2002196763 A JP 2002196763A JP 2001393560 A JP2001393560 A JP 2001393560A JP 2001393560 A JP2001393560 A JP 2001393560A JP 2002196763 A JP2002196763 A JP 2002196763A
- Authority
- JP
- Japan
- Prior art keywords
- sound source
- output
- software
- event
- processing
- 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.)
- Granted
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
ア音源を使用できるようにする。 【解決手段】 シーケンサプログラムから演奏情報を送
出するときに、ハードウエア音源12に出力するときは
API27に出力し、ソフトウエア音源23に出力する
ときはAPI22に送出する。これにより、いずれの音
源からでも発音させることが可能となる。この選択は、
各演奏パート毎に行うことができ、また、両音源から同
時に発音させることもできる。ハードウェア音源が装着
されていないときは、ソフトウェア音源を選択する。
Description
える汎用処理装置により楽音を生成できるようにした楽
音発生方法に関するものである。
波数変調方式、波形メモリ方式などの専用の音源回路
(ハードウエア音源)およびマイクロプロセッサ(CP
U)を用意し、MIDI(Musical Instrument Digital
Interface)、鍵盤、あるいはシーケンサ等からの演奏
情報に応じて、前記CPUにより前記ハードウエア音源
を制御して楽音を発生することが一般的に行われてい
た。このため、楽音発生装置は楽音を生成するための専
用機器となってしまい、楽音を生成する時には専用の楽
音発生装置を用意する必要があった。
ードウエア音源の動作をコンピュータプログラムによる
音源処理(ソフトウエア音源)に置き換え、CPUによ
り演奏処理と音源処理とを実行させるようにした楽音発
生方法が提案されている(特願平7−144159
号)。ここで、演奏処理とは、入力されたMIDIなど
の演奏情報に基づき、生成される楽音を制御するための
制御情報を作成する処理であり、音源処理とは、該演奏
処理において作成された制御情報に基づき楽音の波形デ
ータを生成する処理である。
鍵検出等の演奏処理を実行しており、該演奏処理に対し
て各サンプリング周期(デジタル/アナログ変換器の変
換タイミング)毎に音源処理を割り込み実行させ、複数
チャンネルの楽音の1サンプル分の波形データを演算生
成した後、再び演奏処理に復帰するという方式も提案さ
れている。このような楽音発生方法においては、専用の
楽音発生装置を用いることなく、CPUとソフトウエア
のほかにはDA変換用のチップを備えるだけで、楽音を
発生させることが可能となる。
ウエア音源を備えた楽音発生方法においては、そのソフ
トウエア音源を専用で使用するようになされており、発
生した演奏情報は該ソフトウエア音源に固定的に供給さ
れるようになされていた。ところで、上記したようにソ
フトウエア音源はパーソナルコンピュータなどの汎用コ
ンピュータにおいても実行可能なものである。一般に、
パーソナルコンピュータなどにおいては、拡張ボードに
よるハードウエア音源が備えられていることがあるが、
ソフトウエア音源を備えた楽音発生方法を拡張ボードに
よるハードウエア音源を備える汎用コンピュータで実行
した場合、拡張ボードによるハードウエア音源を使用す
ることができないという問題点があった。
えていても、ハードウエア音源を使用することのできる
楽音発生方法を提供することを目的としている。
に、本発明の楽音発生方法は、演算装置において実行さ
れる楽音発生方法であって、演奏情報を順次供給するス
テップと、ハードウエア音源とソフトウエア音源の少な
くとも一方を指定するステップと、前記供給される演奏
情報を、前記指定に従って、前記ハードウエア音源およ
び/または前記ソフトウエア音源に入力させる入力ステ
ップとを有し、前記入力ステップは、前記演算装置に前
記ハードウェア音源が接続されていない場合は、前記演
奏情報を前記ソフトウェア音源に入力するものとされて
いる。
ことができる楽音発生装置の一実施の形態の構成を図1
に示す。この図において、1はアプリケーションプログ
ラム等を実行して楽音波形サンプルの生成等の各種制御
を行うマイクロプロセッサ(CPU)、2はプリセット
音色データ等が記憶されているリードオンリメモリ(R
OM)、3はCPU1のワークメモリエリアや音色デー
タエリア、入力バッファエリア、チャンネルレジスタエ
リア、出力バッファエリア等の記憶エリアを有するラン
ダムアクセスメモリ(RAM)、4は時刻を指示すると
共に、タイマ割り込み処理のタイミングをCPU1に指
示するタイマ、5はMIDIイベントが入力されると共
に、生成されたMIDIイベントを出力するMIDIイ
ンターフェースであり、該MIDIインターフェースに
は点線で示すように外部音源6を接続することもでき
る。
備えるいわゆるパソコン用のキーボード、8はユーザが
楽音発生装置と対話するためのディスプレイ(モニ
タ)、9は各種アプリケーションプログラムがインスト
ールされていると共に、楽音波形サンプルを生成するた
めに使用する楽音波形データ等が記憶されているハード
ディスク装置(HDD)、10は前記RAM3内のCP
U1により指定されたエリアに記憶されている楽音波形
サンプルのデータをCPU1を介することなく直接に受
渡を行い、一定のサンプリング周期(例えば、48kH
z)毎にデジタル・アナログ変換器(DAC)11に供
給するDMA(Direct Memory Access)回路、11は楽
音波形サンプルのデータを受け取りアナログ信号に変換
するデジタル・アナログ変換器(DAC)、12は拡張
ボードの一種であり、前述したハードウエア音源が搭載
されているサウンドカードである。13は前記DAC1
1から出力される楽音信号と前記サウンドカード12か
ら出力される楽音信号とを混合するミキサー回路、14
はミキサー回路13から出力されたアナログ信号に変換
された楽音信号を放音するサウンドシステムである。以
上の構成はパソコン、ワークステーション等の汎用コン
ピュータと同等であり、それらの上で本発明の楽音発生
方法を実施することができる。
ジュール構成の一例を示す。なお、この図においては、
説明を簡略にするため、本発明の楽音発生方法に関係す
る部分のみが示してある。この図に示すように、最上位
層にはアプリケーションソフトウエアが位置しており、
21はMIDIシーケンサ、ゲームソフトあるいはカラ
オケソフトなどのMIDIの再生を要求するプログラム
(以下、単に「シーケンサプログラム」という)であ
る。次の階層はシステムソフトウエア群であり、ここに
ソフトウエア音源23が位置しており、該ソフトウエア
音源23は(ソフト)音源MIDIドライバおよび音源
部が含まれている。25は波形(WAVE)入出力ドライバ
などのいわゆるマルチメディア機能を実現するためのプ
ログラム群、26は後述するコーデック回路16のため
のコーデックドライバ、28は前記サウンドカード12
のためのサウンドカードドライバである。なお、このコ
ーデック回路16には波形サンプルデータを入出力する
ためのA/D変換器およびD/A変換器が含まれてお
り、このD/A変換器は図1におけるDAC11であ
る。
と前記ソフトウエア音源23とのインターフェースをと
るためのソフト音源MIDI出力API(application
programming interface)、24はアプリケーションプ
ログラムと前記プログラム群25内に含まれている波形
(WAVE)入出力ドライバとのインターフェースをとるた
めの波形出力API、27は前記シーケンサプログラム
21などのアプリケーションソフトウエアとサウンドカ
ードドライバ28および外部音源6とのインターフェー
スをとるためのMIDI出力APIである。各プログラ
ムはこれらAPIを使用してシステムプログラムの提供
する各種サービスを利用することができる。なお、図示
していないが、上記システムソフトウエアの階層には、
当然、通常の汎用OSに含まれているデバイスドライバ
群およびメモリ管理、ファイルシステム、ユーザインタ
ーフェースなどのプログラム群が含まれている。
グラム21から演奏情報としてMIDIイベントが出力
される。本発明においては、この演奏情報の出力先は、
図示するように、前記ソフト音源MIDI出力API2
2およびMIDI出力API27のいずれか一方あるい
は両方を選択することができるようになされている。こ
れは、当該MIDIイベントを受け取るべきAPIを指
定してシーケンサプログラム21からMIDIイベント
を送出することにより実現される。ただし、ハードウエ
ア音源が装着されていないときには、ハードウエア音源
を選択することはできないようになされている。
の出力先としてソフトウエア音源23が選択され、ソフ
ト音源MIDI出力API22にMIDIイベントが出
力されたとき、ソフトウエア音源23は、受け取ったM
IDIメッセージを波形(WAVE)出力データに変換し、
波形出力API24を呼ぶ。これにより発生された楽音
に対応する波形データはコーデックドライバ26を介し
てコーデック回路16に出力され、前述したようにDA
C11によりアナログ信号に変換されてサウンドシステ
ム14より発音されることとなる。
奏情報の出力先としてサウンドカード12に搭載されて
いるハードウエア音源が選択され、MIDI出力API
27にMIDIイベントが出力されたときは、該MID
Iイベントはサウンドカードドライバ28を介してサウ
ンドカード12内のハードウエア音源に出力され、該ハ
ードウエア音源に固有の楽音発生方式に基づいて対応す
る楽音が生成されることとなる。また、外部に接続され
ている外部音源6が演奏情報の出力先として選択された
ときもMIDI出力API27にMIDIイベントが出
力され、プログラム群25内の外部MIDIドライバお
よびMIDIインタフェース5を介して外部音源6に出
力される。これにより、外部音源6から対応する楽音が
発生される。
れる楽音発生処理を説明するための図である。この図に
おいて、演奏入力と記されているのは、前述したシーケ
ンサプログラム21から出力されるMIDIイベントで
あり、例えば、時刻ta、tb、tc、tdのように楽
譜通りのタイミングで送出される。このMIDIイベン
トが受信されると最も優先順位の高い割り込みが発生
し、該MIDI受信割り込み処理においてそのMIDI
イベントは受信時刻データとともに入力バッファに格納
される。これによりソフトウエア音源23においてMI
DI処理が行われ、各MIDIイベントに対応する発音
制御信号が対応する発音チャンネルの音源レジスタに書
き込まれる。
ア音源23の音源処理部により実行される波形生成演算
のタイミングであり、演算時刻t0、t1,t2、t3
と示すように一定周期で起動される。この周期をフレー
ム周期と呼び、これは一つの出力バッファに格納可能な
波形サンプル数に応じた周期である。各フレーム周期に
おいて、その前のフレーム周期に受信されたMIDIイ
ベントに応じて前記MIDI処理により各発音チャンネ
ルの音源レジスタに格納されている発音制御信号を用い
て、各発音チャンネルの波形生成演算が実行される。こ
のようにして生成された波形データは出力バッファに足
し込まれ、図3の下段に示すように、その次のフレーム
周期にDMA回路10により各サンプリング周期毎に順
次読み出され、DAC11により再生される。これによ
り、途切れることなく発音が行われる。
エア音源23により実行される処理のフローチャートを
示す図である。ソフトウエア音源23は起動されると、
まず、ステップS10において、各種レジスタのクリア
などの初期設定が行われる。続いてステップS11にお
いて、ユーザーに対してこのソフトウエア音源が起動さ
れていることを表示するためのアイコンの表示などの画
面の準備処理が行われる。次に、ステップS12に進
み、ここで起動要因が存在するか否かのチェックが行わ
れる。起動要因としては、(1)入力バッファに未処理
イベントがあること(これはMIDIイベントを受信し
たときに発生する。)、(2)(演算時刻となって)波
形演算要求が発生していること、(3)キーボードやパ
ネルからの音源の動作の制御コマンド入力などのMID
Iの処理以外の処理要求が発生していること、(4)終
了要求が発生していること、の4通りの要因が存在して
いる。
否かが判定され、NOのときは再びステップS12に戻
り、起動要因の発生を待つ。ステップS13の判定結果
がYESとなり、起動要因が発生していることが検出さ
れたときにはステップS14に進み、該起動要因が前記
(1)〜(4)のうちのいずれであるのかが判定され
る。
入力バッファに未処理イベントがあるときには、ステッ
プS15に進み、MIDI処理が行われる。このMID
I処理においては、入力バッファに書き込まれているM
IDIイベントを、それに対応する音源(発音チャンネ
ル)に渡すべき制御パラメータに変換する処理が行われ
る。このステップS15のMIDI処理が終了した後、
ステップS16の受信表示処理がおこなわれ、MIDI
を受信したことなどが画面に表示される。そして、その
後ステップS12に戻り、起動要因の発生を待つ。
を図5の(a)と(b)に示す。図5の(a)は入力バ
ッファに格納されているMIDIイベントがノートオン
イベントであるときに実行されるMIDI処理のフロー
チャートである。未処理イベントがノートオンイベント
であるときには、まず、ステップS31において、当該
ノートナンバーがNNとして、ベロシティがVELとし
て、パート別の音色データがtとして、それぞれレジス
タに取り込まれ、さらに、そのノートオンイベントの発
生時刻がTMレジスタに取り込まれる。次いで、ステッ
プS32においてレジスタに取り込まれたノートナンバ
NNの発音割当処理が行われ、割り当てられたチャンネ
ル(ch)の番号がiとしてレジスタに取り込まれる。
する音色データTP(t)がノートナンバNNおよびベ
ロシティVELに応じて加工される。そして、ステップ
S34において、該加工された音色データ、ノートオン
および発生時刻データTMをiチャンネルの音源レジス
タに書き込み、ノートオンイベント処理を終了する。
フイベントであるときの処理のフローチャートである。
ノートオフ処理が開始されると、ステップS41におい
て、入力バッファ中のそのノートオフイベントのノート
ナンバがNNとして、また、パート別音色データがtと
して、それぞれレジスタに取り込まれ、さらに、該ノー
トオフイベントの発生時刻がTMとしてレジスタに取り
込まれる。次いで、ステップS42において、ノートナ
ンバNNで発音されている発音チャンネル(ch)がサ
ーチされ、見つかった発音chの番号がiとしてレジス
タに取り込まれる。次に、ステップS43においてic
hの音源レジスタにノートオフと発生時刻TMとを書き
込んで、ノートオフイベント処理を終了する。
て、起動要因が(2)波形演算要求発生であるときは、
ステップS17の音源処理が実行される。この処理は波
形生成演算を行う処理であり、前記ステップS15のM
IDI処理において各チャンネル(ch)に対応する音
源レジスタに格納された楽音制御データに基づき波形生
成演算が行われる。このステップS17の音源処理が終
了した後に、ステップS18において例えば音源処理に
要したCPUの負荷量などが表示される。その後、ステ
ップS12に戻り、待ち状態となる。
ず、演算順序の1番目の発音チャンネル(ch)につい
て、LFO、フィルタG、音量EGの波形演算を行い、
所定の時間範囲の演算に必要なLFO波形、FEG波
形、AEG波形のサンプルを生成する。LFO波形はF
ナンバ、FEG波形、AEG波形に加算され、各データ
を変調する。また、消音すべきチャンネルとして指定さ
れた発音チャンネルに関しては、音量EGとして前記範
囲内で急速に減衰するダンプ用のAEG波形が演算生成
される。次いで、前回の読み出しアドレスを初期値とし
てFナンバを繰り返し加算し前記時間範囲内の各サンプ
ルの読み出しアドレスを発生し、この読み出しアドレス
の整数部に基づいて音色データ内の波形記憶領域より波
形サンプルを読み出すと共に、この読み出しアドレスの
小数部に基づいて読み出された波形サンプル間の補間を
行い、前記時間範囲内の全補間サンプルを算出するよう
にする。
対し音色フィルタ処理が行われ、前記FEG波形に基づ
いて音色制御が行われ、フィルタ処理済の前記時間範囲
内のサンプルに対し振幅制御処理が行われ、前記AEG
および音量データに基づいて楽音波形サンプルの振幅制
御が行われると共に、振幅制御処理された前記時間範囲
分の楽音波形サンプルがそれぞれ出力バッファの対応す
るサンプルに足し込まれる累算書込処理が実行される。
このようにして、全発音チャンネルの演算が終了するま
で各発音チャンネルの波形サンプル生成処理が行われ、
生成された前記所定時間範囲分のサンプルは、出力バッ
ファの対応するサンプルに順次足し込まれる。
理およびステップS17の音源処理については、前記特
願平7ー144159号に詳細に記載されているので、
必要な場合には当該公報を参照されたい。
において、(3)その他の処理要求であると判定された
ときは、ステップS19に進み、対応する処理、例え
ば、この処理要求が音色の設定/変更処理であるときに
は、設定された音色番号を設定する処理など行い、ステ
ップS20に進んで該設定された音色番号の表示などを
行った後、ステップS12に戻り待ち状態となる。さら
に、前記ステップS14において、(4)終了要求であ
ると判定されたときは、ステップS21において終了処
理を行い、ステップS22において関連する画面情報を
消去して、このソフトウエア音源処理を終了する。
1により実行されるMIDI受信割込み処理のフローチ
ャートを図6に示す。この処理は、ソフト音源MIDI
出力API22が呼ばれて、シーケンサプログラム21
などからの演奏情報(MIDIイベント)が受信された
際に発生される割り込みにより起動される。この割り込
みの優先順位は最も高くされており、このMIDI受信
割込み処理は、シーケンサプログラム21やソフトウエ
ア音源23の処理などの他の処理より優先して行われる
処理である。このMIDI受信割込み処理が開始される
と、ステップS51において受信されたMIDIイベン
トデータが取り込まれ、ステップS52においてその受
信データは受信された時点の時刻データと組にして前述
した入力バッファに書き込まれて、割込み発生時の処理
へリターンされる。これにより、受信したMIDIデー
タは、順次、受信時刻と共に入力バッファに書き込まれ
るようになる。
サプログラム21における処理のフローチャートを示
す。シーケンサプログラム21は起動されると、まず、
ステップS61において各種レジスタのクリアなどの初
期設定が行われ、次に、ステップS62において該プロ
グラムが起動中であることを示すアイコンなどの表示を
行うための画面準備処理が行われる。そして、ステップ
S63に進み、起動要因が発生したか否かのチェックが
行われ、ステップS64において起動要因が発生したと
判定されると、ステップS65に進む。ステップS65
において、発生した起動要因がなにであるのかが判定さ
れ、その起動要因に応じて、それぞれ、対応するステッ
プに分岐される。また、起動要因が発生していないとき
には、ステップS63に戻り、起動要因の発生待ちの状
態となる。
ては、(1)スタート・ストップ要求の発生、(2)テ
ンポタイマからの割り込みの発生、(3)出力先音源の
指定、テンポの変更、パートバランスの変更、曲のエデ
ィットあるいは自動演奏の録音処理などその他の要求の
発生、(4)プログラムの終了要求の発生などがある。
判定結果が(3)その他の要求の発生であるときには、
ステップS90において、前述したようなそれぞれの要
求に対応する処理が行われ、次いでステップS91にお
いて対応する表示が行われる。そして、前記ステップS
63に戻り待ち状態となる。
処理もこのステップS90において処理される処理のう
ちの一つである。例えば、前記ステップS62におい
て、ディスプレイ8の画面上に表示されている出力音源
を切り替えるスイッチを演奏者がマウスでクリックする
などしたときに、前記ステップS65において起動要因
として出力音源の指定が検出され、この出力先指定処理
が起動される。図8を参照してこの出力先指定処理につ
いて説明する。
態を示すフローチャートである。この形態においては、
シーケンサプログラム21から出力される全ての演奏情
報の出力先音源が一括して選択される。処理が開始され
ると、まず、ステップS900において、ユーザーによ
り指定された出力音源指定データがTGSレジスタに格
納される。この形態においては、画面上に表示されてい
る出力音源指定スイッチを演奏者がクリックする毎に、
図8の(b)に示す4つの選択状態、すなわち、(イ)
いずれの音源にも出力しない、(ロ)ソフトウエア音源
に出力する、(ハ)ハードウエア音源に出力する、
(ニ)ソフトウエア音源とハードウエア音源の両方に出
力する、がサイクリックに変更されるようになされてお
り、このクリックの回数のモジュロ4の値が出力音源指
定データとしてTGSレジスタに格納される。
レジスタの内容により指定された音源が、ソフトウエア
音源23であるかハードウエア音源12であるかが判定
される。そして、ステップS902において、選択され
た出力音源の規格を示すロゴを表示画面上に表示する。
図8の(c)にこの表示の一例を示す。このロゴ表示に
より演奏者は使用している音源の規格を知ることができ
る。
態のフローチャートを示す。この形態は、演奏パート別
に出力する音源を選択することができるものである。処
理が開始されると、まず、ステップS910において、
入力されるパート指定データを変数pとして取り込み、
次に、ステップS911において、指定された該パート
pの出力音源指定データをTGSpレジスタに格納す
る。そして、ステップS912において、各パートとそ
れに対応する出力音源の設定状態を表示する。このよう
に、出力音源指定データを格納するレジスタを各パート
対応に設けることにより、各パート毎に出力すべき音源
の選択を行うことが可能となる。
トをソフトウエア音源(GM)、ベースパートをソフト
ウエア音源(XG)、ギターパートをハードウエア音源
(XG)およびエレクトリックピアノパートをハードウ
エア音源(FM音源)というように指定することができ
る。なお、各パートと出力すべき音源との対応は、演奏
者が設定してもよいし、あるいは、各パートの音色デー
タなどがハードウエア音源に備えられている場合には該
ハードウエア音源を使用し、そうでないときにはソフト
ウエア音源を使用するようにしてもよい。
音源とのいずれを使用するかについて、前記サウンドカ
ード12あるいは外部音源6が当該汎用コンピュータに
装着されているか否かを自動的に判断して、装着されて
いる場合には自動的にハードウエア音源を選択し、装着
されていないときにはソフトウエア音源を選択するよう
にできる。これにより、ハードウエア音源の着脱により
設定を変更する必要がなくなる。
S65における判定の結果、起動要因が(1)スタート
・ストップ要求の発生であるときは、ステップ70にお
いてスタート・ストップ処理が行われ、ステップS71
においてスタート・ストップ状態の表示が行われた後、
前記ステップS63に戻り、起動要因の発生待ちの状態
となる。このステップS70スタート・ストップ処理に
ついて、図9の(a)を参照して説明する。このスター
ト・ストップ要求は、演奏者の操作により行われるもの
であり、例えば画面上の所定のフィールドをクリックす
ることにより、スタート・ストップ要求が入力されるよ
うになされている。このスタート・ストップ要求が入力
されると、ステップS700において、現在の状態が停
止状態であるのか否かがRUNフラグの状態により判定
される。RUNフラグは、演奏状態にあるときに「1」
にセットされるフラグであり、この判定結果がNOのと
きは現在演奏状態にあるので、ステップS701に進ん
でRUNフラグをリセットし、続いてステップS702
においてテンポタイマをストップさせ、ステップS70
3において自動演奏の後処理を行って、演奏を停止す
る。
0の判定結果がYESとなったときは、ステップS70
4に進んでRUNフラグをセットし、ステップS705
において自動演奏の準備を行う。この自動演奏の準備に
おいては、指定された曲のデータをハードディスク装置
9などからRAM3への転送、読み出しポインタへのス
タートアドレスの設定、最初のイベントの準備およびパ
ート別の音量の設定などの各種処理が行われる。続い
て、ステップS706においてテンポタイマの設定を行
い、ステップS707においてテンポタイマをスタート
させて、演奏を開始させる。
における起動要因の判定結果が(2)テンポタイマ割り
込み有りであるときは、ステップS80においてイベン
ト再生処理が行われ、その後ステップS81においてそ
のイベントの表示がなされる。そして、ステップS63
に戻り、起動要因の待ち状態となる。このステップS8
0のイベント再生処理について、図9の(b)を参照し
て説明する。テンポタイマ割り込みは演奏のテンポを決
定するために周期的に発生される割り込みであり、この
割り込みにより演奏の時刻が決定されるものである。こ
のテンポタイマ割り込みが発生すると、ステップS80
0において時刻のカウントが行われる。そして、このカ
ウント結果がイベントを再生すべきイベント時刻を越え
ているか否かがステップS801において判定され、越
えていないときはイベント再生処理S80を終了する。
Sのときは、ステップS802に進み、イベントの再
生、すなわちRAM3からのイベントの取り出しが行わ
れる。そして、ステップS803において、取り出した
イベント(再生イベント)の出力処理が行われる。この
再生イベント出力処理は、再生イベントを前記出力先指
定処理において設定されたTGSレジスタの内容に応じ
た仲介ルーチン、すなわち、ソフトウエア音源23に出
力する場合にはソフト音源MIDI出力API22、ハ
ードウエア音源12に出力する場合にはMIDI出力A
PI27に、出力する処理である。これにより、MID
Iイベントが指定された音源に出力される。次にステッ
プS804に進み、取り出した再生イベントのデュレー
ションデータとイベント時刻とを加算することにより次
のイベントの再生時刻を計算して、このイベント再生処
理ルーチンを終了する。なお、このステップS803の
処理は、前記図8の(a)に示した、演奏情報全体に対
してその出力音源を一括して指定する形態に対応するも
のである。
生イベント出力処理によりイベントが出力されたとき
に、前記MIDI受信割り込みが発生して、当該MID
Iイベントは入力バッファに格納される。そして、この
割り込み処理の終了後に上述したイベント再生処理ルー
チンに制御が復帰し、前記ステップS804の次イベン
ト時刻計算処理が実行されることとなる。
イベント出力処理ステップS803の変形例を示す。図
10の(a)は、前記図8の(b)に示した演奏パート
別に出力先音源を指定する形態に対応するものである。
まず、ステップS810において、再生イベントのパー
トが検出され変数pとして取り込まれる。そして、ステ
ップS811においてレジスタTGSpの内容を参照
し、該内容に対応する仲介ルーチン(API)に当該再
生イベントを出力する。これにより、各パート別に指定
された音源に演奏情報が出力される。
先的に演奏情報を出力し、発音すべきチャンネル数が該
ハードウエア音源の発音可能チャンネル数を超えたとき
に、その超えた分の演奏情報をソフトウエア音源により
発音させる形態である。この変形例においては、まず、
ステップS820において、前記ステップS802(図
9の(b))において取り出された再生イベントがノー
トオンイベントであるか否かが判定される。ノートオン
イベントではないときは、ステップS821に進み、該
イベントに対応するノートオンを前に受け取っている音
源にこのイベントを出力してこの処理を終了する。
であり、ステップS820の判定結果がYESのとき
は、ステップS822において、ハードウエア音源の現
在発音数を検出し、ステップS823において当該再生
イベントによりハードウエア音源の発音可能チャンネル
数を超えるか否かを判定する。この判定結果がNOのと
きは、ステップS824に進み、この再生イベントをハ
ードウエア音源に出力する。また、ステップS823の
判定結果がYESとなったときは、ステップS825に
進み、この再生イベントをソフトウエア音源23に出力
する。これにより、ハードウエア音源の発音可能チャン
ネル数(例えば、32ch)を超えた分をソフトウエア
音源により発音することが可能となる。
動要因が(4)終了要求であったときには、ステップS
100に進んで終了処理を行い、ステップS101にお
いて関連する表示部分を消去して、このシーケンサプロ
グラムの処理を終了する。
るハードウエア音源または外部に接続された外部音源6
に演奏情報が出力されたときには、周知の方法で該ハー
ドウエア音源において発音処理が実行される。ただし、
ソフトウエア音源とハードウエア音源との両方に演奏情
報を出力する場合には、前述したように、ソフトウエア
音源による楽音の発生に所定時間の遅延が発生するた
め、該遅延時間が大きいときには、ハードウエア音源に
対する演奏情報の出力を当該時間だけ遅らせるなどの処
理を行うことが必要である。
音再生と画像表示などその他の処理とが同期して行われ
るソフトウエアである場合にも、この遅延時間について
の考慮が必要となる場合がある。例えば、カラオケソフ
トの場合には、曲の演奏とともに歌詞の表示を行うのが
一般的である。伴奏曲の進行に応じて歌詞の色を徐々に
変更する処理(ワイプ処理)や表示する歌詞を入れ替え
る処理が行われる。ところで、このような歌詞の表示処
理は、伴奏音と同期している必要がある。従って、カラ
オケソフトで本発明のようにハードウエア音源とソフト
ウエア音源を選択できるようにした場合、どちらの音源
を選択したかに応じて、表示のタイミングを変更するこ
とが必要となる。すなわち、ソフトウエア音源が選択さ
れた場合には、ハードウエア音源を選択した場合と比較
して、遅いタイミングで表示処理を行うようにする。ま
た、歌詞表示の方でタイミングを取る代わりに、各音源
に供給する演奏情報のタイミングを調整するようにして
も良い。すなわち、ソフトウエア音源を選択した場合に
は、ハードウエア音源を選択した場合に比べて、早いタ
イミングで演奏情報を音源に出力するようにするのであ
る。なお、本発明は、MIDIインターフェースを介し
て外部のシーケンサなどから入力される演奏情報を音源
に渡す場合にも、全く同様に適用することができる。
を選択して演奏情報を出力することができ、ハードウェ
ア音源が装着されてない場合には自動的にソフトウェア
音源を選択するようにした本発明によれば、ハードウェ
ア音源の着脱を行ったときにハードウェア音源とソフト
ウェア音源のいずれを使用するかの設定を変更する必要
をなくすことができる。
る楽音発生装置の一例である。
ル構成である。
処理を説明するための図である。
る。
ある。
る。
処理のフローチャートである。
ある。
MIDIインターフェース、6 外部音源、7 キー
ボード、8 ディスプレイ、9 ハードディスク装置、
10 DMA回路、11 D/A変換器(DAC)、1
2 サウンドカード、13 ミキサー、14 サウンド
システム、15 バス、16 Codec、21 シー
ケンサプログラム、22、24、27 API、23
ソフトウエア音源、25 プログラム群、26 Cod
ecドライバ、28 サウンドカードドライバ
Claims (1)
- 【請求項1】 演算装置において実行される楽音発生方
法であって、 演奏情報を順次供給するステップと、 ハードウエア音源とソフトウエア音源の少なくとも一方
を指定するステップと、 前記供給される演奏情報を、前記指定に従って、前記ハ
ードウエア音源および/または前記ソフトウエア音源に
入力させる入力ステップとを有し、 前記入力ステップは、前記演算装置に前記ハードウェア
音源が接続されていない場合は、前記演奏情報を前記ソ
フトウェア音源に入力するものであることを特徴とする
楽音発生方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001393560A JP3705203B2 (ja) | 2001-12-26 | 2001-12-26 | 楽音発生方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001393560A JP3705203B2 (ja) | 2001-12-26 | 2001-12-26 | 楽音発生方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29727295A Division JP3293434B2 (ja) | 1995-10-23 | 1995-10-23 | 楽音発生方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005119672A Division JP4096952B2 (ja) | 2005-04-18 | 2005-04-18 | 楽音発生装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002196763A true JP2002196763A (ja) | 2002-07-12 |
JP3705203B2 JP3705203B2 (ja) | 2005-10-12 |
Family
ID=19188781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001393560A Expired - Fee Related JP3705203B2 (ja) | 2001-12-26 | 2001-12-26 | 楽音発生方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3705203B2 (ja) |
-
2001
- 2001-12-26 JP JP2001393560A patent/JP3705203B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP3705203B2 (ja) | 2005-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3293434B2 (ja) | 楽音発生方法 | |
JP3226011B2 (ja) | 歌詞表示装置 | |
JPH11126070A (ja) | 楽音生成方法 | |
JP2924745B2 (ja) | 楽音発生装置及び方法 | |
JPH09325778A (ja) | 楽音発生方法 | |
JP4096952B2 (ja) | 楽音発生装置 | |
JPH07121181A (ja) | 音声情報処理装置 | |
JP3705203B2 (ja) | 楽音発生方法 | |
JPH11288285A (ja) | 楽音発生方法及び装置 | |
JP3019755B2 (ja) | 楽音発生方法および楽音発生装置 | |
JP3572847B2 (ja) | コンピュータソフトウェアを用いた音源システム及び方法 | |
JP3928725B2 (ja) | 楽音信号発生装置及びレガート処理プログラム | |
JPH11126069A (ja) | 楽音生成方法 | |
JP2003015637A (ja) | 楽譜表示装置 | |
JP2001184060A (ja) | パート選択装置 | |
JP3164096B2 (ja) | 楽音発生方法及び装置 | |
JP6606839B2 (ja) | 波形書き込み装置、方法、プログラム、および電子楽器 | |
JP2972364B2 (ja) | 音楽的情報処理装置及び音楽的情報処理方法 | |
JP3837994B2 (ja) | 楽譜データ変換装置、及び記録媒体 | |
JP4082184B2 (ja) | 楽音発生装置および楽音発生処理のプログラム | |
JPH0460698A (ja) | 楽音波形発生装置 | |
JP2000250533A (ja) | ハーモニータイプ表示装置 | |
JPH09106284A (ja) | 和音発生指示装置 | |
WO2001065535A1 (fr) | Generateur de sons musicaux | |
JP2006091460A (ja) | 音源用波形データの決定装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041021 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041102 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050215 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050418 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050705 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050718 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090805 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100805 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100805 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110805 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120805 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130805 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |