JP4011592B2 - 楽音形成装置 - Google Patents

楽音形成装置 Download PDF

Info

Publication number
JP4011592B2
JP4011592B2 JP2005217090A JP2005217090A JP4011592B2 JP 4011592 B2 JP4011592 B2 JP 4011592B2 JP 2005217090 A JP2005217090 A JP 2005217090A JP 2005217090 A JP2005217090 A JP 2005217090A JP 4011592 B2 JP4011592 B2 JP 4011592B2
Authority
JP
Japan
Prior art keywords
waveform data
sound generation
task
storage means
data
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
JP2005217090A
Other languages
English (en)
Other versions
JP2005346110A (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.)
Roland Corp
Original Assignee
Roland 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 Roland Corp filed Critical Roland Corp
Priority to JP2005217090A priority Critical patent/JP4011592B2/ja
Publication of JP2005346110A publication Critical patent/JP2005346110A/ja
Application granted granted Critical
Publication of JP4011592B2 publication Critical patent/JP4011592B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、楽音形成装置に関し、さらに詳細には、パーソナルコンピュータやワークステーションなどの汎用のコンピュータ上でソフトウェアによりシンセサイザを構築する際に用いて好適な楽音形成装置に関する。
従来、楽音を形成するためには、楽音形成用の専用のハードウェア、所謂、電子楽器を用いることが必要であった。
ところが、近年、汎用のコンピュータに高性能のCPUおよびCPUが処理したデータをアナログ信号として外部へ出力するためのD/A変換器(デジタル−アナログ変換器)が搭載されるようになってきたことに伴い、専用のハードウェアを用いることなしに、汎用のコンピュータ上でソフトウェアによりシンセサイザを構築し、リアルタイムで楽音を形成することが提案されている。
ここで、汎用のコンピュータ上でソフトウェアによりシンセサイザを構築し、リアルタイムで楽音を形成する処理を行うためには、一般に楽音を形成するための波形データが大量に必要とされることから、こうした大量の波形データを予めハードディスクなどのアクセスタイムは遅いが容量が大きな記憶手段に記憶しておき、こうしたハードディスクなどの記憶手段に記憶された波形データの中から処理に必要なだけの波形データを、アクセスタイムは早いが容量が小さなランダムアクセスメモリ(RAM)などの記憶手段へ転送し、RAMなどの記憶手段に記憶された波形データを読み出すことによって、リアルタイムで楽音を形成することが考えられる。
しかしながら、汎用のコンピュータ上でソフトウェアによりシンセサイザを構築し、リアルタイムで楽音を形成する処理を行う際において、ハードディスクなどの記憶手段からRAMなどの記憶手段に波形データを転送するには所定時間が必要であるため、楽音形成を指示された際に当該転送のための転送時間のタイムラグなしに楽音を形成するためには、楽音形成を指示されたとき毎にハードディスクなどの記憶手段からRAMなどの記憶手段に波形データを転送する必要がないように、RAMなどの記憶手段に効率よく波形データを記憶しておく必要があるという問題点があった。

