JP2008268468A - 楽音再生装置およびプログラム - Google Patents

楽音再生装置およびプログラム Download PDF

Info

Publication number
JP2008268468A
JP2008268468A JP2007110146A JP2007110146A JP2008268468A JP 2008268468 A JP2008268468 A JP 2008268468A JP 2007110146 A JP2007110146 A JP 2007110146A JP 2007110146 A JP2007110146 A JP 2007110146A JP 2008268468 A JP2008268468 A JP 2008268468A
Authority
JP
Japan
Prior art keywords
signal processing
callback
sound signal
sound
program
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
JP2007110146A
Other languages
English (en)
Other versions
JP5169000B2 (ja
Inventor
Michiyoshi Sawara
理孔 佐原
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 JP2007110146A priority Critical patent/JP5169000B2/ja
Publication of JP2008268468A publication Critical patent/JP2008268468A/ja
Application granted granted Critical
Publication of JP5169000B2 publication Critical patent/JP5169000B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】既存の音信号処理プラグインに手を加えたり、楽音再生装置の高価格化を招くことなく、複数トラックからなるシーケンスデータに基づく楽音再生処理をソフトウェア処理で実行する際に処理負荷の集中を回避する。
【解決手段】各々が楽曲の異なるチャネルの音を表す複数の波形トラックからなるシーケンスデータを受け取り、各波形トラックの表す音に互いに異なる音信号処理プラグインを割り当てて音響効果の付与を行う楽音再生装置に、各音信号処理プラグインの1回目のコールバックの実行タイミングをプラグイン毎に異ならせるとともに、2回目以降のコールバックについては所定のサンプル数分のシーケンスデータを受け取る毎に実行する制御を実行させる。
【選択図】図1

Description

本発明は、プラグインにより音信号処理を実行する楽音再生装置に関し、特に、複数のプラグインを並列に実行する楽音再生装置に関する。
コンピュータ装置の高性能化および低価格化にともない、DTM(Desk Top Music)における音源としてはソフト音源が主流に成りつつある。ここで、ソフト音源とは、MIDIデータなどのシーケンスデータにしたがった音信号の生成処理をソフトウェア処理で実現し発音制御を行う音源のことである。また、シーケンスデータにしたがって楽音再生を行うシーケンサプログラムなどの他のアプリケーションプログラムからの呼び出し(以下、コールバック)によって、周波数変換などの音信号処理を実行するダイナミックリンクライブラリ(所謂プラグイン)形式の音信号処理プログラムも一般に提供されている。このようなソフト音源やプラグイン形式の音信号処理プログラム(以下、「音信号処理プラグイン」とも呼ぶ)を利用してDTMを行う技術の一例としては特許文献1に開示された技術が挙げられる。
特許3796752号
ところで、ステレオ収録された楽曲のように同時に再生されるべき複数トラック(例えば、各々が左右の各チャネルの音を表す2つのトラック)を含むシーケンスデータが再生対象である場合、トラック毎に音信号処理プログラムをコールバックして音信号処理を行う必要がある。しかしながら、音信号処理プログラムの実行過程では、高速フーリエ変換などの処理負荷の高い演算処理が実行されるため、上記のように複数の音信号処理プログラムを並列にコールバックすると、処理負荷が集中しシステムダウンなどの問題を引き起こす場合がある。このような問題を解決する方策としては、複数の音信号処理プログラムのコールバックによる負荷集中を許容し得るように楽音再生装置のハードウェア設計を行うことや、コールバックされる音信号処理プログラム側で処理負荷を平均化できるように改造を加えることが考えらえる。しかし、前者の態様にあっては、実装するべきメモリ量の増加などによりコスト増加を招くといった問題があり、後者の態様にあっては、音信号処理プログラムの構造が複雑になりその設計が難しいといった問題がある。
本発明は、上記課題に鑑みて為されたものであり、プラグイン形式で配布される既存の音信号処理プログラムに改造を加えたり、楽音再生装置の高価格化を招くことなく、複数トラックからなるシーケンスデータに基づく楽音再生処理をソフトウェア処理で実現する際の処理負荷の集中を回避することを可能にする技術を提供することを目的としている。
上記課題を解決するために、本発明は、記憶手段と、音信号のサンプルを示すトラックデータを用いた音信号処理を実行するプログラムであって、コールバックされる毎に、前記記憶手段の読み出し用バッファに処理対象である所定サンプル数分のトラックデータが記憶されている場合にそのトラックデータを前記記憶手段の信号処理用バッファに移動させ、コールバックされたとき、前記信号処理用バッファに前記所定サンプル数よりも多いサンプル数である処理ブロックサイズ分のトラックデータが記憶されている場合のこの処理ブロックサイズ分のトラックデータを用いた音信号処理を実行する音信号処理プログラムを利用して楽音の再生を行う楽音再生装置において、複数のトラックデータからなるシーケンスデータを受け取って、前記読み出し用バッファに書き込み、前記読み出し用バッファに蓄積されたシーケンスデータの1トラックデータ当たりのサンプル数が所定サンプル数になる毎に、コールバック実行指示を発生する書き込み手段と、前記シーケンスデータを構成する複数のトラックデータを用いた音信号処理を行う複数の音信号処理プログラムを前記記憶手段のプログラム実行領域に記憶させ、前記コールバック指示が与えられる毎に前記複数の音信号処理プログラムのコールバックを実行する手段であり、1回目のコールバック指示が与えられたときには、前記複数の音信号処理プログラムのコールバックを音信号処理プログラム毎に異なるタイミングで実行し、2回目以降のコールバック指示が与えられたときには、前記複数の音信号処理プログラムのコールバックを同時に実行するコールバック制御手段とを有することを特徴とする楽音再生装置、およびコンピュータ装置を前記楽音再生装置として機能させるプログラムを提供する。
上記音信号処理プログラムの処理ブロックサイズがその製造・販売元により公表されている場合には、その処理ブロックサイズ、前記所定のサンプル数、および前記シーケンスデータに含まれるトラックの数に応じて定まる間隔ずつ前記各音信号処理プログラムの1回目のコールバックの実行タイミングを異ならせる処理を前記コールバック制御手段に実行させれば良い。
また、上記処理ブロックサイズが公表されていない場合には、乱数または素数を利用して前記1回目のコールバックの実行タイミングを音信号処理プログラム毎に定める処理を前記制御手段に実行させれば良く、また、前記楽音再生装置に、前記各音信号処理プログラムの1回目のコールバックを同時に実行した場合に、何回目のコールバックで処理負荷が最大になるかを計測する計測する計測手段を設け、さらに、前記計測手段による計測結果から求まる前記処理ブロックサイズ、前記所定のサンプル数および前記シーケンスデータに含まれるトラックの数に応じて定まる間隔ずつ前記各音信号処理プログラムの1回目のコールバックの実行タイミングを異ならせる処理をその楽音再生装置の制御手段に実行させれば良い。
本発明によれば、プラグイン形式で配布される既存の音信号処理プログラムに改造を加えたり、楽音再生装置の高価格化を招くことなく、複数トラックからなるシーケンスデータに基づく楽音再生処理をソフトウェア処理で実現する際の処理負荷の集中を回避することが可能になる、といった効果を奏する。
図1は、本発明の一実施形態に係る楽音再生装置1の構成例を示すブロック図である。
この楽音再生装置1は、シーケンスデータにしたがって楽音再生を行う装置である。ここで、シーケンスデータには、音のサンプリング波形を表わす時系列サンプリングデータが書き込まれた波形トラックやMIDIトラックが含まれている。また、ステレオ収録された楽曲のように複数チャネルの音を有する楽曲の場合には、上記シーケンスデータにはその複数チャネルの各々について上記波形トラックやMIDIトラックが含まれている。楽音再生装置1には、前述した音信号処理プラグインが予めインストールされており、音信号処理プラグインを適宜コールバックすることで音響効果の付与を実現しつつ楽音再生を実行する。つまり、楽音再生装置1は、シーケンスデータにしたがった楽音再生をソフトウェア処理で実現する装置であり、図1に示すように、制御部110、外部接続インタフェース(以下、「IF」)群120、サウンドシステム130、揮発性記憶部140、不揮発性記憶部150、および、これら各要素間のデータ授受を仲介するバス160を有している。
制御部110は、例えばCPU(Central Processing Unit)である。制御部110は、揮発性記憶部140をワークエリアとして不揮発性記憶部150に記憶されている各種プログラムを実行することにより、楽音再生装置1の制御中枢として働く。詳細については後に明らかにするが、制御部110は、上記プログラムを実行することによって、外部から楽音再生装置1に与えられるシーケンスデータにしたがって楽音の再生制御を実行する。
外部接続IF群120は、例えばUSB(Universal Serial Bus)などの所定の規格にしたがってCD−ROM(Compact
Disk-Read Only memory)ドライブなどの外部機器を接続するための外部機器IFや、NIC(Network
Interface Card)などの通信ネットワークIFを含んでいる。本実施形態では、これら外部接続IF群120のうちの適当なものを介して再生対象の楽曲を表すシーケンスデータ(以下、再生対象データ)が楽音再生装置1に与えられる。例えば、インターネットなどの通信回線を介したダウンロードにより再生対象データを与える場合には、上記通信ネットワークIFを介して与えれば良く、USBメモリなどの記録媒体に書き込まれた楽曲データを再生対象として与える場合には、上記外部機器IFにその記録媒体を接続し、その外部機器IFを介してその記録媒体から再生対象データを読み出すようにすれば良い。
サウンドシステム130は、音のオーディオ波形を表す時系列サンプリングデータを制御部110から受け取り、そのオーディオ波形を有する音を出力するものである。図1では詳細な図示は省略したが、サウンドシステム130は、D/A変換器、アンプおよびスピーカからなる音声出力系をn(n:2以上の整数)組有しており、同時にnチャネルの音を出力することができる。各音声出力系に含まれるD/A変換器、アンプおよびスピーカの役割は以下の通りである。すなわち、D/A変換器は、制御部110から引き渡される時系列サンプリングデータにD/A変換を施してその時系列サンプリングデータの表すオーディオ波形を有するアナログ信号(以下、音信号)を生成しアンプに出力する。アンプは、D/A変換器から受け取った音信号を適宜増幅して対応するスピーカに与え、スピーカは、アンプから受け取った音信号に応じた音を出力する。なお、本実施形態では、サウンドシステム130を楽音再生装置1の構成要素とする場合について説明したが、サウンドシステム130を本発明に係る楽音再生装置とは別体のハードウェアで構成するとしても勿論良い。
揮発性記憶部140は、例えばRAM(Random Access Memory)であり、各種プログラムを実行する際のワークエリアの役割を担う。また、揮発性記憶部140は、外部接続IF群120を介して与えられる再生対象データを蓄積する読み出し用バッファと、音響効果付与などの音信号処理の実行過程で利用される信号処理用バッファの2種類のバッファの役割を担う(図2参照)。なお、本実施形態では、図2に示すように、読み出し用バッファとして1つの波形トラックあたりに16サンプル分のデータが含まれているシーケンスデータのデータサイズに相当する記憶領域が揮発性記憶部140内に割り当てられている。また、本実施形態では、音信号処理プラグインによる信号処理においては256サンプル分の時系列サンプリングデータが必要であることがそのプラグインの製造・販売元により公表されており、そのデータサイズに相当する記憶領域が上記信号処理用バッファとして音信号処理プラグイン毎に割り当てられる。
一方、不揮発性記憶部150は、例えばハードディスクである。図1に示すように、不揮発性記憶部150には、OSプログラム151、音信号処理ライブラリ152、シーケンサプログラム153が格納されている。OSプログラム151は、所謂マルチスレッドのプログラム実行環境を制御部110に実現させるためのものである。マルチスレッドのプログラム実行環境とは、複数のプログラムの各々をスレッドと呼ばれる実行単位ずつ直列に実行することによって複数プログラムの並列実行を実現するプログラム実行環境のことである。楽音再生装置1の電源(図示省略)が投入されると、制御部110は、即座に、OSプログラム151を不揮発性記憶部150から揮発性記憶部140にロードし、その実行を開始する。OSプログラム151にしたがって作動し上記プログラム実行環境を実現している制御部110は、例えばユーザの指示に応じてシーケンサプログラム153を実行することができる。
音信号処理ライブラリ152には、周波数変換などの音響効果付与を実現する音信号処理プラグインが含まれている。音信号処理プラグインは、シーケンサプログラム153にしたがって作動している制御部110からのコールバックにより呼び出され、スレッド単位で実行されるプログラムである。この音信号処理プラグインは、揮発性記憶部140のワークエリアにロードされ、その音信号処理プラグイン用の信号処理用バッファが揮発性記憶部140内に割り当てられて起動されると、制御部110に図2に示す音信号処理を実行させる。ここで、音信号処理とは、処理対象である波形トラックのデータを読み出しバッファから信号処理用バッファに移動して蓄積し、その蓄積量が高速フーリエ変換などの信号処理に適したデータ量(本実施形態では、256サンプル分:以下、処理ブロックサイズ)に達した場合に、信号処理用バッファに格納されている時系列サンプリングデータに高速フーリエ変換を施して周波数領域のデータとし、この周波数領域のデータに各種加工(例えば、ピッチ変換のための周波数変換)を施した後、逆高速フーリエ変換により時系列サンプリングデータに再度変換してサウンドシステム130に出力する処理である。
シーケンサプログラム153は、再生対象データに応じた楽音の再生処理を制御部110に実行させるプログラムである。より詳細に説明すると、シーケンサプログラム153が制御部110に実行させる処理は、音信号処理ライブラリ152内の音信号処理プラグインを利用して、上記シーケンスデータに含まれるトラック数分の個数の音信号処理プラグインを揮発性記憶部140内にロードし、各音信号処理プラグインに信号処理用バッファを割り当てる処理と、外部接続IF群120を介して与えられる再生対象データを読み出し用バッファに順次書き込む書き込み処理(図2参照)と、所定のサンプル数(本実施形態では、16サンプル/1波形トラック)分のシーケンスデータを上記読み出し用バッファに書き込んだことを契機として、揮発性記憶部140にロード済みの各音信号処理プラグインをコールバックし、サウンドシステム130への時系列サンプリングデータの出力を実行させるコールバック制御処理(図2参照)と、を含む。なお、図2では、図面が繁雑になることを避けるため、1個の音信号処理プラグインが揮発性記憶部140にロードされ、そのコールバックが行われる場合について例示されている。
図2の書き込み処理とコールバック制御処理とは各々別個のソフトウェアモジュールにより実現される。より詳細に説明すると、書き込み処理モジュールは、所定のサンプル数分のシーケンスデータの読み出し用バッファへの書き込みが完了すると、図2に示すように、コールバックを実行する旨の指示をコールバック制御モジュールに与え、その完了通知をコールバック制御モジュールから受け取ると、読み出し用バッファをクリアして後続のシーケンスデータの書き込みを行う。一方、コールバック制御モジュールは、再生対象データに含まれる複数の波形トラックの各々について1つずつ音信号処理プラグインを揮発性記憶部140にロードして、そのコールバックを行うのであるが、その1回目のコールバックの実行タイミングを音信号処理プラグイン毎に異ならせることに本発明の特徴がある。
より詳細に説明すると、例えば、各々が左右のチャネルの音を表す2つの波形トラックを含むシーケンスデータが再生対象である場合、コールバック制御モジュールは、右チャネルの音についての音響効果の付与を担当する音信号処理プラグインについては、書き込み処理モジュールから最初のコールバック指示を受信した時点で1回目のコールバックを行い、以降、コールバック指示を受信する度にそのコールバックを行う。一方、左チャネルの音についての音響効果の付与を担当する音信号処理プラグインについては、コールバック制御モジュールは、コールバック指示を8回目に受信した時点で1回目のコールバックを行い、以降、コールバック指示を受信する度にそのコールバックを行う。このように、音信号処理プラグイン毎に1回目のコールバックの実行タイミングを異ならせる理由は、以下の通りである。
図3(a)は、書き込み処理モジュールからのコールバック指示を受信する度に音信号処理プラグインを1つだけコールバックした場合に制御部110にかかる処理負荷(例えば、CPU利用率)を縦軸、コールバック指示の受信回数を横軸としてプロットしたグラフである。図3(a)を参照すれば明らかように、16回目、32回目および48回目のコールバックによる処理負荷が他の場合に比較して高くなっていることが判る。前述したように、本実施形態に係る音信号処理プラグインは、256サンプル分の時系列サンプルデータが信号処理用バッファに蓄積されるまでは音信号処理を開始しない一方、1回のコールバックあたり16サンプル分の時系列サンプリングデータしか信号処理用バッファに移動されないため、1〜15回目のコールバックでは信号処理用バッファへのデータ蓄積処理のみが実行され、16回目のコールバックで初めて高速フーリエ変換等の信号処理が実行される。このため、16回目、32回目および48回目のコールバックによる処理負荷が他の場合に比較して高くなるのである。
音信号処理プラグインを利用した従来の楽音再生制御では、複数のプラグインをコールバックする際に、その1回目のコールバックの実行タイミングを揃えていたため様々な弊害が生じていた。図3(b)にて実線で示すグラフは、書き込み処理モジュールからのコールバック指示を受信する度に音信号処理プラグインを2個ずつコールバックした場合(すなわち、2つのプラグインについて1回目のコールバックの実行タイミングを揃えて、そのコールバック制御を開始した場合)に制御部110にかかる処理負荷を縦軸、コールバック指示の受信回数を横軸としてプロットしたグラフである。このように、1回目のコールバックの実行タイミングを揃えて2個のプラグインのコールバック制御を開始してしまうと、各コールバックタイミングで制御部110に係る処理負荷は図3(a)の場合における処理負荷の2倍になる。そして、16回目、32回目および48回目のコールバックの際には、各プラグインについて負荷の高い処理が重なるため、制御部110にかかる処理負荷は極めて高くなり、図3(b)に示す例では、100%に近い値になる。このため、1回目のコールバックタイミングを揃えて3個以上のプラグインのコールバック制御を開始してしまうと以下のような問題が生じる。図3(c)は、1回目のコールバックタイミングを揃えて3個のプラグインのコールバック制御を行う場合に各プラグインの実行時間を、横軸を時間軸として示した図である。この図3(c)では、ハッチングにより各プラグインのスレッド単位での実行時間が示されている。図3(c)に示すように、3つ目のプラグインについては、17回目のコールバックタイミングの到来までに、16回目のコールバックにより開始した信号処理を完了できず、再生音が途切れたり、システムダウンが発生するといった問題が生じ得る。
これに対して、本実施形態では、各々が左右のチャネルの音を表す2つの波形トラックを含むシーケンスデータが再生対象である場合、右チャネルの音についての音響効果の付与を担当する音信号処理プラグインと、左チャネルの音についての音響効果の付与を担当する音信号処理プラグインとで、1回目のコールバックの実行タイミングをずらしてコールバック制御を行うため、図4に示すように処理負荷の集中が緩和される。その理由は以下の通りである。
右チャネルの音についての音響効果の付与を担当する音信号処理プラグインについては、書き込み処理モジュールから最初のコールバック指示を受信した時点で1回目のコールバックが行われるため、図4にて点線で示すように、16回目、32回目および48回目のコールバック指示の受信の際のコールバックにより処理負荷が最大となる。一方、左チャネルの音についての音響効果の付与を担当する音信号処理プラグインについては、コールバック指示を8回目に受信した時点で1回目のコールバックが行われるため、図4にて一点鎖線で示すように、24回目、40回目および56回目のコールバック指示の受信の際のコールバックによる処理負荷が最大になる。このように、各音信号処理プラグインの実行による処理負荷が最大になるタイミングが一致しないため、制御部110に係る処理負荷は最大でも60%程度に抑えられるのである。
本実施形態では、2つの音信号処理プラグインのコールバック制御を行う場合を例にとって楽音再生装置1の作用効果を説明したが、3つ以上の音信号処理プラグインのコールバック制御を行う場合についても、各音信号処理プラグインの1回目のコールバックタイミングを異ならせることによって、処理負荷の集中を緩和することができる。例えば、各音信号処理プラグインについてM回目のコールバックによる処理負荷が最大になることが判っている状況下で、N個の音信号処理プラグインのコールバック制御を行う場合には、各音信号処理プラグインの1回目のコールバックタイミングをM/Nずつずらせば良い。ここで、音信号処理プラグンの処理ブロックサイズがKサンプル分であり、読み出し用バッファのデータサイズが1つの波形トラックあたりJサンプル分である場合には、上記Mの値はK/Jになる。
以上に説明したように、本実施形態によれば、複数トラックからなるシーケンスデータに基づく楽音再生処理をソフトウェア処理で実現する際に処理負荷の集中を回避することが可能になる。また、本実施形態では、各音信号処理プラグインについての1回目のコールバックの実行タインミングを適宜調整することによって上記処理負荷の集中が回避されるのであるから、既存の音信号処理プラグインに改造を加える必要はなく、また、楽音再生装置に搭載するメモリ量を増加させる必要もないため、楽音再生装置の高価格化を招くこともない。
以上、本発明の一実施形態について説明したが、係る実施形態に以下に述べる変形を加えても良いことは勿論である。
(1)上述した実施形態では、音信号処理プラグインの処理ブロックサイズが予め判っている場合について説明した。しかしながら、上記処理ブロックサイズが判らない場合(例えば、処理ブロックサイズが公表されていない場合)には、乱数や擬似乱数、素数を利用して上記1回目のコールバックの実行タイミングを音信号処理プラグイン毎に定めることにより、負荷分散を図っても良い。例えば、素数を利用する態様の具体例としては、例えば4つの音信号処理プラグインのコールバック制御を行う場合、1つ目のプラグインについては、最初のコールバック指示の受信時点で1回目のコールバックを行い、2つ目のプラグインについては2回目のコールバック指示の受信時点で1回目のコールバックを行い、3つ目のプラグインについては3回目のコールバック指示の受信時点で1回目のコールバックを行い、4つ目のプラグインについては5回目のコールバック指示の受信時点で1回目のコールバックを行うようにすれば良い。また、各プラグインの1回目のコールバックの実行タイミングを揃えてコールバック制御を行った場合に、何回目のコールバックで制御部110に係る処理負荷が最大になるかを計測する計測手段を設け、その計測結果から上記処理ブロックサイズを推定しても良い。
(2)上述した実施形態では、本発明に係る楽音再生装置に特徴的な音信号処理プラグインのコールバック処理を制御部110に実行させるプログラム(すなわち、シーケンサプログラム153)が楽音再生装置1の不揮発性記憶部150に予め格納されている(すなわち、予めインストールされている)場合について説明した。しかしながら、CD−ROMやDVDなどのコンピュータ装置読み取り可能な記録媒体に上記シーケンサプログラムを書き込んで配布し、係る記録媒体を用いて一般的なコンピュータ装置に上記シーケンサプログラムをインストールしても良い。また、インターネットなどの電気通信回線を介したダウンロードにより上記シーケンサプログラムを配布し、一般的なコンピュータ装置にインストールしても良い。
本発明の一実施形態に係る楽音再生装置1の構成例を示す図である。 同楽音再生装置1の制御部110が各種プログラムにしたがって実行する処理の概要を説明するための図である。 音信号処理プラグインの並列実行により生じる従来の問題点を説明するための図である。 本発明により従来の問題点が解消されることを説明するための図である。
符号の説明
1…楽音再生装置、110…制御部、120…外部接続IF群、130…サウンドシステム、140…揮発性記憶部、150…不揮発性記憶部、151…OSプログラム、152…音信号処理ライブラリ、153…シーケンサプログラム、160…バス。

Claims (5)

  1. 記憶手段と、音信号のサンプルを示すトラックデータを用いた音信号処理を実行するプログラムであって、コールバックされる毎に、前記記憶手段の読み出し用バッファに処理対象である所定サンプル数分のトラックデータが記憶されている場合にそのトラックデータを前記記憶手段の信号処理用バッファに移動させ、コールバックされたとき、前記信号処理用バッファに前記所定サンプル数よりも多いサンプル数である処理ブロックサイズ分のトラックデータが記憶されている場合のこの処理ブロックサイズ分のトラックデータを用いた音信号処理を実行する音信号処理プログラムを利用して楽音の再生を行う楽音再生装置において、
    複数のトラックデータからなるシーケンスデータを受け取って、前記読み出し用バッファに書き込み、前記読み出し用バッファに蓄積されたシーケンスデータの1トラックデータ当たりのサンプル数が所定サンプル数になる毎に、コールバック実行指示を発生する書き込み手段と、
    前記シーケンスデータを構成する複数のトラックデータを用いた音信号処理を行う複数の音信号処理プログラムを前記記憶手段のプログラム実行領域に記憶させ、前記コールバック指示が与えられる毎に前記複数の音信号処理プログラムのコールバックを実行する手段であり、1回目のコールバック指示が与えられたときには、前記複数の音信号処理プログラムのコールバックを音信号処理プログラム毎に異なるタイミングで実行し、2回目以降のコールバック指示が与えられたときには、前記複数の音信号処理プログラムのコールバックを同時に実行するコールバック制御手段と、
    を有することを特徴とする楽音再生装置。
  2. 前記コールバック制御手段は、前記処理ブロックサイズ、前記所定サンプル数、および前記シーケンスデータに含まれるトラックの数に応じて定まる間隔ずつ前記各音信号処理プログラムの1回目のコールバックの実行タイミングを異ならせる
    ことを特徴とする請求項1に記載の楽音再生装置。
  3. 前記コールバック制御手段は、乱数または素数を利用して前記1回目のコールバックの実行タイミングを音信号処理プログラム毎に定める
    ことを特徴とする請求項1に記載の楽音再生装置。
  4. 前記各音信号処理プログラムの1回目のコールバックを同時に実行した場合に、何回目のコールバックの実行で処理負荷が最大になるかを計測する計測手段を備え、
    前記コールバック制御手段は、前記計測手段による計測結果から前記処理ブロックサイズを求め、その処理ブロックサイズ、前記所定サンプル数、および前記シーケンスデータに含まれるトラックの数に応じて定まる間隔ずつ前記各音信号処理プログラムの1回目のコールバックの実行タイミングを異ならせる
    ことを特徴とする請求項1に記載の楽音再生装置。
  5. コンピュータ装置を、音信号のサンプルを示すトラックデータを用いた音信号処理を実行するプログラムであって、コールバックされる毎に、前記コンピュータ装置の読み出し用バッファに処理対象である所定サンプル数分のトラックデータが記憶されている場合にそのトラックデータを前記コンピュータ装置の信号処理用バッファに移動させ、コールバックされたとき、前記信号処理用バッファに前記所定サンプル数よりも多いサンプル数である処理ブロックサイズ分のトラックデータが記憶されている場合のこの処理ブロックサイズ分のトラックデータを用いた音信号処理を実行する音信号処理プログラムを利用して楽音の再生を行う楽音再生装置として機能させるプログラムにおいて、
    前記コンピュータ装置を、
    複数のトラックデータからなるシーケンスデータを受け取って、前記読み出し用バッファに書き込み、前記読み出し用バッファに蓄積されたシーケンスデータの1トラックデータ当たりのサンプル数が所定サンプル数になる毎に、コールバック実行指示を発生する書き込み手段と、
    前記シーケンスデータを構成する複数のトラックデータを用いた音信号処理を行う複数の音信号処理プログラムを前記コンピュータ装置のプログラム実行領域に記憶させ、前記コールバック指示が与えられる毎に前記複数の音信号処理プログラムのコールバックを実行する手段であり、1回目のコールバック指示が与えられたときには、前記複数の音信号処理プログラムのコールバックを音信号処理プログラム毎に異なるタイミングで実行し、2回目以降のコールバック指示が与えられたときには、前記複数の音信号処理プログラムのコールバックを同時に実行するコールバック制御手段と、
    して機能させることを特徴とするプログラム。
JP2007110146A 2007-04-19 2007-04-19 楽音再生装置およびプログラム Expired - Fee Related JP5169000B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007110146A JP5169000B2 (ja) 2007-04-19 2007-04-19 楽音再生装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007110146A JP5169000B2 (ja) 2007-04-19 2007-04-19 楽音再生装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2008268468A true JP2008268468A (ja) 2008-11-06
JP5169000B2 JP5169000B2 (ja) 2013-03-27

Family

ID=40048074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007110146A Expired - Fee Related JP5169000B2 (ja) 2007-04-19 2007-04-19 楽音再生装置およびプログラム

Country Status (1)

Country Link
JP (1) JP5169000B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0997064A (ja) * 1995-09-29 1997-04-08 Yamaha Corp 自動演奏データ処理装置
JP2005215699A (ja) * 2005-03-24 2005-08-11 Yamaha Corp 音源装置
JP3796752B2 (ja) * 2003-09-24 2006-07-12 ヤマハ株式会社 音楽演奏プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0997064A (ja) * 1995-09-29 1997-04-08 Yamaha Corp 自動演奏データ処理装置
JP3796752B2 (ja) * 2003-09-24 2006-07-12 ヤマハ株式会社 音楽演奏プログラム
JP2005215699A (ja) * 2005-03-24 2005-08-11 Yamaha Corp 音源装置

Also Published As

Publication number Publication date
JP5169000B2 (ja) 2013-03-27

Similar Documents

Publication Publication Date Title
US7813514B2 (en) Apparatus and method for checking loudspeaker
US6366971B1 (en) Audio system for playback of waveform sample data
JP5534388B2 (ja) 楽音生成装置
CN108182930B (zh) 音效处理方法、设备及音视频点播系统
US8263849B2 (en) Flash memory based stored sample electronic music synthesizer
EP2313827B1 (en) Method and system for measuring task load
JP2976429B2 (ja) アドレス制御回路
JP5169000B2 (ja) 楽音再生装置およびプログラム
JP4438766B2 (ja) 楽音発生装置、及びプログラム
WO2019093307A1 (ja) 音響装置および音響制御プログラム
JP2019174526A (ja) 音楽再生システム、端末装置、音楽再生方法、及びプログラム
KR20010021575A (ko) 음 발생 장치 및 방법
CN114363769A (zh) 数字信号处理装置以及数字信号处理装置的控制方法
US8492635B2 (en) Music sound generation apparatus, music sound generation system, and music sound generation method
US11418883B2 (en) Audio interface apparatus and recording system
KR20040104200A (ko) 상이한 드라이버의 오디오데이터를 내부 소프트웨어만으로제어하는 장치 및 이를 제어하는 방법
JP4254677B2 (ja) 楽音発生装置および楽音発生処理のプログラム
JP3781171B2 (ja) 楽音発生方法
JP7557323B2 (ja) ディジタル信号処理装置及びディジタル信号処理装置の制御方法
US11556303B2 (en) Digital signal processing device and control method of digital signal processing device
JP5510813B2 (ja) 楽音生成装置
JPS6118995A (ja) 演奏システム
JP2684820B2 (ja) サラウンド回路
JP4120979B2 (ja) 波形再生装置
JP3755909B2 (ja) 信号処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120425

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121217

LAPS Cancellation because of no payment of annual fees