JP2005215709A - 楽音発生装置 - Google Patents

楽音発生装置 Download PDF

Info

Publication number
JP2005215709A
JP2005215709A JP2005119672A JP2005119672A JP2005215709A JP 2005215709 A JP2005215709 A JP 2005215709A JP 2005119672 A JP2005119672 A JP 2005119672A JP 2005119672 A JP2005119672 A JP 2005119672A JP 2005215709 A JP2005215709 A JP 2005215709A
Authority
JP
Japan
Prior art keywords
sound source
output
midi
event
sound
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
Application number
JP2005119672A
Other languages
English (en)
Other versions
JP4096952B2 (ja
Inventor
Genichi Tamura
元一 田邑
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.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2005119672A priority Critical patent/JP4096952B2/ja
Publication of JP2005215709A publication Critical patent/JP2005215709A/ja
Application granted granted Critical
Publication of JP4096952B2 publication Critical patent/JP4096952B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】 ソフトウエア音源を備えていてもハードウエア音源を使用できるようにする。
【解決手段】 シーケンサプログラムから演奏情報を送出するときに、ハードウエア音源12に出力するときはAPI27に出力し、ソフトウエア音源23に出力するときはAPI22に送出する。これにより、いずれの音源からでも発音させることが可能となる。この選択は、各演奏パート毎に行うことができ、また、両音源から同時に発音させることもできる。ハードウェア音源が装着されていないときは、ソフトウェア音源を選択する。
【選択図】 図2

Description

本発明は、演算処理装置を備えた楽音発生装置に関する。
従来より、楽音発生装置においては、周波数変調方式、波形メモリ方式などの専用の音源回路(ハードウエア音源)およびマイクロプロセッサ(CPU)を用意し、MIDI(Musical Instrument Digital Interface)、鍵盤、あるいはシーケンサ等からの演奏情報に応じて、前記CPUにより前記ハードウエア音源を制御して楽音を発生することが一般的に行われていた。このため、楽音発生装置は楽音を生成するための専用機器となってしまい、楽音を生成する時には専用の楽音発生装置を用意する必要があった。
これを解決するために、最近では、前記ハードウエア音源の動作をコンピュータプログラムによる音源処理(ソフトウエア音源)に置き換え、CPUにより演奏処理と音源処理とを実行させるようにした楽音発生方法が提案されている(特願平7−144159号)。ここで、演奏処理とは、入力されたMIDIなどの演奏情報に基づき、生成される楽音を制御するための制御情報を作成する処理であり、音源処理とは、該演奏処理において作成された制御情報に基づき楽音の波形データを生成する処理である。
具体的な例としては、CPUは、通常、押鍵検出等の演奏処理を実行しており、該演奏処理に対して各サンプリング周期(デジタル/アナログ変換器の変換タイミング)毎に音源処理を割り込み実行させ、複数チャンネルの楽音の1サンプル分の波形データを演算生成した後、再び演奏処理に復帰するという方式も提案されている。
このような楽音発生方法においては、専用の楽音発生装置を用いることなく、CPUとソフトウエアのほかにはDA変換用のチップを備えるだけで、楽音を発生させることが可能となる。
上記した従来のソフトウエア音源を備えた楽音発生方法においては、そのソフトウエア音源を専用で使用するようになされており、発生した演奏情報は該ソフトウエア音源に固定的に供給されるようになされていた。
ところで、上記したようにソフトウエア音源はパーソナルコンピュータなどの汎用コンピュータにおいても実行可能なものである。一般に、パーソナルコンピュータなどにおいては、拡張ボードによるハードウエア音源が備えられていることがあるが、ソフトウエア音源を備えた楽音発生方法を拡張ボードによるハードウエア音源を備える汎用コンピュータで実行した場合、拡張ボードによるハードウエア音源を使用することができないという問題点があった。
そこで、本発明は、ソフトウエア音源を備えていても、ハードウエア音源を使用することのできる楽音発生装置を提供することを目的としている。
上記目的を達成するために、本発明の楽音発生装置は、演算処理装置と、MIDI情報を受け取って対応する楽音を生成するハードウエア音源と、D/A変換器を有するコーデック回路とを備えた楽音発生装置であって、アプリケーションプログラムからMIDI情報を受け取って波形データを生成し、コーデックドライバに出力するソフトウェア音源と、前記波形データを受け取って前記コーデック回路に出力するコーデックドライバと、前記MIDI情報を受け取って前記ハードウエア音源に出力するサウンドカードドライバとを備えたものである。
本発明の楽音発生装置によれば、ソフトウエア音源とハードウエア音源とを選択して演奏情報を出力することができ、ソフトウェア音源を備えていても、ハードウェア音源を使用することが可能となる。
本発明の楽音発生装置の一実施の形態の構成を図1に示す。
この図において、1はアプリケーションプログラム等を実行して楽音波形サンプルの生成等の各種制御を行うマイクロプロセッサ(CPU)、2はプリセット音色データ等が記憶されているリードオンリメモリ(ROM)、3はCPU1のワークメモリエリアや音色データエリア、入力バッファエリア、チャンネルレジスタエリア、出力バッファエリア等の記憶エリアを有するランダムアクセスメモリ(RAM)、4は時刻を指示すると共に、タイマ割り込み処理のタイミングをCPU1に指示するタイマ、5はMIDIイベントが入力されると共に、生成されたMIDIイベントを出力するMIDIインターフェースであり、該MIDIインターフェースには点線で示すように外部音源6を接続することもできる。
7は英字、かな、数字、記号などのキーを備えるいわゆるパソコン用のキーボード、8はユーザが楽音発生装置と対話するためのディスプレイ(モニタ)、9は各種アプリケーションプログラムがインストールされていると共に、楽音波形サンプルを生成するために使用する楽音波形データ等が記憶されているハードディスク装置(HDD)、10は前記RAM3内のCPU1により指定されたエリアに記憶されている楽音波形サンプルのデータをCPU1を介することなく直接に受渡を行い、一定のサンプリング周期(例えば、48kHz)毎にデジタル・アナログ変換器(DAC)11に供給するDMA(Direct Memory Access)回路、11は楽音波形サンプルのデータを受け取りアナログ信号に変換するデジタル・アナログ変換器(DAC)、12は拡張ボードの一種であり、前述したハードウエア音源が搭載されているサウンドカードである。13は前記DAC11から出力される楽音信号と前記サウンドカード12から出力される楽音信号とを混合するミキサー回路、14はミキサー回路13から出力されたアナログ信号に変換された楽音信号を放音するサウンドシステムである。
以上の構成はパソコン、ワークステーション等の汎用コンピュータと同等である。
図2にこの楽音発生装置のソフトウエアモジュール構成の一例を示す。なお、この図においては、説明を簡略にするため、楽音発生に関係する部分のみが示してある。
この図に示すように、最上位層にはアプリケーションソフトウエアが位置しており、21はMIDIシーケンサ、ゲームソフトあるいはカラオケソフトなどのMIDIの再生を要求するプログラム(以下、単に「シーケンサプログラム」という)である。次の階層はシステムソフトウエア群であり、ここにソフトウエア音源23が位置しており、該ソフトウエア音源23は(ソフト)音源MIDIドライバおよび音源部が含まれている。25は波形(WAVE)入出力ドライバなどのいわゆるマルチメディア機能を実現するためのプログラム群、26は後述するコーデック回路16のためのコーデックドライバ、28は前記サウンドカード12のためのサウンドカードドライバである。なお、このコーデック回路16には波形サンプルデータを入出力するためのA/D変換器およびD/A変換器が含まれており、このD/A変換器は図1におけるDAC11である。
また、22はアプリケーションプログラムと前記ソフトウエア音源23とのインターフェースをとるためのソフト音源MIDI出力API(application programming interface)、24はアプリケーションプログラムと前記プログラム群25内に含まれている波形(WAVE)入出力ドライバとのインターフェースをとるための波形出力API、27は前記シーケンサプログラム21などのアプリケーションソフトウエアとサウンドカードドライバ28および外部音源6とのインターフェースをとるためのMIDI出力APIである。各プログラムはこれらAPIを使用してシステムプログラムの提供する各種サービスを利用することができる。
なお、図示していないが、上記システムソフトウエアの階層には、当然、通常の汎用OSに含まれているデバイスドライバ群およびメモリ管理、ファイルシステム、ユーザインターフェースなどのプログラム群が含まれている。
このような構成において、シーケンサプログラム21から演奏情報としてMIDIイベントが出力される。本発明においては、この演奏情報の出力先は、図示するように、前記ソフト音源MIDI出力API22およびMIDI出力API27のいずれか一方あるいは両方を選択することができるようになされている。これは、当該MIDIイベントを受け取るべきAPIを指定してシーケンサプログラム21からMIDIイベントを送出することにより実現される。ただし、ハードウエア音源が装着されていないときには、ハードウエア音源を選択することはできないようになされている。
シーケンサプログラム21からの演奏情報の出力先としてソフトウエア音源23が選択され、ソフト音源MIDI出力API22にMIDIイベントが出力されたとき、ソフトウエア音源23は、受け取ったMIDIメッセージを波形(WAVE)出力データに変換し、波形出力API24を呼ぶ。これにより発生された楽音に対応する波形データはコーデックドライバ26を介してコーデック回路16に出力され、前述したようにDAC11によりアナログ信号に変換されてサウンドシステム14より発音されることとなる。
一方、シーケンサプログラム21からの演奏情報の出力先としてサウンドカード12に搭載されているハードウエア音源が選択され、MIDI出力API27にMIDIイベントが出力されたときは、該MIDIイベントはサウンドカードドライバ28を介してサウンドカード12内のハードウエア音源に出力され、該ハードウエア音源に固有の楽音発生方式に基づいて対応する楽音が生成されることとなる。
また、外部に接続されている外部音源6が演奏情報の出力先として選択されたときもMIDI出力API27にMIDIイベントが出力され、プログラム群25内の外部MIDIドライバおよびMIDIインタフェース5を介して外部音源6に出力される。これにより、外部音源6から対応する楽音が発生される。
図3はソフトウエア音源23を用いて行われる楽音発生処理を説明するための図である。この図において、演奏入力と記されているのは、前述したシーケンサプログラム21から出力されるMIDIイベントであり、例えば、時刻ta、tb、tc、tdのように楽譜通りのタイミングで送出される。このMIDIイベントが受信されると最も優先順位の高い割り込みが発生し、該MIDI受信割り込み処理においてそのMIDIイベントは受信時刻データとともに入力バッファに格納される。これによりソフトウエア音源23においてMIDI処理が行われ、各MIDIイベントに対応する発音制御信号が対応する発音チャンネルの音源レジスタに書き込まれる。
図の中段に示されているのは、ソフトウエア音源23の音源処理部により実行される波形生成演算のタイミングであり、演算時刻t0、t1,t2、t3と示すように一定周期で起動される。この周期をフレーム周期と呼び、これは一つの出力バッファに格納可能な波形サンプル数に応じた周期である。各フレーム周期において、その前のフレーム周期に受信されたMIDIイベントに応じて前記MIDI処理により各発音チャンネルの音源レジスタに格納されている発音制御信号を用いて、各発音チャンネルの波形生成演算が実行される。このようにして生成された波形データは出力バッファに足し込まれ、図3の下段に示すように、その次のフレーム周期にDMA回路10により各サンプリング周期毎に順次読み出され、DAC11により再生される。これにより、途切れることなく発音が行われる。
(ソフトウエア音源処理)
図4はソフトウエア音源23により実行される処理のフローチャートを示す図である。ソフトウエア音源23は起動されると、まず、ステップS10において、各種レジスタのクリアなどの初期設定が行われる。続いてステップS11において、ユーザーに対してこのソフトウエア音源が起動されていることを表示するためのアイコンの表示などの画面の準備処理が行われる。次に、ステップS12に進み、ここで起動要因が存在するか否かのチェックが行われる。起動要因としては、(1)入力バッファに未処理イベントがあること(これはMIDIイベントを受信したときに発生する。)、(2)(演算時刻となって)波形演算要求が発生していること、(3)キーボードやパネルからの音源の動作の制御コマンド入力などのMIDIの処理以外の処理要求が発生していること、(4)終了要求が発生していること、の4通りの要因が存在している。
ステップS13において起動要因があるか否かが判定され、NOのときは再びステップS12に戻り、起動要因の発生を待つ。ステップS13の判定結果がYESとなり、起動要因が発生していることが検出されたときにはステップS14に進み、該起動要因が前記(1)〜(4)のうちのいずれであるのかが判定される。
(MIDI処理)
この判定により、(1)入力バッファに未処理イベントがあるときには、ステップS15に進み、MIDI処理が行われる。このMIDI処理においては、入力バッファに書き込まれているMIDIイベントを、それに対応する音源(発音チャンネル)に渡すべき制御パラメータに変換する処理が行われる。このステップS15のMIDI処理が終了した後、ステップS16の受信表示処理がおこなわれ、MIDIを受信したことなどが画面に表示される。そして、その後ステップS12に戻り、起動要因の発生を待つ。
上記ステップS15のMIDI処理の一例を図5の(a)と(b)に示す。図5の(a)は入力バッファに格納されているMIDIイベントがノートオンイベントであるときに実行されるMIDI処理のフローチャートである。未処理イベントがノートオンイベントであるときには、まず、ステップS31において、当該ノートナンバーがNNとして、ベロシティがVELとして、パート別の音色データがtとして、それぞれレジスタに取り込まれ、さらに、そのノートオンイベントの発生時刻がTMレジスタに取り込まれる。次いで、ステップS32においてレジスタに取り込まれたノートナンバNNの発音割当処理が行われ、割り当てられたチャンネル(ch)の番号がiとしてレジスタに取り込まれる。
続いてステップS33において、tに対応する音色データTP(t)がノートナンバNNおよびベロシティVELに応じて加工される。そして、ステップS34において、該加工された音色データ、ノートオンおよび発生時刻データTMをiチャンネルの音源レジスタに書き込み、ノートオンイベント処理を終了する。
図5の(b)は未処理イベントがノートオフイベントであるときの処理のフローチャートである。
ノートオフ処理が開始されると、ステップS41において、入力バッファ中のそのノートオフイベントのノートナンバがNNとして、また、パート別音色データがtとして、それぞれレジスタに取り込まれ、さらに、該ノートオフイベントの発生時刻がTMとしてレジスタに取り込まれる。次いで、ステップS42において、ノートナンバNNで発音されている発音チャンネル(ch)がサーチされ、見つかった発音chの番号がiとしてレジスタに取り込まれる。次に、ステップS43においてichの音源レジスタにノートオフと発生時刻TMとを書き込んで、ノートオフイベント処理を終了する。
(音源処理)
前記ステップS14において、起動要因が(2)波形演算要求発生であるときは、ステップS17の音源処理が実行される。この処理は波形生成演算を行う処理であり、前記ステップS15のMIDI処理において各チャンネル(ch)に対応する音源レジスタに格納された楽音制御データに基づき波形生成演算が行われる。このステップS17の音源処理が終了した後に、ステップS18において例えば音源処理に要したCPUの負荷量などが表示される。その後、ステップS12に戻り、待ち状態となる。
ステップS17の音源処理においては、まず、演算順序の1番目の発音チャンネル(ch)について、LFO、フィルタG、音量EGの波形演算を行い、所定の時間範囲の演算に必要なLFO波形、FEG波形、AEG波形のサンプルを生成する。LFO波形はFナンバ、FEG波形、AEG波形に加算され、各データを変調する。また、消音すべきチャンネルとして指定された発音チャンネルに関しては、音量EGとして前記範囲内で急速に減衰するダンプ用のAEG波形が演算生成される。
次いで、前回の読み出しアドレスを初期値としてFナンバを繰り返し加算し前記時間範囲内の各サンプルの読み出しアドレスを発生し、この読み出しアドレスの整数部に基づいて音色データ内の波形記憶領域より波形サンプルを読み出すと共に、この読み出しアドレスの小数部に基づいて読み出された波形サンプル間の補間を行い、前記時間範囲内の全補間サンプルを算出するようにする。
さらに、前記時間範囲内の補間サンプルに対し音色フィルタ処理が行われ、前記FEG波形に基づいて音色制御が行われ、フィルタ処理済の前記時間範囲内のサンプルに対し振幅制御処理が行われ、前記AEGおよび音量データに基づいて楽音波形サンプルの振幅制御が行われると共に、振幅制御処理された前記時間範囲分の楽音波形サンプルがそれぞれ出力バッファの対応するサンプルに足し込まれる累算書込処理が実行される。
このようにして、全発音チャンネルの演算が終了するまで各発音チャンネルの波形サンプル生成処理が行われ、生成された前記所定時間範囲分のサンプルは、出力バッファの対応するサンプルに順次足し込まれる。
なお、これらステップS15のMIDI処理およびステップS17の音源処理については、前記特願平7ー144159号に詳細に記載されているので、必要な場合には当該公報を参照されたい。
(その他の処理)
また前記ステップS14において、(3)その他の処理要求であると判定されたときは、ステップS19に進み、対応する処理、例えば、この処理要求が音色の設定/変更処理であるときには、設定された音色番号を設定する処理など行い、ステップS20に進んで該設定された音色番号の表示などを行った後、ステップS12に戻り待ち状態となる。
さらに、前記ステップS14において、(4)終了要求であると判定されたときは、ステップS21において終了処理を行い、ステップS22において関連する画面情報を消去して、このソフトウエア音源処理を終了する。
(MIDI受信割込み処理)
次に、CPU1により実行されるMIDI受信割込み処理のフローチャートを図6に示す。この処理は、ソフト音源MIDI出力API22が呼ばれて、シーケンサプログラム21などからの演奏情報(MIDIイベント)が受信された際に発生される割り込みにより起動される。この割り込みの優先順位は最も高くされており、このMIDI受信割込み処理は、シーケンサプログラム21やソフトウエア音源23の処理などの他の処理より優先して行われる処理である。このMIDI受信割込み処理が開始されると、ステップS51において受信されたMIDIイベントデータが取り込まれ、ステップS52においてその受信データは受信された時点の時刻データと組にして前述した入力バッファに書き込まれて、割込み発生時の処理へリターンされる。これにより、受信したMIDIデータは、順次、受信時刻と共に入力バッファに書き込まれるようになる。
(シーケンサプログラム)
図7にシーケンサプログラム21における処理のフローチャートを示す。シーケンサプログラム21は起動されると、まず、ステップS61において各種レジスタのクリアなどの初期設定が行われ、次に、ステップS62において該プログラムが起動中であることを示すアイコンなどの表示を行うための画面準備処理が行われる。そして、ステップS63に進み、起動要因が発生したか否かのチェックが行われ、ステップS64において起動要因が発生したと判定されると、ステップS65に進む。ステップS65において、発生した起動要因がなにであるのかが判定され、その起動要因に応じて、それぞれ、対応するステップに分岐される。また、起動要因が発生していないときには、ステップS63に戻り、起動要因の発生待ちの状態となる。
このシーケンサプログラムの起動要因としては、(1)スタート・ストップ要求の発生、(2)テンポタイマからの割り込みの発生、(3)出力先音源の指定、テンポの変更、パートバランスの変更、曲のエディットあるいは自動演奏の録音処理などその他の要求の発生、(4)プログラムの終了要求の発生などがある。
まず、前記ステップS65における要因の判定結果が(3)その他の要求の発生であるときには、ステップS90において、前述したようなそれぞれの要求に対応する処理が行われ、次いでステップS91において対応する表示が行われる。そして、前記ステップS63に戻り待ち状態となる。
(出力先指定処理)
演奏情報の出力先指定処理もこのステップS90において処理される処理のうちの一つである。例えば、前記ステップS62において、ディスプレイ8の画面上に表示されている出力音源を切り替えるスイッチを演奏者がマウスでクリックするなどしたときに、前記ステップS65において起動要因として出力音源の指定が検出され、この出力先指定処理が起動される。図8を参照してこの出力先指定処理について説明する。
図8の(a)は出力先指定処理の第1の形態を示すフローチャートである。この形態においては、シーケンサプログラム21から出力される全ての演奏情報の出力先音源が一括して選択される。
処理が開始されると、まず、ステップS900において、ユーザーにより指定された出力音源指定データがTGSレジスタに格納される。この形態においては、画面上に表示されている出力音源指定スイッチを演奏者がクリックする毎に、図8の(b)に示す4つの選択状態、すなわち、(イ)いずれの音源にも出力しない、(ロ)ソフトウエア音源に出力する、(ハ)ハードウエア音源に出力する、(ニ)ソフトウエア音源とハードウエア音源の両方に出力する、がサイクリックに変更されるようになされており、このクリックの回数のモジュロ4の値が出力音源指定データとしてTGSレジスタに格納される。
次に、ステップS901において、TGSレジスタの内容により指定された音源が、ソフトウエア音源23であるかハードウエア音源12であるかが判定される。そして、ステップS902において、選択された出力音源の規格を示すロゴを表示画面上に表示する。図8の(c)にこの表示の一例を示す。このロゴ表示により演奏者は使用している音源の規格を知ることができる。
図8の(d)に出力先指定処理の第2の形態のフローチャートを示す。この形態は、演奏パート別に出力する音源を選択することができるものである。
処理が開始されると、まず、ステップ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においてテンポタイマをストップさせ、ステップS703において自動演奏の後処理を行って、演奏を停止する。
一方、現在停止状態にありステップS700の判定結果がYESとなったときは、ステップS704に進んでRUNフラグをセットし、ステップS705において自動演奏の準備を行う。この自動演奏の準備においては、指定された曲のデータをハードディスク装置9などからRAM3への転送、読み出しポインタへのスタートアドレスの設定、最初のイベントの準備およびパート別の音量の設定などの各種処理が行われる。続いて、ステップS706においてテンポタイマの設定を行い、ステップS707においてテンポタイマをスタートさせて、演奏を開始させる。
(イベント再生処理)
前記ステップS65における起動要因の判定結果が(2)テンポタイマ割り込み有りであるときは、ステップS80においてイベント再生処理が行われ、その後ステップS81においてそのイベントの表示がなされる。そして、ステップS63に戻り、起動要因の待ち状態となる。
このステップS80のイベント再生処理について、図9の(b)を参照して説明する。テンポタイマ割り込みは演奏のテンポを決定するために周期的に発生される割り込みであり、この割り込みにより演奏の時刻が決定されるものである。このテンポタイマ割り込みが発生すると、ステップS800において時刻のカウントが行われる。そして、このカウント結果がイベントを再生すべきイベント時刻を越えているか否かがステップS801において判定され、越えていないときはイベント再生処理S80を終了する。
一方、ステップS801の判定結果がYESのときは、ステップS802に進み、イベントの再生、すなわちRAM3からのイベントの取り出しが行われる。そして、ステップS803において、取り出したイベント(再生イベント)の出力処理が行われる。この再生イベント出力処理は、再生イベントを前記出力先指定処理において設定されたTGSレジスタの内容に応じた仲介ルーチン、すなわち、ソフトウエア音源23に出力する場合にはソフト音源MIDI出力API22、ハードウエア音源12に出力する場合にはMIDI出力API27に、出力する処理である。これにより、MIDIイベントが指定された音源に出力される。次にステップS804に進み、取り出した再生イベントのデュレーションデータとイベント時刻とを加算することにより次のイベントの再生時刻を計算して、このイベント再生処理ルーチンを終了する。なお、このステップS803の処理は、前記図8の(a)に示した、演奏情報全体に対してその出力音源を一括して指定する形態に対応するものである。
なお、前述したように、このS803の再生イベント出力処理によりイベントが出力されたときに、前記MIDI受信割り込みが発生して、当該MIDIイベントは入力バッファに格納される。そして、この割り込み処理の終了後に上述したイベント再生処理ルーチンに制御が復帰し、前記ステップS804の次イベント時刻計算処理が実行されることとなる。
図10の(a)および(b)に、前記再生イベント出力処理ステップS803の変形例を示す。図10の(a)は、前記図8の(b)に示した演奏パート別に出力先音源を指定する形態に対応するものである。まず、ステップS810において、再生イベントのパートが検出され変数pとして取り込まれる。そして、ステップS811においてレジスタTGSpの内容を参照し、該内容に対応する仲介ルーチン(API)に当該再生イベントを出力する。これにより、各パート別に指定された音源に演奏情報が出力される。
図10の(b)は、ハードウエア音源に優先的に演奏情報を出力し、発音すべきチャンネル数が該ハードウエア音源の発音可能チャンネル数を超えたときに、その超えた分の演奏情報をソフトウエア音源により発音させる形態である。この変形例においては、まず、ステップS820において、前記ステップS802(図9の(b))において取り出された再生イベントがノートオンイベントであるか否かが判定される。ノートオンイベントではないときは、ステップS821に進み、該イベントに対応するノートオンを前に受け取っている音源にこのイベントを出力してこの処理を終了する。
一方、再生イベントがノートオンイベントであり、ステップS820の判定結果がYESのときは、ステップS822において、ハードウエア音源の現在発音数を検出し、ステップS823において当該再生イベントによりハードウエア音源の発音可能チャンネル数を超えるか否かを判定する。この判定結果がNOのときは、ステップS824に進み、この再生イベントをハードウエア音源に出力する。また、ステップS823の判定結果がYESとなったときは、ステップS825に進み、この再生イベントをソフトウエア音源23に出力する。これにより、ハードウエア音源の発音可能チャンネル数(例えば、32ch)を超えた分をソフトウエア音源により発音することが可能となる。
また、前記ステップS65の判定結果、起動要因が(4)終了要求であったときには、ステップS100に進んで終了処理を行い、ステップS101において関連する表示部分を消去して、このシーケンサプログラムの処理を終了する。
また、サウンドカード12に搭載されているハードウエア音源または外部に接続された外部音源6に演奏情報が出力されたときには、周知の方法で該ハードウエア音源において発音処理が実行される。
ただし、ソフトウエア音源とハードウエア音源との両方に演奏情報を出力する場合には、前述したように、ソフトウエア音源による楽音の発生に所定時間の遅延が発生するため、該遅延時間が大きいときには、ハードウエア音源に対する演奏情報の出力を当該時間だけ遅らせるなどの処理を行うことが必要である。
また、前記シーケンサプログラム21が楽音再生と画像表示などその他の処理とが同期して行われるソフトウエアである場合にも、この遅延時間についての考慮が必要となる場合がある。
例えば、カラオケソフトの場合には、曲の演奏とともに歌詞の表示を行うのが一般的である。伴奏曲の進行に応じて歌詞の色を徐々に変更する処理(ワイプ処理)や表示する歌詞を入れ替える処理が行われる。ところで、このような歌詞の表示処理は、伴奏音と同期している必要がある。従って、カラオケソフトで本発明のようにハードウエア音源とソフトウエア音源を選択できるようにした場合、どちらの音源を選択したかに応じて、表示のタイミングを変更することが必要となる。すなわち、ソフトウエア音源が選択された場合には、ハードウエア音源を選択した場合と比較して、遅いタイミングで表示処理を行うようにする。また、歌詞表示の方でタイミングを取る代わりに、各音源に供給する演奏情報のタイミングを調整するようにしても良い。すなわち、ソフトウエア音源を選択した場合には、ハードウエア音源を選択した場合に比べて、早いタイミングで演奏情報を音源に出力するようにするのである。
なお、本発明は、MIDIインターフェースを介して外部のシーケンサなどから入力される演奏情報を音源に渡す場合にも、全く同様に適用することができる。
本発明の楽音発生装置の一実施の形態の構成を示す図である。 図1の楽音発生装置のソフトウエアモジュール構成である。 ソフトウエア音源を用いて行われる楽音発生処理を説明するための図である。 ソフトウエア音源処理のフローチャートである。 MIDI処理のフローチャートである。 MIDI受信割込み処理のフローチャートである。 シーケンサの処理のフローチャートである。 出力先指定ルーチンを説明するための図である。 スタート・ストップ処理およびイベント再生処理のフローチャートである。 再生イベント出力処理のフローチャートである。
符号の説明
1 CPU、2 ROM、3 RAM、4 タイマ、5 MIDIインターフェース、6 外部音源、7 キーボード、8 ディスプレイ、9 ハードディスク装置、10 DMA回路、11 D/A変換器(DAC)、12 サウンドカード、13 ミキサー、14 サウンドシステム、15 バス、16 Codec、21 シーケンサプログラム、22、24、27 API、23 ソフトウエア音源、25 プログラム群、26 Codecドライバ、28 サウンドカードドライバ

Claims (1)

  1. 演算処理装置と、MIDI情報を受け取って対応する楽音を生成するハードウエア音源と、D/A変換器を有するコーデック回路とを備えた楽音発生装置であって、
    アプリケーションプログラムからMIDI情報を受け取って波形データを生成し、コーデックドライバに出力するソフトウェア音源と、
    前記波形データを受け取って前記コーデック回路に出力するコーデックドライバと、
    前記MIDI情報を受け取って前記ハードウエア音源に出力するサウンドカードドライバと
    を備えたことを特徴とする楽音発生装置。
JP2005119672A 2005-04-18 2005-04-18 楽音発生装置 Expired - Lifetime JP4096952B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005119672A JP4096952B2 (ja) 2005-04-18 2005-04-18 楽音発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005119672A JP4096952B2 (ja) 2005-04-18 2005-04-18 楽音発生装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001393560A Division JP3705203B2 (ja) 2001-12-26 2001-12-26 楽音発生方法

Publications (2)

Publication Number Publication Date
JP2005215709A true JP2005215709A (ja) 2005-08-11
JP4096952B2 JP4096952B2 (ja) 2008-06-04

Family

ID=34909865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005119672A Expired - Lifetime JP4096952B2 (ja) 2005-04-18 2005-04-18 楽音発生装置

Country Status (1)

Country Link
JP (1) JP4096952B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007178890A (ja) * 2005-12-28 2007-07-12 Yamaha Corp 自動演奏装置
JP2009025498A (ja) * 2007-07-18 2009-02-05 Yamaha Corp 波形生成装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007178890A (ja) * 2005-12-28 2007-07-12 Yamaha Corp 自動演奏装置
JP2009025498A (ja) * 2007-07-18 2009-02-05 Yamaha Corp 波形生成装置
JP4544278B2 (ja) * 2007-07-18 2010-09-15 ヤマハ株式会社 波形生成システム

Also Published As

Publication number Publication date
JP4096952B2 (ja) 2008-06-04

Similar Documents

Publication Publication Date Title
JP3293434B2 (ja) 楽音発生方法
JP2005010461A (ja) アルペジオパターン設定装置およびプログラム
WO2018135403A1 (ja) 共鳴信号生成方法、共鳴信号生成装置、電子音楽装置、プログラム及び記録媒体
JP3226011B2 (ja) 歌詞表示装置
US9396715B2 (en) Technique for generating audio data for loop reproduction on the basis of performance data
JP2924745B2 (ja) 楽音発生装置及び方法
JPH09325778A (ja) 楽音発生方法
JP2019168517A (ja) 電子楽器、方法及びプログラム
JP4096952B2 (ja) 楽音発生装置
JP3705203B2 (ja) 楽音発生方法
US10805475B2 (en) Resonance sound signal generation device, resonance sound signal generation method, non-transitory computer readable medium storing resonance sound signal generation program and electronic musical apparatus
JP7332002B2 (ja) 電子楽器、方法及びプログラム
JP2003015637A (ja) 楽譜表示装置
JP7124370B2 (ja) 電子楽器、方法及びプログラム
JP4238807B2 (ja) 音源用波形データの決定装置
JP2005283774A (ja) 楽音合成装置
JP6606839B2 (ja) 波形書き込み装置、方法、プログラム、および電子楽器
JP4082184B2 (ja) 楽音発生装置および楽音発生処理のプログラム
JP2972364B2 (ja) 音楽的情報処理装置及び音楽的情報処理方法
JP3837994B2 (ja) 楽譜データ変換装置、及び記録媒体
WO2001065535A1 (fr) Generateur de sons musicaux
JP3627557B2 (ja) 楽音発生装置及び方法
JP2009282163A (ja) 共鳴音発生装置
JP2002006865A (ja) 歌詞表示装置
JPH11143463A (ja) 自動演奏装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070123

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071122

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: 20080219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080303

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120321

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140321

Year of fee payment: 6

EXPY Cancellation because of completion of term