なお、本願出願人が特許出願のときに知っている先行技術は、文献公知発明に係る発明ではないため、記載すべき先行技術文献情報はない。
本発明は、上記したような問題点に鑑みてなされたものであり、その目的とするところは、汎用のコンピュータ上でソフトウェアによりシンセサイザを構築し、リアルタイムで楽音を形成する処理を行う際に、ある発音チャンネルで、発生すべき波形データが転送中で発音処理不可能な状態のときに発音制御データが入力された場合にも、波形データの転送終了を待つことなく次の処理を続けることができ、その他の発音チャンネルの発音制御処理を妨げることなく楽音を形成することができるようにした楽音形成装置を提供することにある。
上記目的を達成するために、本発明のうち請求項1に記載の発明は、複数の波形データを記憶する第1の記憶手段と、上記第1の記憶手段よりも遅いアクセスタイムで上記第1の記憶手段に波形データを転送可能な複数の波形データを記憶する第2の記憶手段と、上記第1の記憶手段に記憶された波形データを読み出して楽音を形成する複数の発音チャンネルを備えた楽音形成手段と、上記複数の発音チャンネル毎に未処理発音制御データを先入れ先出し方式で複数記憶可能な発音制御データ記憶手段と、上記第2の記憶手段から上記第1の記憶手段へ波形データの転送中で発音チャンネルにおいて発音処理が不可能な状態において、上記発音処理が不可能な発音チャンネルに発音制御データが入力された場合に、上記発音制御データを上記発音制御データ記憶手段に記憶させ、上記第2の記憶手段から上記第1の記憶手段へ波形データの転送終了後に、上記発音制御データ記憶手段に記憶させた上記発音制御データを読み出す制御手段とを有するようにしたものである。
従って、ある発音チャンネルで、発生すべき波形データが転送中で発音処理不可能な状態のときに発音制御データが入力された場合にも、発音制御データを発音制御データ記憶手段に記憶して、転送終了後に処理するようになされているため、波形データの転送終了を待つことなく次の処理を続けることができ、その他の発音チャンネルの発音制御処理を妨げることなく楽音を形成することができる。
本発明による楽音形成装置によれば、ある発音チャンネルで、発生すべき波形データが転送中で発音処理不可能な状態のときに発音制御データが入力された場合にも、波形データの転送終了を待つことなく次の処理を続けることができ、その他の発音チャンネルの発音制御処理を妨げることなく楽音を形成することができる。
以下、添付の図面を参照しながら、本発明による楽音形成装置の実施の形態を詳細に説明する。
図1は、汎用のコンピュータ上でソフトウェアによって、本発明による楽音形成装置を含んだシンセサイザを構築するための、典型的な汎用のコンピュータのハードウェア構成を示すブロック図である。
この図1に示す汎用のコンピュータは、極めて一般的な構成を備えており、バス10を介して、CPU12と、RAMよりなるメモリ14と、ディスクコントローラ16と、ビデオカード18と、I/Oカード20と、サウンドカード22とが接続されており、さらに、ディスクコントローラ16にはハードディスク24が接続され、ビデオカード18にはディスプレイ装置26が接続され、I/Oカード20にはキーボード28およびマウス30が接続されている。そして、このコンピュータにおいては、サウンドカード22から楽音信号が出力される。
また、この汎用のコンピュータにおいては、本発明による楽音形成装置を含むシンセサイザを構築するためのプログラムの他に、シーケンサ(自動演奏装置)を構築するためのプログラムも同時に起動され、シーケンサから本発明の楽音形成装置を含むシンセサイザにMIDI情報が引き渡され、本発明の楽音形成装置を含むシンセサイザにおいては、引き渡されたMIDI情報に応じて楽音を形成して出力する処理が行われる。
図2は、本発明の楽音形成装置を含むシンセサイザを構築するためのプログラムの全体構成を示し、制御タスク、音源タスク、出力タスクおよび波形データロードタスクの各タスクとタイマーインターラプト処理より構成されている。
制御タスクは制御プログラムを実行し、シーケンサのプログラムとの間でMIDI情報のやりとりを行うとともに、音源タスク側へ発音制御メッセージおよび発音パラメータを引き渡し、音源タスク側からボイス情報を受け取ることにより、シーケンサのプログラムから受け取ったMIDI情報に従い音色変更や発音制御などを行う。
音源タスクは音源プログラムを実行し、複数のボイス(楽音生成チャンネル)ならびにエフェクトに関する処理を行い、生成した楽音信号を出力タスクへ引き渡す。即ち、音源タスクは複数のボイスのそれぞれの処理を行うものであって、制御タスクから引き渡された発音制御メッセージおよび発音パラメータに従ってシンセサイザの楽音信号を生成し、生成した楽音信号を出力タスクへ引き渡すことになる。
出力タスクは出力プログラムを実行し、発音タスクから引き渡された楽音信号を、出力用ハードウェア(DAC)の仕様にそってコントロールして出力する。
波形データロードタスクは波形データロードプログラムを実行し、制御タスクからデータロード要求を受け取り、データロード要求に応じて波形データをハードディスク24からメモリ14にロードする。なお、本明細書において、「ロード」とは、ハードディスク24に記憶された波形データなどのデータをメモリ14に読み込む処理を意味する。
タイマーインターラプト処理は所定時間間隔でタイマーインターラプトプログラムを実行し、制御タスクへタイマーイベントを発行する。
ところで、上記した制御タスク、音源タスク、出力タスクおよび波形データロードタスクには優先度(プライオリティ:priority)が設けられていて、他のタスクなどにより処理を中断されることが好ましくないタスクは、優先度を高くするようになされている。なお、この実施の形態においては、出力タスクの優先度が最も高く、次に音源タスクの優先度が高く、その次に制御タスクの優先度が高く、波形データロードタスクの優先度が最も低くなされている。
上記において説明した各タスクおよびタイマーインターラプト処理により、本発明の楽音形成装置を含むシンセサイザを構築することができるものであるが、以下においては、説明を簡略化して理解を容易にするために、本発明の楽音形成装置に関する構成ならびに作用を中心に説明するものとする。なお、本発明の楽音形成装置以外のシンセサイザ部分に関しては、従来より公知のソフトウェア技術により構築するようにしてよい。
本発明の楽音形成装置に関する構成ならびに作用の説明にあたっては、まず、ハードディスク24における波形データの記憶構造を、図3を参照しながら説明するものとする。
即ち、図3は、ハードディスク24上に構成された波形データを記憶したファイルたる波形データファイルを図表的に示したものであり、波形データファイルは、上記したシンセサイザの初期設定時(立ち上がり時)にロードされるデータを記憶するエリアたるプリロード部と、波形データを記憶したエリアたる波形データ部とから構成されている。
そして、プリロード部は音色情報を記憶したエリアたる複数の音色情報部(音色1情報部、音色2情報部、音色3情報部、・・・)を備え、これら各音色情報部は、波形データをアクセスするための情報たる波形データのオフセットやサイズなどの情報を記憶したエリアたるアクセスデータ部、音色使用履歴(実際にその音色が使用される度に1づつインクリメントされるCPU12に内蔵されたカウンターの値)を記憶したエリアである音色履歴部、メモリ14上に波形データがロードされたときにそのアドレスを記入するエリアたるアドレス部および音源タスクを制御するための各種のパラメータを記憶したエリアたるパラメータ部から構成されている。
また、ハードディスク24上には、図4に示すようにシンセサイザ制御用ファイルが設けられている。このシンセサイザ制御用ファイルは、前回のシンセサイザの処理の終了時にメモリ14の波形データ部用プール部(後述する)に読み込まれている波形データのリストたる波形データリストを記憶するエリアたる波形データリスト部と、制御タスク初期化モードがモード1に設定されているかモード2に設定されているかを記憶するエリアたるモード部と(制御タスク初期化モードとしてはモード1とモード2との2つのモードが設定されており、後述するようにモードによって制御タスクの処理内容が異なる。制御タスク初期化モードは、ディスプレイ装置26に表示され、キーボード28やマウス30などを操作することによって、ユーザーが任意に設定できるものとする。)、ある楽曲中において同時に使用される可能性が高い音色のリストの複数楽曲分の一覧であるジャンル別データベースを記憶するエリアたるジャンル別データベース部と(なお、同時に使用される可能性が高い音色は、予め設定されていてもよいし、ユーザーが任意に設定できるようにしてもよい。)、ユーザーが設定したシンセサイザの初期設定時に予めロードしておく音色のリストたる音色リストを記憶しておくエリアたる音色リスト部とから構成されている。
次に、メモリ14の構成を図5を参照しながら説明すると、MIDIのGSリセットなどでセットされるリセットフラグを記憶するエリアたるリセットフラグ部と、MIDIチャンネル(MIDIチャンネル1〜MIDIチャンネル16)に対応してそれぞれのチャンネルを制御するためのデータを記憶するエリアたるチャンネルコントロールデータ部と、ハードディスク24上に構成されたシンセサイザ制御用ファイルの波形データリスト部をロードするエリアたる波形データリストロード部と、ハードディスク24上に構成されたシンセサイザ制御用ファイルのジャンル別データベース部をロードするエリアたるジャンル別データベースロード部と、ハードディスク24上に構成されたシンセサイザ制御用ファイルの音色リスト部をロードするエリアたる音色リストロード部と、ハードディスク24上に構成された波形データファイルのプリロード部をロードするエリアたるプリロード部用ロード部と、ハードディスク24上に構成された波形データファイルの波形データ部に記憶された波形データをロードするエリアたる波形データ用プール部とより構成されている。
そして、チャンネルコントロールデータ部は各MIDIチャンネルに関する情報を記憶したチャンネル部(チャンネル1部、チャンネル2部、チャンネル3部、・・・、チャンネル16部)を備え、これら各チャンネル部は、音色番号を記憶するエリアたる音色番号部と、波形データがロード中にセットされるフラグを記憶するエリアたるロード中フラグ部と、波形データのロード中に実行できないMIDI情報を一時貯めておくFIFOのエリアたるFIFO部とより構成されている。
以上の構成において、図6を参照しながら、シンセサイザの初期設定時に制御プログラムにより実行される制御タスクの処理たる「初期設定処理ルーチン」を説明すると、まず、各種のバッファなどをクリアして初期化の処理(ステップS602)を行った後に、ハードディスク24上に構成された波形データファイルのプリロード部を、メモリ14のプリロード部用ロード部へロードする(ステップS604)。
次に、ハードディスク24上に構成されたシンセサイザ制御用ファイルのジャンル別データベース部を、メモリ14のジャンル別データベースロード部へロードする(ステップS606)。
そして、制御タスク初期化モードが、モード1に設定されているか、モード2に設定されているかを、ハードディスク24上に構成されたシンセサイザ制御用ファイルのモード部を参照して判断する(ステップS608)。
ステップS608において、制御タスク初期化モードがモード1に設定されていると判断された場合には、ハードディスク24上に構成されたシンセサイザ制御ファイルの波形データリスト部を、メモリ14の波形データリストロード部へロードし、この波形データリストロード部に記憶された波形データリストに示される波形データを、ハードディスク24上に構成された波形データファイルの波形データ部からメモリ14の波形データ用プール部にロードし、この初期設定処理ルーチンを終了する(ステップS610)。
従って、この場合には、初期設定時において、前回動作終了時にメモリ14に記憶されていた波形データが、ハードディスク24からメモリ14へロードされることになる。
一方、ステップS608において、制御タスク初期化モードがモード2に設定されていると判断された場合には、さらに、ハードディスク24上に構成されたシンセサイザ制御用ファイルの音色リスト部に音色リストが設定されているか否かを判断する(ステップS612)。
ステップS612において、ハードディスク24上に構成されたシンセサイザ制御用ファイルの音色リスト部に音色リストが設定されていないと判断された場合には、ステップS604でメモリ14のプリロード部用ロード部にロードされた、ハードディスク24上に構成された波形データファイルのプリロード部の音色履歴部を参照し、音色履歴の値の大きい音色の波形データから順に、メモリ14の波形データ部用プール部の使用上限になるまで、ハードディスク24上に構成された波形データファイルの波形データ部からメモリ14の波形データ部用プール部に波形データをロードし、この初期設定処理ルーチンを終了する(ステップS614)。
従って、この場合には、初期設定時において、過去に使用回数の多かった波形データが、ハードディスク24からメモリ14へロードされることになる。
一方、ステップS612において、ハードディスク24上に構成されたシンセサイザ制御用ファイルの音色リスト部に音色リストが設定されていると判断された場合には、ハードディスク24上に構成されたシンセサイザ制御ファイルの音色リスト部を、メモリ14の音色リストロード部へロードし、この音色リストロード部に記憶された音色リストに示される音色の波形データを、ハードディスク24上に構成された波形データファイルの波形データ部からメモリ14の波形データ用プール部にロードし、この初期設定処理ルーチンを終了する(ステップS616)。
従って、この場合には、初期設定時において、ユーザーが予めメモリ14に記憶させておきたい波形データが、ハードディスク24からメモリ14へロードされることになる。
なお、上記したステップS610、ステップS614およびステップS616においては、ハードディスク24上に構成された波形データファイルの波形データ部からメモリ14の波形データ用プール部に、指定された波形データをロードする処理が行われるが、この処理は、具体的には、図7に示す制御プログラムにより実行される制御タスクの処理たる「データロード要求発行処理ルーチン(1)」と、図8に示す波形データロードプログラムによって実行される波形データロードタスクの処理たる「波形データロードルーチン」とによって実現される。
即ち、処理ステップがステップS610、ステップS614およびステップS616に到達すると、図7に示すデータロード要求発行処理ルーチン(1)が起動され、制御タスクは波形データロードタスクに対してデータロード要求を発行する(ステップS702)。
それから、波形データロードタスクから制御タスクへデータロード完了通知が行われた否かを判断し(ステップS704)、波形データロードタスクから制御タスクへデータロード完了通知が行われるまで待ち、波形データロードタスクから制御タスクへデータロード完了通知が行われた場合には、このデータロード要求発行処理ルーチン(1)を終了する。
そして、ステップS702において、制御タスクが波形データロードタスクに対してデータロード要求を発行すると、図8に示す波形データロードタスクによる波形データロードルーチンが起動される。
この波形データロードルーチンにおいては、ロードすべき波形データのサイズ分の領域を、メモリ14の波形データ用プール部に取得できるか否かを判断する(ステップS802)。
ステップS802において、ロードすべき波形データのサイズ分の領域をメモリ14の波形データ用プール部に取得できないと判断された場合には、既に波形データ用プール部にロードされている波形データの中で、最も過去に使用された波形データから順に破棄して行き、波形データ用プール部にロードする波形データのサイズ分の領域を確保し(ステップS804)、ステップS802へ戻る。
一方、ステップS802において、ロードすべき波形データのサイズ分の領域をメモリ14の波形データ用プール部に取得できると判断された場合には、ハードディスク24上に構成された波形データファイルの波形データ部から、メモリ14の波形データ用プール部に、指定された波形データをロードする(ステップS806)。
それから、ステップS806でロードした波形データに対応する音色情報部のアドレス部に、ロードした波形データのアドレスを書き込む(ステップS808)。
そして、制御タスクにデータロード完了通知を発行し(ステップS810)、この波形データロードルーチンを終了する。
また、シーケンサのプログラムから制御タスクへMIDI情報が入力された場合、音源タスクから制御タスクへボイス情報が入力された場合、波形データロードタスクから制御タスクへのデータロード完了通知が発行された場合あるいはタイマーインターラプト処理により制御タスクへタイマーイベントが発行された場合には、図9に示す制御プログラムにより実行される制御タスクの処理たる「定常処理ルーチン」が起動される。
即ち、シーケンサのプログラムから制御タスクへMIDI情報が入力された場合には、MIDI情報処理ルーチン(ステップS902)が実行され、音源タスクから制御タスクへボイス情報が入力された場合には、ボイス情報処理ルーチン(ステップS904)が実行され、波形データロードタスクから制御タスクへデータロード完了通知が発行された場合には、データロード完了通知処理ルーチン(ステップS906)が実行され、後述するタイマーインターラプト処理により制御タスクへタイマーイベントが発行された場合には、タイマーイベント処理ルーチン(ステップS908)が実行され。
図10には、ステップS902のMIDI情報処理ルーチンのフローチャートが示されており、制御タスクへ入力されたMIDI情報がリセットメッセージであった場合には、リセットフラグをセットし(ステップS1002)、図9に示す制御タスクの定常処理ルーチンへリターンする。
また、制御タスクへ入力されたMIDI情報がプログラムチェンジであった場合には、リセットフラグがセットされているか否かを判断し(ステップS1004)、リセットフラグがセットされている場合には、CPU12に内蔵されたタイマーをスタートしてから(ステップS1006)、入力されたプログラムチェンジに基づいて、メモリ14のチャンネルコントロールデータ部の当該プログラムチェンジに対応するチャンネル部の音色番号部に、当該プログラムチェンジが示す音色番号をセットする(ステップS1008)。
一方、リセットフラグがセットされていない場合には、ステップS1006の処理をジャンプして、入力されたプログラムチェンジに基づいて、メモリ14のチャンネルコントロールデータ部の当該プログラムチェンジに対応するチャンネル部の音色番号部に、当該プログラムチェンジが示す音色番号をセットする(ステップS1008)。
それから、音色番号部にセットされた音色番号の音色に対応する波形データが、波形データ用プール部に存在するか否かを判断する(ステップS1010)。
そして、当該波形データが波形データ用プール部に存在しない場合には、上記プログラムチェンジに対応するチャンネル部のロード中フラグをセットし、データロード要求発行処理ルーチン(2)(図16)を起動し(ステップS1012)、図9に示す制御タスクの定常処理ルーチンへリターンする。
こうして、ステップS1012においてデータロード要求発行処理ルーチン(2)が起動されると、データロード要求発行処理ルーチン(2)によりデータロード要求が波形データロードタスクへ発行され、波形データロードタスクは波形データロードルーチンを実行して、入力されたプログラムチェンジに対応する波形データをメモリ14の波形データ用プール部へロードする。
一方、音色番号部にセットされた音色番号の音色に対応する波形データが波形データ用プール部に存在する場合には、ロード中フラグをクリアし(ステップS1014)、図9に示す制御タスクの定常処理ルーチンへリターンする。
また、制御タスクへ入力されたMIDI情報がリセットフラグでもプログラムチェンジでもないその他の場合には、制御タスクへ入力されたMIDI情報がノートメッセージであるか否かを判断し(ステップS1016)。
そして、制御タスクへ入力されたリセットフラグおよびプログラムチェンジ以外のMIDI情報がノートメッセージである場合には、リセットフラグがセットされているか否かを判断し(ステップS1018)、リセットフラグがセットされている場合には、タイマーイベント処理ルーチンを実行してから(ステップS1020)、ロード中フラグがセットされているか否かを判断する(ステップS1022)。
一方、制御タスクへ入力されたリセットフラグおよびプログラムチェンジ以外のMIDI情報がノートメッセージでない場合や、制御タスクへ入力されたリセットフラグおよびプログラムチェンジ以外のMIDI情報がノートメッセージであっても、リセットフラグがセットされていない場合には、タイマーイベント処理ルーチンを実行することなしに、上記入力されたMIDI情報が示すチャンネル部のロード中フラグがセットされているか否かを判断する(ステップS1022)。
そして、ロード中フラグがセットされている場合には、メモリ14のFIFO部に入力されたMIDI情報を書き込み(ステップS1024)、図9に示す制御タスクの定常処理ルーチンへリターンする。
従って、ハードディスク24からメモリ14へ波形データの転送中であり、ロード中フラグがセットされていてMIDI情報の処理が不可能な状態においては、当該MIDI情報はメモリ14のFIFO部に書き込まれることになる。
一方、ロード中フラグがセットされていない場合には、入力されたMIDI情報に対応した処理を行い(ステップS1026)、図9に示す制御タスクの定常処理ルーチンへリターンする。
図11には、ステップS904のボイス情報処理ルーチンのフローチャートが示されている。
このボイス情報処理ルーチンにおいては、入力されたボイス情報が示す発音終了したボイスに設定されていたデータをクリアして、新たな楽音を発音するためのデータを設定可能にし(ステップS1102)、図9に示す制御タスクの定常処理ルーチンへリターンする。
図12には、ステップS906のデータロード完了通知処理ルーチンのフローチャートが示されている。
このデータロード完了通知処理ルーチンにおいては、ステップS1204〜ステップS1214の処理をMIDIチャンネルの数(この実施の態様においては、カウンタchが1〜16の16)だけ繰り返される。
まず、MIDIチャンネルのカウンタchを1に初期設定する(ステップS1202)。
そして、ロード中フラグがセットされているか否かを判断し(ステップS1204)、ロード中フラグがセットされていない場合には、後述のステップS1214へ進むが、ロード中フラグがセットされている場合には、ロードが完了した波形データの番号と現在のMIDIチャンネルで発音する音色番号とが一致するか否かを判断する(ステップS1206)。
そして、ロードが完了した波形データの番号と音色番号とが一致しない場合には、ステップS1214へ進むが、ロードが完了した波形データの番号と音色番号とが一致する場合には、ロード中フラグをクリアする(ステップS1208)。
それから、メモリ14のFIFO部にMIDI情報が書き込まれているか否かを判断し(ステップS1210)、メモリ14のFIFO部にMIDI情報が書き込まれている場合には、FIFO部に書き込まれているMIDI情報に対してMIDI情報処理ルーチン(図10)の実行を行う(ステップS1212)。そして、このMIDI情報処理ルーチンの実行は、その処理中チャンネルのFIFO部に書き込まれている全てのMIDI情報に対しての実行が終了するまで繰り返し行われる。
一方、ステップS1210の判断において、メモリ14のFIFO部にMIDI情報が書き込まれていなかったり、メモリ14のFIFO部にMIDI情報が書き込まれていても、上記処理で書き込まれている全てのMIDI情報に対しての実行が終了した場合には、MIDIチャンネルのカウンタchを1だけインクリメントする(ステップS1214)。
そして、MIDIチャンネルのカウンタchが16チャンネル分の処理をしたかを判断し(ステップS1216)、16チャンネル分の処理を終了していない場合には、ステップS1204に戻って次のMIDIチャンネルについての処理を実行し、16チャンネル分の処理を終了した場合には、図9に示す制御タスクの定常処理ルーチンへリターンする。
図13には、タイマーイベント処理ルーチンのフローチャートが示されており、このタイマーイベント処理ルーチンにおいては、まず、CPU12に内蔵されたタイマーをストップさせ(ステップS1302)、リセットフラグがセットされているか否かを判断する(ステップS1304)。
リセットフラグがクリアされている場合には、そのまま図9に示す制御タスクの定常処理ルーチンへリターンする。
一方、リセットフラグがセットされている場合には、リセットフラグをクリアし(ステップS1306)、各MIDIチャンネルに設定されている音色とジャンル別データベースとから、各MIDIチャンネルに設定されている音色の使用頻度の高いジャンルを判定し、判定したジャンルで頻繁に使用される音色の波形データの中でまだロードしていない波形データを波形データ用プール部へロードするために、データロード要求発行処理ルーチン(2)(図16)を起動し(ステップS1308)、図9に示す制御タスクの定常処理ルーチンへリターンする。
こうして、ステップS1308においてデータロード要求発行処理ルーチン(2)が起動されると、データロード要求発行処理ルーチン(2)によりデータロード要求が波形データロードタスクへ発行され、波形データロードタスクは波形データロードルーチンを実行して、判定したジャンルで頻繁に使用される音色の波形データの中でまだロードしていない波形データを、ハードディスク24の波形データ部からメモリ14の波形データ用プール部へロードする。
従って、各MIDIチャンネルに設定された音色から、当該音色の使用頻度の高いジャンル(グループ)が判定され、判定されたジャンルの音色に対応する波形データが、ハードディスク24からメモリ14へロードされることになる。
なお、上記したように、タイマーイベントはタイマーインターラプト処理により制御タスクへ発行されるものであり、図14には、1msec毎に起動されるタイマーインターラプト処理ルーチンのフローチャートが示されている。
このタイマーインターラプト処理ルーチンにおいては、まず、タイマーフラグがスタートにセットされているか、あるいはストップにクリアされているかを判断する(ステップS1402)。なお、タイマーがスタートされたときに、タイマーフラグがスタートにセットされるとともに、タイマーカウンタにカウント値500がセットされ、タイマーがストップされたときに、タイマーフラグがストップにクリアされる。
そして、タイマーフラグがストップにクリアされている場合には、そのままタイマーインターラプト処理ルーチンを終了する。
一方、タイマーフラグがスタートにセットされている場合には、タイマーカウント値から1をデクリメントしてから(ステップS1404)、タイマーカウント値が0であるか否かを判断する(ステップS14106)。
タイマーカウント値が0である場合には、タイマーイベントを制御タスクへ発行した後に(ステップS1408)、このタイマーインターラプト処理ルーチンを終了する。
一方、タイマーカウント値が0でない場合には、そのままタイマーインターラプト処理ルーチンを終了する。
なお、本発明の楽音形成装置を含むシンセサイザの動作終了時には、図15に示す制御プログラムにより実行される制御タスクの処理たる「終了時処理ルーチン」が起動される。
この終了時処理ルーチンにおいては、現在メモリ14の波形データ用プール部にロードされている波形データのリストを作成し、これを波形データリストとして、ハードディスク24のシンセサイザ制御用ファイルの波形データリスト部へ書き込むことになる(ステップS1502)。
従って、ハードディスク24のシンセサイザ制御用ファイルの波形データリスト部を参照することにより、初期設定ルーチン(図6)のステップS610において、初期設定時に前回動作終了時にメモリ14に記憶されていた波形データをハードディスク24からメモリ14へロードすることができるようになる。
図1は、汎用のコンピュータ上でソフトウェアによって、本発明による楽音形成装置を含んだシンセサイザを構築するための、典型的な汎用のコンピュータのハードウェア構成を示すブロック図である。 図2は、本発明の楽音形成装置を含むシンセサイザを構築するためのプログラムの全体構成を示す概念図である。 図3は、ハードディスク上に構成される波形データファイルの構造を図表的に示す説明図である。 図4は、ハードディスク上に構成されるシンセサイザ制御ファイルの構造を図表的に示す説明図である。 図5は、メモリの構造を図表的に示す説明図である。 図6は、初期設定ルーチンを示すフローチャートである。 図7は、データロード要求発行処理ルーチン(1)を示すフローチャートである。 図8は、波形データロードルーチンを示すフローチャートである。 図9は、定常処理ルーチンを示すフローチャートである。 図10は、MIDI情報処理ルーチンを示すフローチャートである。 図11は、ボイス情報処理ルーチンを示すフローチャートである。 図12は、データロード完了通知処理ルーチンを示すフローチャートである。 図13は、タイマーイベント処理ルーチンを示すフローチャートである。 図14は、タイマーインターラプト処理ルーチンを示すフローチャートである。 図15は、終了時処理ルーチンを示すフローチャートである。 図16は、データロード要求発行処理ルーチン(2)を示すフローチャートである。
符号の説明
10 バス
12 CPU
14 メモリ
16 ディスクコントローラ
18 ビデオカード
20 I/Oカード
22 サウンドカード
24 ハードディスク
26 ディスプレイ装置
28 キーボード
30 マウス

Claims (1)

  1. 複数の波形データを記憶する第1の記憶手段と、
    前記第1の記憶手段よりも遅いアクセスタイムで前記第1の記憶手段に波形データを転送可能な複数の波形データを記憶する第2の記憶手段と、
    前記第1の記憶手段に記憶された波形データを読み出して楽音を形成する複数の発音チャンネルを備えた楽音形成手段と、
    前記複数の発音チャンネル毎に未処理発音制御データを先入れ先出し方式で複数記憶可能な発音制御データ記憶手段と、
    前記第2の記憶手段から前記第1の記憶手段へ波形データの転送中で発音チャンネルにおいて発音処理が不可能な状態において、前記発音処理が不可能な発音チャンネルに発音制御データが入力された場合に、前記発音制御データを前記発音制御データ記憶手段に記憶させ、前記第2の記憶手段から前記第1の記憶手段へ波形データの転送終了後に、前記発音制御データ記憶手段に記憶させた前記発音制御データを読み出す制御手段と
    を有することを特徴とする楽音形成装置。
JP2005217090A 2005-07-27 2005-07-27 楽音形成装置 Expired - Fee Related JP4011592B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005217090A JP4011592B2 (ja) 2005-07-27 2005-07-27 楽音形成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005217090A JP4011592B2 (ja) 2005-07-27 2005-07-27 楽音形成装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP8156113A Division JPH09319373A (ja) 1996-05-28 1996-05-28 楽音形成装置

Publications (2)

Publication Number Publication Date
JP2005346110A JP2005346110A (ja) 2005-12-15
JP4011592B2 true JP4011592B2 (ja) 2007-11-21

Family

ID=35498472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005217090A Expired - Fee Related JP4011592B2 (ja) 2005-07-27 2005-07-27 楽音形成装置

Country Status (1)

Country Link
JP (1) JP4011592B2 (ja)

Also Published As

Publication number Publication date
JP2005346110A (ja) 2005-12-15

Similar Documents

Publication Publication Date Title
JP4655812B2 (ja) 楽音発生装置、及びプログラム
US7232949B2 (en) System and method for music creation and rearrangement
EP3462443B1 (en) Singing voice edit assistant method and singing voice edit assistant device
KR960003278A (ko) 악기 음 발생 방법 및 시스템과 악기음 발생 제어 시스템
EP3462442A1 (en) Singing voice edit assistant method and singing voice edit assistant device
US20030028516A1 (en) Information processing apparatus, information processing method, and storage medium
JP3637578B2 (ja) 楽音生成方法
JP7124371B2 (ja) 電子楽器、方法及びプログラム
WO2001065536A1 (fr) Generateur de sons musicaux
JP6455189B2 (ja) 波形読み込み装置、方法、プログラム、および電子楽器
JP4011592B2 (ja) 楽音形成装置
JP2007271827A (ja) 楽音発生装置、及びプログラム
JP3918817B2 (ja) 楽音生成装置
JPH09319373A (ja) 楽音形成装置
JP3637577B2 (ja) 楽音生成方法
CN105023563A (zh) 采样装置、电子乐器以及方法
JP3978928B2 (ja) 楽音生成装置
JP4096952B2 (ja) 楽音発生装置
KR100216297B1 (ko) 디지탈 전자악기의 악보표시장치 및 방법
JP3840915B2 (ja) 演奏情報編集装置及びプログラム
JP7331915B2 (ja) 情報処理装置、電子楽器、音取りシステム、方法及びプログラム
US7285711B2 (en) Music player
JP6443773B2 (ja) 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器
JP6606839B2 (ja) 波形書き込み装置、方法、プログラム、および電子楽器
JP6851578B2 (ja) 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070726

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070905

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees