JP7408956B2 - ライブラリプログラム、リンクプログラム、及び、音処理装置 - Google Patents

ライブラリプログラム、リンクプログラム、及び、音処理装置 Download PDF

Info

Publication number
JP7408956B2
JP7408956B2 JP2019160316A JP2019160316A JP7408956B2 JP 7408956 B2 JP7408956 B2 JP 7408956B2 JP 2019160316 A JP2019160316 A JP 2019160316A JP 2019160316 A JP2019160316 A JP 2019160316A JP 7408956 B2 JP7408956 B2 JP 7408956B2
Authority
JP
Japan
Prior art keywords
sound
dsp
code
processing
sound 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.)
Active
Application number
JP2019160316A
Other languages
English (en)
Other versions
JP2021040232A (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.)
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 JP2019160316A priority Critical patent/JP7408956B2/ja
Priority to US17/008,935 priority patent/US11567727B2/en
Publication of JP2021040232A publication Critical patent/JP2021040232A/ja
Application granted granted Critical
Publication of JP7408956B2 publication Critical patent/JP7408956B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/162Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/02Arrangements for generating broadcast information; Arrangements for generating broadcast-related information with a direct linking to broadcast information or to broadcast space-time; Arrangements for simultaneous generation of broadcast information and broadcast-related information
    • H04H60/04Studio equipment; Interconnection of studios

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Circuit For Audible Band Transducer (AREA)

Description

本発明は、ライブラリプログラム、リンクプログラム、及び、音処理装置に関する。
従来から、音処理装置に含まれるデバイスに対応するライブラリプログラムを提供することが提案されている。デバイスに対応するライブラリプログラムを提供する例として、特許文献1には、使用可能なプリンタごとに、動的リンクするライブラリプログラムを記憶し、ユーザにより選択されたプリンタのライブラリプログラムを検索するプリンタシステムが開示されている。
特開2001-075758号公報
特許文献1の技術では、デバイスごとにライブラリプログラムを開発する必要があり、ライブラリプログラムの開発に手間がかかる。以上の事情を考慮して、本開示は、デバイスに応じたライブラリプログラムを開発する手間を低減させることを目的とする。
以上の課題を解決するために、本開示のひとつの態様に係るライブラリプログラムは、音処理装置に含まれるプロセッサが実行するライブラリプログラムであって、前記プロセッサが有する命令セットを用いて音処理のうち第1処理を記述した第1実行コードと、第1デバイスが有する命令セットを用いて前記音処理のうち第2処理を記述した第2実行コードと、第2デバイスが有する命令セットを用いて前記第2処理を記述した第3実行コードと、を含み、前記プロセッサに、前記第1実行コードを実行する処理と、前記音処理装置が前記第1デバイスを有する場合、前記第2実行コードを前記第1デバイスに送信することにより、前記第1デバイスが前記第2処理を実行可能な状態に設定する処理と、前記音処理装置が前記第2デバイスを有する場合、前記第3実行コードを前記第2デバイスに送信することにより、前記第2デバイスが前記第2処理を実行可能な状態に設定する処理と、を実行させる。
本開示のひとつの態様に係るライブラリプログラムは、音処理装置に含まれるプロセッサが実行するライブラリプログラムであって、前記プロセッサが有する第1命令セットを用いて音処理のうち第1処理を記述した第1実行コードと、第2命令セットを用いて前記音処理のうち第2処理を記述した第2実行コードと、デバイスが有する命令セットを用いて前記第2処理を記述した第3実行コードと、を含み、前記プロセッサに、前記第1実行コードを実行する処理と、前記プロセッサが前記第2命令セットを有する場合、前記第2実行コードを実行する処理と、前記音処理装置が前記デバイスを有する場合、前記第3実行コードを前記デバイスに送信することにより、前記デバイスが前記第2処理を実行可能な状態に設定する処理と、を実行させる。
本開示のひとつの態様に係る音処理装置は、プロセッサと、前記プロセッサが有する命令セットを用いて音処理のうち第1処理を記述した第1実行コードと、第1デバイスが有する命令セットを用いて前記音処理のうち第2処理を記述した第2実行コードと、第2デバイスが有する命令セットを用いて前記第2処理を記述した第3実行コードとを含むライブラリプログラムを記憶する記憶部と、を含み、前記プロセッサが、前記第1実行コードを実行する処理と、前記音処理装置が前記第1デバイスを有する場合、前記第2実行コードを前記第1デバイスに送信することにより、前記第1デバイスが前記第2処理を実行可能な状態に設定する処理と、前記音処理装置が前記第2デバイスを有する場合、前記第3実行コードを前記第2デバイスに送信することにより、前記第2デバイスが前記第2処理を実行可能な状態に設定する処理と、を実行する。
本開示の第1実施形態にかかる音処理装置100の外観を例示する平面図。 第1構成における音処理装置100aを示すブロック図。 第2構成における音処理装置100bを示すブロック図。 音処理ライブラリ153が有するデータを示す図。 音処理装置100aの機能を示す図。 書込部33の処理後における主記憶装置14の記憶内容を示す図。 音処理装置100の動作を示すフローチャートを示す図(その1)。 音処理装置100の動作を示すフローチャートを示す図(その2)。 音処理ライブラリ153に対する動的リンク処理を示すフローチャートを示す図。 第3構成における音処理装置100cを示すブロック図。 音処理ライブラリ153cが有するデータを示す図。 音処理装置100cの機能を示す図。 書込部33cの処理後における主記憶装置14の記憶内容を示す図。 第2実施形態における音処理装置100の動作を示すフローチャートを示す図(その1)。 第2実施形態における音処理装置100の動作を示すフローチャートを示す図(その2)。 音処理ライブラリ153cに対する動的リンク処理を示すフローチャートを示す図。
<第1実施形態>
図1は、本開示の第1実施形態にかかる音処理装置100の外観を例示する平面図である。音処理装置100は、音処理装置100に入力された複数のチャンネルの音信号Sinを混合し、混合して得られた音信号Soutを出力するミキサである。各チャンネルの音信号Sinは、例えば、マイクロフォンによって収音された音を表す信号と、電気弦楽器等の電気楽器から出力された信号と、電子オルガン等の電子楽器から出力された信号とのうち少なくとも一つである。図1に例示する音処理装置100には、音信号Sin1と音信号Sin2という2チャンネルの音信号Sinが入力される。音信号Soutは、例えば、スピーカー又はヘッドホン等の放音装置へ出力される。音信号Sin及び音信号Soutは、アナログ信号である。
音処理装置100は、各チャンネルの音信号Sinに対して音処理を実行する。音処理は、各チャンネルの音信号Sinが示す音に関する処理であり、音信号処理と、音信号処理に用いるパラメータに関するパラメータ処理と、を含む。音信号処理は、各チャンネルの音信号Sinに対して何らかの加工を施す処理である。音信号処理は、「第2処理」の一例である。本開示の音処理装置100が実行可能な音信号処理は、音信号の音質を調整する処理、及び、複数のチャンネルの音信号を混合する処理である。音信号の音質を調整する処理は、例えば、音信号の周波数特性を調整する処理である。音信号Sinの周波数特性を調整する処理は、例えば、フィルタ処理、及び、イコライザ処理である。複数のチャンネルの音信号Sinを混合する処理は、ミキシング処理である。
フィルタ処理は、各チャンネルの音信号Sinの或る周波数の成分を低減する処理である。フィルタ処理には、例えば、遮断周波数より高い周波数の成分を低減するハイパスフィルタ(High Pass Filter:HPF)処理、及び、遮断周波数より低い周波数の成分を低減するローパスフィルタ(Low Pass Filter:LPF)処理がある。第1実施形態において、音処理装置100は、フィルタ処理として、HPF処理を実行する。
イコライザ処理は、各チャンネルの音信号Sinに含まれる複数の周波数帯域の各々における音量を、ユーザの指示に応じて増減させる処理である。ミキシング処理は、複数のチャンネルの音信号Sinを、ユーザが指示した混合比により混合する処理である。
音処理装置100は、表示装置11と、操作装置12とを含む。表示装置11は、各種の画像をユーザに表示する。例えば、表示装置11は、液晶ディスプレイ又は有機EL(ElectroLuminescence)ディスプレイである。
操作装置12は、ユーザからの指示を受け付ける入力機器である。操作装置12は、ユーザが操作する複数の操作子を含む。複数の操作子は、各チャンネルの音信号Sinに対応するHPFボタン121と、各チャンネルの音信号Sinに対応するイコライザつまみ122と、各チャンネルの音信号Sinに対応するフェーダー123とである。HPFボタン121は、ユーザによって押下された場合に、各チャンネルの音信号Sinに対してHPFを有効に設定するボタンである。イコライザつまみ122は、各チャンネルの音信号Sinの複数の周波数帯域の各々におけるゲインを調節する回転式のつまみである。図1に例示するイコライザつまみ122は、低周波数帯域のゲインを調整するつまみと、中周波数帯域のゲインを調整するつまみと、高周波数帯域のゲインを調整するつまみとを有する。フェーダー123は、各チャンネルの音信号Sinの混合比を調整するつまみである。
音処理装置100には、例えば、以下に示す2つの構成がある。図2に第1構成における音処理装置100aを示し、図3に第2構成における音処理装置100bを示す。
図2は、第1構成における音処理装置100aを示すブロック図である。音処理装置100aは、図1に例示した表示装置11及び操作装置12に加えて、CPU(Central Processing Unit)13、主記憶装置14、補助記憶装置15、第1DSP(Digital Signal Processor)16a、AD変換装置21、及び、DA変換装置22を有する。なお、CPU13は、「プロセッサ」の一例である。第1DSP16aは、「第1デバイス」の一例である。主記憶装置14及び補助記憶装置15は、「記憶部」の一例である。主記憶装置14は、「揮発性の記憶部」の一例である。
表示装置11、操作装置12、CPU13、主記憶装置14、補助記憶装置15、及び、第1DSP16aは、システムバス17によって互いにアクセスされる。システムバス17は、CPU13と他の装置をアクセスするためのバスである。第1DSP16a、AD変換装置21、及び、DA変換装置22は、オーディオバス24によって互いにアクセスされる。オーディオバス24は、音信号を伝送するためのバスである。
CPU13は、音処理装置100aの各要素を制御する。CPU13は、命令セットを有する。命令セットとは、プロセッサが使用可能な命令の集合である。CPU13が有する命令セットには、例えば、加算命令、乗算命令、比較命令、及び、分岐命令等が含まれる。
主記憶装置14は、CPU13が各種のデータを書き込み及び読み出しする揮発性の記憶装置である。主記憶装置14には、例えば、SRAM(Static Random Access Memory)又はDRAM(Dynamic Random Access Memory)が採用される。補助記憶装置15は、主記憶装置14を補助する不揮発性の記憶装置である。補助記憶装置15には、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)が採用される。補助記憶装置15は、リンクプログラム151、音信号パラメータ152、及び、音処理ライブラリ153を記憶する。リンクプログラム151は、ライブラリプログラムを動的リンクするプログラムである。リンクプログラム151は、一般的には、OS(Operating System)の一部である。
以下、ライブラリプログラムを、単に、「ライブラリ」と称する。ライブラリは、単体ではプログラムとして動作せず、静的リンク又は動的リンクによって、プログラムの一部として動作する。静的リンクは、実行形式のプログラムの構築時にライブラリを組み込む方式である。動的リンクは、CPU13が実行するプロセスからライブラリが呼び出された場合に、主記憶装置14にライブラリを書き込む方式である。プロセスは、プログラムを実行可能にするためのデータの集合体である。プロセスは、プロセスに割り当てられた主記憶装置14の記憶領域を含む。当該記憶領域には、プログラムの実行コードが記憶される。
音信号パラメータ152は、音信号処理により用いられるパラメータである。第1実施形態では、音信号パラメータ152は、イコライザ処理に用いる各周波数帯域のゲイン、及び、ミキシング処理に用いる各チャンネルの音信号Sinの混合比を含む。
音処理ライブラリ153は、読み出されることによって音処理を実行可能なライブラリである。音処理ライブラリ153は、CPU13が実行するプロセスから動的リンクにより呼び出される、いわゆる動的リンクライブラリである。
音処理は、CPU音処理と、前述の音信号処理とを含む。CPU音処理は、「第1処理」の一例である。CPU音処理は、音処理のうち、CPU13が実行する処理である。CPU音処理は、前述のパラメータ処理を含む。パラメータ処理は、パラメータ変換処理、及び、メモリ管理処理を含む。パラメータ変換処理は、ユーザから受け付けたパラメータを、音信号処理により受け付け可能なパラメータに変換する処理である。パラメータ変換処理は、「変換処理」の一例である。ユーザから受け付けたパラメータは、「ユーザから受け付けたデータ」の一例である。
第1実施形態において、ユーザから受け付けたパラメータとは、イコライザつまみ122が示す各周波数帯域のゲイン、及び、フェーダー123が示す音信号Sinの混合比である。例えば、パラメータ変換処理において、CPU13は、イコライザつまみ122が示す各周波数帯域のゲインに、所定の係数を乗算することにより、音信号処理により受け付け可能なゲインに変換する。以下の説明では、パラメータ変換処理後のゲインを、「ゲイン係数」と称する。同様に、パラメータ変換処理後の混合比を、「混合比係数」と称する。
メモリ管理処理は、補助記憶装置15に記憶された音信号パラメータ152を、操作装置12に対するユーザからの指示に応じて更新する処理である。音信号パラメータ152は、主記憶装置14に記憶されていてもよい。以下、説明の簡略化のため、単に、音信号パラメータ152は、補助記憶装置15のみに記憶されているとする。例えば、メモリ管理処理では、CPU13は、ユーザの操作によってイコライザつまみ122の向きが変更された場合に、音信号パラメータ152に含まれるゲインを、向き変更後のイコライザつまみ122が示すゲインに更新する。
AD変換装置21は、アナログ信号である各チャンネルの音信号Sinを外部から受け付け、デジタル信号である音信号Dinに変換し、第1DSP16aに供給する。DA変換装置22は、第1DSP16aから出力されたデジタル信号である音信号Doutを受け付け、アナログ信号である音信号Soutに変換して出力する。
第1DSP16aは、音信号処理を実行するプロセッサである。第1DSP16aは、CPU13とは異なる命令セットを有する。第1DSP16aが有する命令セットには、信号処理を高速に実行するために、例えば、積和演算命令、及び、並列処理命令等が含まれる。積和演算命令は、乗算の結果を順次加算する命令である。並列処理命令は、複数のデータをまとめて処理する命令である。
第1DSP16aは、チャンネルごとに、フィルタ処理及びイコライザ処理を実行する。チャンネルごとに処理された音信号は、各チャンネルの音信号Sinの混合比に応じてオーディオバス24に出力され、オーディオバス24内で混合される。
図3は、第2構成における音処理装置100bを示すブロック図である。音処理装置100bは、図1に例示した表示装置11及び操作装置12に加えて、CPU13、主記憶装置14、補助記憶装置15、第2DSP16b、AD変換装置21、及び、DA変換装置22を有する。第2DSP16bは、「第2デバイス」の一例である。音処理装置100bの構成は、音処理装置100aの構成と比較して、第1DSP16aが第2DSP16bに置き換わったのみである。
第2DSP16bは、音信号処理を実行するプロセッサである。第2DSP16bは、CPU13とも第1DSP16aとも異なる命令セットを有する。第2DSP16bは、第1DSP16aと同様に、積和演算命令、及び、並列処理命令等を有する。しかしながら、例えば、第1DSP16aと第2DSP16bとでは、同じ種類の命令を有しても、例えば、命令のデータ長が異なることがあり、また、命令に含まれるオペコードの符号が異なることがある。オペコードとは、命令を示すビット列のうち、命令の種類を指定する部分である。
図4は、音処理ライブラリ153が有するデータを示す図である。音処理ライブラリ153は、パラメータ変換コード1531、メモリ管理コード1532、DSP設定コード1533、第1DSP識別情報1535a、第1音信号コード1536a、第2DSP識別情報1535b、及び、第2音信号コード1536bを含む。
以下の説明では、同種の要素を区別する場合には、音処理装置100a、音処理装置100bのように参照符号を使用し、同種の要素を区別しない場合には、音処理装置100のように参照符号のうちの共通番号だけを使用することがある。同様に、第1DSP16aと第2DSP16bとを区別しない場合には、「DSP16」と表記することがある。同様に、第1DSP識別情報1535aと第2DSP識別情報1535bとを区別しない場合には、「DSP識別情報1535」と表記することがある。同様に、第1音信号コード1536aと第2音信号コード1536bとを区別しない場合には、「音信号コード1536」と表記することがある。
パラメータ変換コード1531及びメモリ管理コード1532は、「第1実行コード」の一例である。第1DSP識別情報1535aは、「第1識別情報」の一例である。第1音信号コード1536aは、「第2実行コード」の一例である。第2DSP識別情報1535bは、「第2識別情報」の一例である。第2音信号コード1536bは、「第3実行コード」の一例である。第1DSP16aは、「第2実行コードを実行可能なデバイス」の一例である。第2DSP16bは、「第3実行コードを実行可能なデバイス」の一例である。
パラメータ変換コード1531は、CPU13が有する命令セットを用いてパラメータ変換処理を記述した実行コードである。メモリ管理コード1532は、CPU13が有する命令セットを用いてメモリ管理処理を記述した実行コードである。DSP設定コード1533は、CPU13が有する命令セットを用いて、DSP16を設定するDSP設定処理を記述した実行コードである。DSP設定処理は、前述のCPU音処理に含まれる。DSP設定処理には、第1DSP16aを設定する処理と、第2DSP16bを設定する処理とが含まれる。さらに、DSP設定処理には、第1DSP16aに音信号処理の実行を指示する処理と、第2DSP16bに音信号処理の実行を指示する処理とが含まれる。第1DSP16aと第2DSP16bとでは、DSP16が有する命令の引数であるデータのサイズ、及び、複数のバイトで構成されるデータを並べる順序の種類等が相互に異なる場合があるため、DSP16それぞれに設定処理が必要となる場合がある。PC(Personal Computer)等の情報処理装置が実行するクロスコンパイラが、パラメータ変換処理、を記述したソースコードに基づいて、CPU13向けの実行コードを生成することにより、パラメータ変換コード1531を生成する。クロスコンパイラは、コンパイラを実行するプロセッサ以外のプロセッサ向けの実行コードを生成する機能を有するプログラムである。同様に、前述のクロスコンパイラは、メモリ管理処理、及び、DSP設定処理を記述したソースコードに基づいて、CPU13向けの実行コードを生成することにより、メモリ管理コード1532、及び、DSP設定コード1533を生成する。
第1DSP識別情報1535aは、第1DSP16aを識別する情報である。第1DSP識別情報1535aは、例えば、第1DSP16aの名称である。第1音信号コード1536aは、第1DSP16aが有する命令セットを用いて音信号処理を記述した実行コードである。例えば、前述のクロスコンパイラが、音信号処理を記述したソースコードに基づいて、第1DSP16a向けの実行コードを生成することにより、第1音信号コード1536aを生成する。
第1DSP識別情報1535aは、第1音信号コード1536aに対応付けられている。第2DSP識別情報1535bは、第2音信号コード1536bに対応付けられている。対応付けの例としては、下記に示す2つの態様がある。第1の態様では、音処理ライブラリ153内において、第1DSP識別情報1535aの次に、第1音信号コード1536aが格納されている。第2の態様では、音処理ライブラリ153内において、第1DSP識別情報1535aの次に、第1音信号コード1536aが格納された位置を示すオフセット値が格納されている。オフセット値は、音処理ライブラリ153内の先頭からのバイト数である。
第2DSP識別情報1535bは、第2DSP16bを識別する情報である。第2DSP識別情報1535bは、例えば、第2DSP16bの名称である。第2音信号コード1536bは、第2DSP16bが有する命令セットを用いて音信号処理を記述した実行コードである。例えば、前述のクロスコンパイラが、音信号処理を記述したソースコードに基づいて、第2DSP16b向けの実行コードを生成することにより、第2音信号コード1536bを生成する。
図5は、音処理装置100aの機能を示す図である。音処理装置100bの機能については、第1DSP16aが第2DSP16bに替わるのみであるため、図示を省略する。CPU13がリンクプログラム151を読み取り、リンクプログラム151を実行することによって、リンク処理部31として機能する。リンク処理部31は、音処理ライブラリ153を動的リンクする。リンク処理部31は、取得部32及び書込部33を含む。
取得部32は、音処理ライブラリ153を動的リンクにより呼び出す場合、音処理装置100が有するDSP16の識別情報IDDSPを取得する。識別情報IDDSPは、例えば、以下に示す3つの態様のいずれか1つによって生成され、補助記憶装置15に保存される。第1の態様において、音処理装置100の設計者が、識別情報IDDSPを生成する。第2の態様において、CPU13は、音処理装置100が有するDSP16にアクセスし、DSP16から取得した識別情報を、識別情報IDDSPとして生成する。第3の態様において、ユーザが、操作装置12の操作によって、識別情報IDDSPを生成する。
書込部33は、パラメータ変換コード1531と、メモリ管理コード1532と、DSP設定コード1533と、第1音信号コード1536a及び第2音信号コード1536bのうち、取得部32が取得した識別情報IDDSPと同一内容のDSP識別情報1535に対応付けられた実行コードとを、主記憶装置14に書き込む。図5の例示では、音処理装置100の構成が音処理装置100aであるため、書込部33は、パラメータ変換コード1531と、メモリ管理コード1532と、DSP設定コード1533と、第1音信号コード1536aとを、主記憶装置14に書き込む。音処理装置100の構成が音処理装置100bである場合、書込部33は、パラメータ変換コード1531と、メモリ管理コード1532と、DSP設定コード1533と、第2音信号コード1536bとを、主記憶装置14に書き込む。
図6は、書込部33の処理後における主記憶装置14の記憶内容を示す図である。主記憶装置14は、リンクプログラム151と、音処理ライブラリ153aとを記憶する。音処理ライブラリ153aは、パラメータ変換コード1531と、メモリ管理コード1532と、DSP設定コード1533と、第1音信号コード1536aとを有する。言い換えれば、音処理ライブラリ153aは、第1DSP識別情報1535aと、第2DSP識別情報1535bと、第2音信号コード1536bと、を有さない。
説明を図5に戻す。書込部33によって主記憶装置14に書き込まれたパラメータ変換コード1531、メモリ管理コード1532、及び、DSP設定コード1533をCPU13が読み取り、当該各コードを実行することによって、CPU音処理部35として機能する。CPU音処理部35は、CPU音処理を実行する。CPU音処理部35は、第1実行部36と、DSP設定部37とを含む。DSP設定部37は、「設定部」の一例である。
第1実行部36は、パラメータ変換コード1531及びメモリ管理コード1532を実行する。第1実行部36は、パラメータ変換処理によって得られた、音信号処理により受け付け可能なデータを、第1DSP16aに送信する。
第1実行部36は、音処理装置100が第1DSP16a及び第2DSP16bのいずれを有するかによらず、パラメータ変換コード1531及びメモリ管理コード1532を実行する。
DSP設定部37は、図5の例示では、音処理装置100が第1DSP16aを有するため、第1音信号コード1536aを第1DSP16aに送信することにより、第1DSP16aが音信号処理を実行可能な状態に設定する。音処理装置100が第2DSP16bを有する場合には、DSP設定部37は、第2音信号コード1536bを第2DSP16bに送信することにより、第2DSP16bが音信号処理を実行可能な状態に設定する。また、DSP設定部37は、DSP16に音信号処理の実行を指示する。
図5の例示では、第1DSP16aが第1音信号コード1536aを読み取り、第1音信号コード1536aを実行することによって、第2実行部39として機能する。
第2実行部39は、音信号処理を実行する。より具体的には、第2実行部39は、HPF処理、イコライザ処理、及び、ミキシング処理を実行する。フィルタ処理に関して、第2実行部39は、HPFボタン121が押下された場合に、HPF処理を実行する。イコライザ処理に関して、第2実行部39は、パラメータ変換処理による変換後の各周波数帯域のゲイン係数を用いてイコライザ処理を実行する。ミキシング処理に関して、第2実行部39は、パラメータ変換処理による変換後の混合比係数を用いてミキシング処理を実行する。
HPF処理及びイコライザ処理は、例えば、以下に示す2つの態様がある。第1の態様において、第2実行部39は、音信号Dinに対して高速フーリエ変換処理を実行して、各周波数帯域の成分を取得する。DSP16が有する命令セットには、高速フーリエ変換処理に特有の処理を効率良く実行するための命令が含まれる場合がある。第2実行部39は、各周波数帯域の成分を、パラメータ変換処理により変換されたデータを用いて処理し、逆高速フーリエ変換処理を実行して得られた結果を、音信号Doutとして出力する。
第2の態様において、第1DSP16aは、音信号Dinを複製し、複製した音信号Dinの各々に対して、抽出する周波数帯域が各々異なるバンドパスフィルタを実行して、各周波数帯域の成分を抽出する。第1DSP16aは、各周波数帯域の成分を、パラメータ変換処理により変換されたデータを用いて処理し、処理後の各周波数帯域の成分を合成して得られた結果を、音信号Doutとして出力する。
ミキシング処理について、第1DSP16aは、音信号Din1と音信号Din2とを、パラメータ変換処理により変換された音信号Sin1の混合比係数と音信号Sin2の混合比係数とにより、音信号Din1と音信号Din2とを混合して得られた結果を、音信号Doutとして出力する。
図7~図9を用いて、音処理装置100の動作を説明する。
図7及び図8は、音処理装置100の動作を示すフローチャートである。図7及び図8に示すフローチャートは、音処理装置100の電源が投入され、OSの起動が完了したことを契機に実行される。OSの起動が完了したため、OSの一部であるリンクプログラム151も読み出されている。従って、CPU13が、リンク処理部31として機能する。
ステップS1において、CPU13が、音処理プロセスを実行する。音処理プロセスは、音処理ライブラリ153を動的リンクによって呼び出すプロセスである。ステップS2において、音処理プロセスが動的リンクによって音処理ライブラリ153を呼び出した場合、リンク処理部31が、音処理ライブラリ153に対する動的リンク処理を実行する。
音処理プロセスが動的リンクによって音処理ライブラリ153を呼び出す契機は、以下に示す2つがある。第1の契機は、音処理プロセスが起動した時点である。第2の契機は、CPU13が、音処理プロセスに含まれる実行コード内で、音処理ライブラリ153を呼び出す関数を実行した時点である。
図9は、音処理ライブラリ153に対する動的リンク処理を示すフローチャートである。ステップS31において、取得部32は、音処理装置100が有するDSP16の識別情報IDDSPを取得する。次に、ステップS32において、取得部32は、補助記憶装置15に記憶された音処理ライブラリ153が、識別情報IDDSPと同一内容のDSP識別情報1535を有するか否かを判定する。識別情報IDDSPと同一内容のDSP識別情報1535を有する場合(S32:Yes)、書込部33は、ステップS33において、同一内容のDSP識別情報1535に対応する音信号コード1536と、パラメータ変換コード1531と、メモリ管理コード1532と、DSP設定コード1533とを、主記憶装置14に書き込む。ステップS33によって、CPU13がリンク処理部31及びCPU音処理部35として機能する。ステップS33の処理終了後、ステップS34において、リンク処理部31は、動的リンクに成功したことを出力し、図9に示す一連の処理を終了する。
識別情報IDDSPと同一のDSP識別情報1535を有さない場合(S32:No)、リンク処理部31は、ステップS36において、リンク処理部31は、音信号処理が実行できないことを示す文字列を表示装置11に表示する。次に、ステップS37において、リンク処理部31は、動的リンクに失敗したことを出力し、図9に示す一例の処理を終了する。
説明を図7に戻す。リンク処理部31は、ステップS3において、動的リンクに成功したか否かを判定する。動的リンクに失敗した場合(S3:No)、音処理装置100は、図7及び図8に示す一連の処理を終了する。
一方、動的リンクに成功した場合(S3:Yes)、ステップS4において、DSP設定部37は、音信号コード1536をDSP16に送信することにより、DSP16が音信号処理を実行可能な状態に設定する。次に、ステップS5において、DSP設定部37は、音信号処理のうちイコライザ処理及びミキシング処理の実行をDSP16に指示する。より具体的には、第1実行部36が、音信号パラメータ152に含まれるゲインを、イコライザ処理により受け付け可能なゲイン係数に変換する。DSP設定部37は、ゲイン係数をDSP16に送信する。DSP16は、受信したゲイン係数を用いてイコライザ処理を実行する。さらに、第1実行部36が、音信号パラメータ152に含まれる混合比を、ミキシング処理により受け付け可能な混合比係数に変換する。そして、DSP設定部37は、混合比係数をDSP16に送信する。DSP16は、受信した混合比係数を用いてミキシング処理を実行する。
ステップS5の処理終了後、ステップS6において、CPU13は、音処理装置100の動作終了指示を受け付けたか否かを判定する。例えば、図1に不図示の電源ボタンがオフに設定された場合、音処理装置100の動作終了指示を受け付けたと判断する。音処理装置100の動作終了指示を受け付けた場合(S6:Yes)、音処理装置100は、図7及び図8に示す一連の処理を終了する。
音処理装置100の動作終了指示を受け付けていない場合(S6:No)、CPU音処理部35は、ステップS7において、HPFボタン121の押下操作を受け付けたか否かを判定する。HPFボタン121の押下操作を受け付けた場合(S7:Yes)、DSP設定部37は、ステップS8において、HPF処理の実行指示をDSP16に送信する。DSP16は、HPF処理の実行指示を受け付けた後に入力された音信号Sinに対して、HPF処理を実行する。
ステップS8の処理終了後、又は、HPFボタン121の押下操作を受け付けていない場合(S6:No)、CPU音処理部35は、ステップS11において、イコライザつまみ122の向きが変更されたか否かを判定する。イコライザつまみ122の向きが変更された場合(S11:Yes)、第1実行部36は、ステップS12において、音信号パラメータ152に含まれるゲインを、向き変更後のイコライザつまみ122が示すゲインに更新する。次に、ステップS13において、第1実行部36は、更新されたゲインを、イコライザ処理により受け付け可能なゲイン係数に変換する。そして、ステップS14において、DSP設定部37は、変換したゲイン係数をDSP16に送信する。DSP16は、ゲインを受け付けた後に入力された音信号Sinに対して、受け付けたゲイン係数を用いてイコライザ処理を実行する。
ステップS14の処理終了後、又は、イコライザつまみ122の向きが変更されていない場合(S11:No)、ステップS21において、CPU音処理部35は、フェーダー123の位置が変更されたか否かを判定する。フェーダー123の位置が変更された場合(S21:Yes)、ステップS22において、第1実行部36は、音信号パラメータ152に含まれる混合比を、位置変更後のフェーダー123が示す混合比に更新する。次に、ステップS23において、第1実行部36は、更新された混合比を、ミキシング処理により受け付け可能な混合比係数に変換する。そして、ステップS24において、DSP設定部37は、変換した混合比係数をDSP16に送信する。DSP16は、混合比係数を受け付けた後に入力された複数のチャンネルの音信号Sinに対して、受け付けた混合比係数を用いてミキシング処理を実行する。
ステップS24の処理終了後、又は、フェーダー123の位置が変更されていない場合、CPU音処理部35は、ステップS6の処理に移行する。
以上に説明した通り、第1実施形態では、音処理装置100が第1DSP16aを有する場合も第2DSP16bを有する場合も、パラメータ変換コード1531及びメモリ管理コード1532は共用される。従って、パラメータ変換コード1531及びメモリ管理コード1532を共用しない場合と比較して、音処理ライブラリ153を開発する手間を低減できる。
第1実施形態では、第1実行部36は、音処理装置100が第1DSP16a及び第2DSP16bのいずれを有するかによらず、パラメータ変換コード1531及びメモリ管理コード1532を実行する。言い換えれば、パラメータ変換コード1531及びメモリ管理コード1532は、音処理装置100が音処理装置100aであっても音処理装置100bであっても共用されるため、音処理ライブラリ153を開発する手間を低減できる。
第1実施形態では、音処理ライブラリ153は、動的リンクライブラリである。以上の構成によれば、例えば、音処理装置100の開発元は、複数の音処理ライブラリ153をWebサイトに登録しなくてよい。従って、ユーザは、自身が有する音処理装置100の構成に適した音処理ライブラリ153がいずれであるのかを考慮せずに、Webサイトに登録されている1つの音処理ライブラリ153を音処理装置100に記憶させればよいため、利便性が向上する。仮に、音処理ライブラリ153が静的リンクライブラリである場合、音処理ライブラリ153には、音信号コード1536がDSP16ごとに存在する。従って、情報処理装置等で動作するリンクプログラムは、そのままではリンクできず、オプションとして、DSP16の識別情報を指定する必要がある。リンクプログラムの実行により得られたプログラムは、1種類のDSP16に対応するプログラムである。従って、開発元は、DSP16ごとのプログラムをWebサイトに登録する必要がある。ユーザは、DSP16ごとのプログラムの中から、自身が有する音処理装置100の構成に適したプログラムを選択する必要があるため、利便性が低下する。また、音処理ライブラリ153が動的リンクライブラリであれば、音処理ライブラリ153を更新する場合、音処理ライブラリ153のみを更新すればよい。一方、音処理ライブラリ153が静的リンクライブラリであれば、音処理ライブラリ153を更新する場合、音処理ライブラリがリンクされたプログラム全体を更新する必要がある。
第1実施形態において、CPU音処理は、パラメータ変換処理を含み、音信号処理は、HFP処理、イコライザ処理、及び、ミキシング処理を含む。従って、パラメータ変換処理をCPU13に実行させ、HFP処理、イコライザ処理、及び、ミキシング処理をDSP16に実行させることにより、負荷分散を図ることができる。
第1実施形態において、CPU音処理は、音信号パラメータ152を、操作装置12に対するユーザからの指示に応じて更新するメモリ管理処理を含む。パラメータ変換処理は、メモリ管理処理によって更新した当該パラメータを、音信号処理により受け付け可能なパラメータに変換する。従って、音処理装置100は、パラメータの更新がユーザから指示された場合に、更新したパラメータを用いてイコライザ処理、及び、ミキシング処理を実行できる。
第1実施形態において、書込部33は、第1音信号コード1536a及び第2音信号コード1536bのいずれか一方の実行コードを主記憶装置14に書き込み、他方の実行コードを主記憶装置14に書き込まない。従って、音処理装置100は、他方の実行コードを主記憶装置14に書き込む場合と比較して、主記憶装置14の消費量を抑えることができる。
<第2実施形態>
第2実施形態にかかる音処理装置100は、第1構成及び第2構成に加えて、DSP16を有さない第3構成を取り得る点で、第1実施形態にかかる音処理装置100と相違する。なお、以下に例示する第2実施形態において作用又は機能が第1実施形態と同等である要素については、以上の説明で参照の符号を流用して各々の詳細な説明を適宜に省略する。
図10は、第3構成における音処理装置100cを示すブロック図である。音処理装置100cは、表示装置11、操作装置12、CPU13c、主記憶装置14、補助記憶装置15c、AD変換装置21、及び、DA変換装置22を有する。CPU13c、AD変換装置21、及び、DA変換装置22は、オーディオバス24によって互いにアクセスされる。音処理装置100cの構成は、音処理装置100aの構成及び音処理装置100bの構成と比較して、DSP16を有さないのみである。
CPU13cは、音処理装置100cの各要素を制御する。CPU13cは、基本的な命令で構成された基本命令セットと、拡張的な命令で構成された拡張命令セットとを有する基本命令セットが、「第1命令セット」の一例である。拡張命令セットが、「第2命令セット」の一例である。
より具体的には、基本命令セットは、単一の命令で単一のデータを処理する命令の集合である。第1実施形態におけるCPU13が有する命令セットは、基本命令セットに相当する。拡張命令セットは、単一の命令で複数の演算を実行する命令、及び、単一の命令で複数のデータを同時に処理する命令の集合である。単一の命令で複数の演算を実行する命令は、例えば、積和演算命令である。単一の命令で複数のデータを同時に処理する命令は、並列処理命令である。
以下の記載では、第1実施形態のCPU13、すなわち、拡張命令セットを有さないCPU13を、「CPU13a」と表記する。CPU13aとCPU13cとを区別しない場合に、「CPU13」と表記する。
補助記憶装置15cは、リンクプログラム151c、音信号パラメータ152、及び、音処理ライブラリ153cを記憶する。リンクプログラム151cは、ライブラリを動的リンクするプログラムである。音処理ライブラリ153cは、読み出されることによって音処理を実行可能なライブラリである。
図11は、音処理ライブラリ153cが有するデータを示す図である。音処理ライブラリ153cは、音処理ライブラリ153が有するデータに加えて、CPU識別情報1538、及び、第3音信号コード1536cを含む。第3音信号コード1536cは、「第2命令セットを用いて前記音処理のうち第2処理を記述した第2実行コード」の一例である。第1音信号コード1536a及び第2音信号コード1536bは、「デバイスが有する命令セットを用いて前記第2処理を記述した第3実行コード」の一例である。第2実施形態では、DSP16が「デバイス」の一例である。
CPU識別情報1538は、CPU13を識別する情報である。CPU識別情報1538は、例えば、CPU13の種別を示す名称である。CPU識別情報1538は、第3音信号コード1536cに対応付けられている。
第3音信号コード1536cは、拡張命令セットを用いて音信号処理を記述した実行コードである。ただし、第3音信号コード1536cには、基本命令セットに含まれる命令が含まれてもよい。例えば、前述のクロスコンパイラが、音信号処理を記述したソースコードに基づいて、拡張命令セットを有するCPU13c向けの実行コードを生成することにより、第3音信号コード1536cを生成する。
図12は、音処理装置100cの機能を示す図である。CPU13cがリンクプログラム151cを読み取り、リンクプログラム151cを実行することによって、リンク処理部31cとして機能する。リンク処理部31cは、音処理ライブラリ153cを動的リンクする。リンク処理部31cは、取得部32c及び書込部33cを含む。
取得部32cは、音処理ライブラリ153cを動的リンクにより呼び出す場合、音処理装置100が有するCPU13が拡張命令セットを有するか否かを示す命令有無情報OPCPUを取得する。さらに、音処理装置100が有するCPU13が拡張命令セットを有さない場合、取得部32cは、音処理装置100が有するDSP16の識別情報IDDSPを取得する。例えば、音処理装置100が音処理装置100cである場合、取得部32cは、拡張命令セットを有することを示す命令有無情報OPCPUを取得する。
書込部33cは、命令有無情報OPCPUを参照して、音処理装置100が有するCPU13が拡張命令セットを有する場合、パラメータ変換コード1531と、メモリ管理コード1532と、CPU識別情報1538に対応付けられた第3音信号コード1536cとを、主記憶装置14に書き込む。
音処理装置100が有するCPU13が拡張命令セットを有さない場合、書込部33cは、パラメータ変換コード1531と、メモリ管理コード1532と、DSP設定コード1533と、第1音信号コード1536a及び第2音信号コード1536bのうち、取得部32が取得した識別情報IDDSPと同一内容のDSP識別情報1535に対応付けられた音信号コード1536とを、主記憶装置14に書き込む。
図13は、書込部33cの処理後における主記憶装置14の記憶内容を示す図である。主記憶装置14は、リンクプログラム151と、音処理ライブラリ153Cとを記憶する。音処理ライブラリ153Cは、パラメータ変換コード1531と、メモリ管理コード1532と、第3音信号コード1536cとを有する。言い換えれば、音処理ライブラリ153Cは、DSP設定コード1533と、第1DSP識別情報1535aと、第1音信号コード1536aと、第2DSP識別情報1535bと、第2音信号コード1536bと、を有さない。
説明を図12に戻す。書込部33cによって主記憶装置14に書き込まれたパラメータ変換コード1531、メモリ管理コード1532、及び、第3音信号コード1536cをCPU13cが読み取り、当該各コードを実行することによって、音処理部34として機能する。音処理部34は、音処理を実行する。音処理部34は、第1実行部36及び第2実行部39を含む。
図14~図16を用いて、音処理装置100の動作を説明する。
図14及び図15は、音処理装置100の動作を示すフローチャートである。ステップS41において、CPU13が、音処理プロセスを実行する。ステップS42において、ステップS2において、音処理プロセスが動的リンクによって音処理ライブラリ153を呼び出した場合、リンク処理部31cが、音処理ライブラリ153cに対する動的リンク処理を実行する。
図16は、音処理ライブラリ153cに対する動的リンク処理を示すフローチャートである。ステップS71において、取得部32cは、命令有無情報OPCPUを取得する。次に、取得部32cは、ステップS72において、命令有無情報OPCPUを参照して、CPU13が拡張命令セットを有するか否かを判定する。CPU13が拡張命令セットを有する場合(S72:No)、ステップS72において、書込部33cは、CPU識別情報1538に対応付けられた第3音信号コード1536cと、パラメータ変換コード1531と、メモリ管理コード1532とを、主記憶装置14に書き込む。次に、ステップS73において、リンク処理部31cは、動的リンクに成功したことを出力し、図16に示す一連の処理を終了する。
CPU13が拡張命令セットを有さない場合(S72:No)、取得部32cは、ステップS81において、音処理装置100が有するDSP16の識別情報IDDSPを取得する。次に、ステップS82において、取得部32cは、補助記憶装置15に記憶された音処理ライブラリ153cが、識別情報IDDSPと同一内容のDSP識別情報1535を有するか否かを判定する。識別情報IDDSPと同一内容のDSP識別情報1535を有する場合(S82:Yes)、書込部33cは、ステップS83において、同一のDSP識別情報1535に対応する音信号コード1536と、パラメータ変換コード1531と、メモリ管理コード1532と、DSP設定コード1533とを、主記憶装置14に書き込む。次に、リンク処理部31cは、ステップS73の処理を実行し、図16に示す一連の処理を終了する。
識別情報IDDSPと同一のDSP識別情報1535を有さない場合(S82:No)、リンク処理部31は、ステップS91において、リンク処理部31cは、音信号処理が実行できないことを示す文字列を表示装置11に表示する。次に、ステップS92において、リンク処理部31cは、動的リンクに失敗したことを出力し、図16に示す一例の処理を終了する。
説明を図14に戻す。図14及び図15に示すフローチャートでは、ステップS43移行の処理については、説明の簡略化のため、音処理装置100の構成が音処理装置100cである場合のみを示す。音処理装置100の構成が音処理装置100a又は音処理装置100bである場合は、音処理装置100の動作は、図7及び図8に示すフローチャートと同一であるため、図示及び説明を省略する。
リンク処理部31cは、ステップS43において、動的リンクに成功したか否かを判定する。動的リンクに失敗した場合(S43:No)、音処理装置100は、図14及び図15に示す一連の処理を終了する。
一方、動的リンクに成功した場合(S43:Yes)、ステップS44において、第2実行部39は、音信号処理のうちイコライザ処理及びミキシング処理を実行する。より具体的には、より具体的には、第1実行部36が、音信号パラメータ152に含まれるゲインを、イコライザ処理により受け付け可能なゲイン係数に変換し、第2実行部39は、ゲイン係数を用いてイコライザ処理を実行する。さらに、第1実行部36が、音信号パラメータ152に含まれる混合比を、ミキシング処理により受け付け可能な混合比係数に変換し、第2実行部39は、混合比係数を用いてミキシング処理を実行する。
ステップS44の処理終了後、ステップS45において、CPU13は、音処理装置100の動作終了指示を受け付けたか否かを判定する。音処理装置100の動作終了指示を受け付けた場合(S45:Yes)、音処理装置100は、図14及び図15に示す一連の処理を終了する。
音処理装置100の動作終了指示を受け付けていない場合(S45:No)、音処理部34は、ステップS46において、HPFボタン121の押下操作を受け付けたか否かを判定する。HPFボタン121の押下操作を受け付けた場合(S46:Yes)、ステップS47において、第2実行部39は、HPF処理を実行する。より詳細には、第2実行部39は、HPFボタン121の押下操作を受け付けた後に入力された音信号Sinに対して、HPF処理を実行する。
ステップS47の処理終了後、又は、HPFボタン121の押下操作を受け付けていない場合(S46:No)、音処理部34は、ステップS51において、イコライザつまみ122の向きが変更されたか否かを判定する。イコライザつまみ122の向きが変更された場合(S51:Yes)、第1実行部36は、ステップS52において、音信号パラメータ152に含まれるゲインを、向き変更後のイコライザつまみ122が示すゲインに更新する 。次に、ステップS53において、第1実行部36は、更新されたゲインを、イコライザ処理により受け付け可能なゲイン係数に変換する。そして、ステップS54において、第2実行部39は、ゲイン係数の変換後に入力された音信号Sinに対して、ゲイン係数を用いてイコライザ処理を実行する。
ステップS54の処理終了後、又は、イコライザつまみ122の向きが変更されていない場合(S51:No)、音処理部34は、ステップS61において、フェーダー123の位置が変更されたか否かを判定する。フェーダー123の位置が変更された場合(S61:Yes)、ステップS62において、音処理部34は、音信号パラメータ152に含まれる混合比を、位置変更後のフェーダー123が示す混合比に更新する。次に、ステップS63において、第1実行部36は、更新された混合比を、ミキシング処理により受け付け可能な混合比係数に変換する。そして、ステップS64において、第2実行部39は、混合比係数の変換後に入力された複数のチャンネルの音信号Sinに対して、混合比係数を用いてミキシング処理を実行する。
ステップS64の処理終了後、又は、フェーダー123の位置が変更されていない場合(S61:No)、音処理部34は、ステップS45の処理に移行する。
以上に説明した通り、第2実施形態では、CPU13が拡張命令セットを有する場合には、CPU13が音信号処理を実行できる。CPU13が音信号処理を実行できる場合も音処理装置100がDSP16を有する場合も、パラメータ変換コード1531及びメモリ管理コード1532は共用される。従って、パラメータ変換コード1531及びメモリ管理コード1532を共用しない場合と比較して、音処理ライブラリ153を開発する手間を低減できる。
<変形例>
以上に例示した各態様に付加される具体的な変形の態様を以下に例示する。以下の例示から任意に選択された2個以上の態様を、相互に矛盾しない範囲で適宜に併合してもよい。
(1)第1実施形態において、音処理装置100は、第1構成又は第2構成をとり得る、言い換えれば第1DSP16a及び第2DSP16bの一方を有するが、第1DSP16a及び第2DSP16bの双方を有してもよい。音処理装置100が第1DSP16a及び第2DSP16bの双方を有する場合、音処理装置100は、第1DSP16a及び第2DSP16bのいずれを用いて音信号処理を実行してもよい。音処理装置100がDSP16を複数有する状況としては、例えば、音処理装置100aのユーザが、第2DSP16bを有する拡張ボードを音処理装置100に取り付けた場合が例示される。
例えば、ステップS31において、取得部32が、音処理装置100が有するDSP16の識別情報IDDSPを複数取得したと想定する。さらに、ステップS32において、取得部32が、補助記憶装置15に記憶された音処理ライブラリ153が識別情報IDDSPと同一内容のDSP識別情報1535を複数有すると判定したと想定する。この想定の基、取得部32は、以下の態様1A又は態様1Bを利用して、音信号処理を実行するDSP16を選択してもよい。
態様1A
例えば、取得部32は、音処理ライブラリ153が有するDSP識別情報1535と同一内容の識別情報IDDSPが示すDSP16のうち、クロック周波数が最も高いDSPを、音信号処理を実行するDSP16として選択してもよい。
態様1B
例えば、取得部32は、音処理ライブラリ153が有するDSP識別情報1535と同一内容の識別情報IDDSPを表示装置11に表示し、ユーザが選択した識別情報IDDSPが示すDSPを、音信号処理を実行するDSP16として選択してもよい。
(2)第2実施形態において、CPU13cは、複数のコアを有する、いわゆる、マルチコアプロセッサでもよい。さらに、マルチコアプロセッサのうち第1のコアがパラメータ処理を実行し、第2のコアが音信号処理を実行してもよい。例えば、CPU13cは、第1のコア及び第2のコアともに基本命令セット及び拡張命令セットを有するという、ホモジニアスマルチコアでもよい。又は、CPU13cは、第1のコアが基本命令セットのみ有し、第2のコアが基本命令セット及び拡張命令セットを有するという、ヘテロジニアスマルチコアでもよい。又は、第2実施形態において、音処理装置100は、複数のCPUを有してもよい。
(3)上述の各形態において、DSP16は、「デバイス」の一例であったが、これに限らない。例えば、「デバイス」の一例として、FPGA(Field Programmable Gate Array)でもよい。また、CPU13は、「プロセッサ」の一例であったが、これに限らない。例えば、CPU13はDSPであってもよい。
(4)上述の各形態において、音処理装置100は、音信号処理として、HPF処理と、イコライザ処理と、ミキシング処理とを実行するが、音信号処理は、これら3つの処理に限定されない。音処理装置100が、HPF処理及びイコライザ処理のいずれか一方又は両方を実行し、ミキシング処理を実行しない場合、音処理装置100に入力される音信号Sinは、1つでよい。
(5)上述の各形態において、音信号パラメータ152は、HPF処理に関するパラメータを含んでいないが、HPF処理に関するパラメータを含んでもよい。例えば、音処理装置100が、HFP処理における遮断周波数をユーザから受け付けて、第1実行部36が、音信号パラメータ152の遮断周波数を、ユーザから受け付けた遮断周波数に更新してもよい。第1実行部36は、更新した遮断周波数をHPF処理により受け付け可能な遮断周波数に変換する。第2実行部39は、変換した遮断周波数を用いて、HPF処理を実行する。
(6)上述の各形態において、DSP16又はCPU13cは、音処理ライブラリ153を読み出すことにより、HPF処理、イコライザ処理、及び、ミキシング処理を実行するが、処理ごとのライブラリが存在してもよい。例えば、補助記憶装置15は、HPF処理を実行可能なライブラリと、イコライザ処理を実行可能なライブラリと、ミキシング処理を実行可能なライブラリという3つのライブラリを有してもよい。処理ごとのライブラリを有することにより、音処理ライブラリ153の開発者は、新たな処理を追加しやすくできる。
(7)上述の各形態において、DSP設定コード1533は、第1DSP16aを設定する処理及び第2DSP16bを設定する処理を含むDSP設定処理を記述しているが、これに限らない。例えば、音処理ライブラリ153は、DSP設定コード1533の替わりに、第1DSP16aを設定する処理を記述した第1DSP設定コード1533aと、第2DSP16bを設定する処理を記述した第2DSP設定コード1533bとを有してもよい。音処理ライブラリ153が第1DSP設定コード1533aと第2DSP設定コード1533bとを有する場合、第1DSP識別情報1535aは、第1DSP設定コード1533a及び第1音信号コード1536aに対応付けられている。同様に、第2DSP識別情報1535bは、第2DSP設定コード1533b及び第2音信号コード1536bに対応付けられている。そして、ステップS33において、書込部33は、DSP設定コード1533の替わりに、同一内容のDSP識別情報1535に対応するDSP設定コード1533を主記憶装置14に書き込めばよい。
(8)上述の各形態において、音信号の音質を調整する処理の一例として、音信号の周波数特性を調整する処理を記載したが、これに限られない。音信号の音質を調整する処理の他の例としては、音信号が表す音に空間的な広がりを与える処理、及び、音信号が表す音の音量を調整するダイナミクス処理等がある。音信号が表す音に空間的な広がりを与える処理には、例えば、ディレイ処理及びリバーブ処理がある。ディレイ処理は、入力された音信号に、時間的に遅延させた音信号を混合する処理である。リバーブ処理は、入力された音信号に、入力された音信号が表す音の残響音を表す音信号、又は、入力された音信号の反射音を表す音信号を混合する処理である。ダイナミクス処理は、例えば、音信号が表す音の音量の変化を縮小するコンプレッサ処理、及び、音信号が表す音の音量が予め設定された閾値を超えた場合に音量を一定以下となるように抑制するリミッタ処理がある。また、音処理装置100処理は、フィルタ処理として、HPF処理及びLPF処理以外の処理を実行してもよい。HPF処理及びLPF処理以外の処理は、例えば、所定値以上の音量を有する音を表す音信号が入力された場合のみに音信号を出力するゲート処理である。
(9)以上に例示した音処理装置100の機能は、前述の通り、CPU13、DSP16、及び、補助記憶装置15に記憶されたプログラムの協働により実現される。本開示に係るプログラムは、コンピュータが読取可能な記録媒体に格納された形態で提供されてコンピュータにインストールされ得る。記録媒体は、例えば非一過性(non-transitory)の記録媒体であり、CD-ROM等の光学式記録媒体(光ディスク)が好例であるが、半導体記録媒体又は磁気記録媒体等の公知の任意の形式の記録媒体も包含される。なお、非一過性の記録媒体とは、一過性の伝搬信号(transitory, propagating signal)を除く任意の記録媒体を含み、揮発性の記録媒体も除外されない。
(10)以上に例示した音処理装置100は、ミキサ以外にも、音処理を実行する任意の音処理装置に適用可能である。例えば、音処理装置100は、レコーダー、エフェクター、アンプなどに適用できる。
(11)以上に例示した形態から、例えば以下の構成が把握される。
本開示のひとつの態様(態様A1)に係るライブラリプログラムは、音処理装置に含まれるプロセッサが実行するライブラリプログラムであって、前記プロセッサが有する命令セットを用いて音処理のうち第1処理を記述した第1実行コードと、第1デバイスが有する命令セットを用いて前記音処理のうち第2処理を記述した第2実行コードと、第2デバイスが有する命令セットを用いて前記第2処理を記述した第3実行コードと、を含み、前記プロセッサに、前記第1実行コードを実行する処理と、前記音処理装置が前記第1デバイスを有する場合、前記第2実行コードを前記第1デバイスに送信することにより、前記第1デバイスが前記第2処理を実行可能な状態に設定する処理と、前記音処理装置が前記第2デバイスを有する場合、前記第3実行コードを前記第2デバイスに送信することにより、前記第2デバイスが前記第2処理を実行可能な状態に設定する処理と、を実行させる。以上の態様によれば、音処理装置が第1デバイスを有する場合も第2デバイスを有する場合も、第1実行コードは共用される。従って、第1実行コードを共用しない場合と比較して、ライブラリプログラムを開発する手間を低減できる。
態様A1の一例(態様A2)では、前記第1実行コードを実行する処理は、前記音処理装置が前記第1デバイス及び前記第2デバイスのいずれを有するかによらず、前記第1実行コードを実行する。以上の態様によれば、第1実行コードは、音処理装置が第1デバイスを有する場合も第2デバイスを有する場合も共用されるため、ライブラリプログラムを開発する手間を低減できる。
本開示のひとつの態様(態様A3)に係るライブラリプログラムは、音処理装置に含まれるプロセッサが実行するライブラリプログラムであって、前記プロセッサが有する第1命令セットを用いて音処理のうち第1処理を記述した第1実行コードと、第2命令セットを用いて前記音処理のうち第2処理を記述した第2実行コードと、デバイスが有する命令セットを用いて前記第2処理を記述した第3実行コードと、を含み、前記プロセッサに、前記第1実行コードを実行する処理と、前記プロセッサが前記第2命令セットを有する場合、前記第2実行コードを実行する処理と、前記音処理装置が前記デバイスを有する場合、前記第3実行コードを前記デバイスに送信することにより、前記デバイスが前記第2処理を実行可能な状態に設定する処理と、を実行させる。以上の態様によれば、プロセッサが第2命令セットを有する場合も音処理装置がデバイスを有する場合も、第1実行コードは共用される。従って、第1実行コードを共用しない場合と比較して、ライブラリプログラムを開発する手間を低減できる。
態様A1から態様A3のいずれかの一例(態様A4)では、前記ライブラリプログラムは、前記プロセッサが実行するプロセスから動的リンクにより呼び出される。以上の構成によれば、例えば、音処理装置の開発元は、複数のライブラリプログラムをWebサイトに登録しなくてよい。従って、ユーザは、自身が有する音処理装置の構成に適したライブラリプログラムがいずれであるのかを考慮せずに、Webサイトに登録されている1つの音処理ライブラリを音処理装置に記憶させればよいため、利便性が向上する。
態様A1から態様A4のいずれかの一例(態様A5)では、前記第1処理は、ユーザから受け付けたデータを、前記第2処理により受け付け可能なデータに変換する変換処理を含み、前記第2処理は、前記変換処理による変換後のデータを用いて音信号の音質を調整する処理及び前記変換処理による変換後のデータを用いて複数の音信号を混合する処理のいずれか一方又は両方を含む。以上の態様によれば、第1処理をプロセッサに実行させ、第2処理をデバイスに実行させることにより、負荷分散を図ることができる。
態様A5の一例(態様A6)では、前記プロセッサは、記憶部にアクセス可能であって、前記第1処理は、前記記憶部に記憶されているデータの更新が前記ユーザから指示された場合に、当該データを更新し、前記変換処理は、更新した当該データを、前記第2処理により受け付け可能なデータに変換する。以上の態様によれば、音処理装置は、記憶部に記憶されているデータの更新がユーザから指示された場合に、更新したデータを用いて第2処理を実行できる。
態様A4の一例(態様A7)では、態様4におけるライブラリプログラムは、前記第2実行コードを実行可能なデバイスの第1識別情報と、前記第3実行コードを実行可能なデバイスの第2識別情報とを含み、前記第1識別情報は、前記第2実行コードに対応付けられており、前記第2識別情報は、前記第3実行コードに対応付けられており、前記プロセッサは、揮発性の記憶部にアクセスし、前記プロセッサに、前記ライブラリプログラムを動的リンクにより呼び出す場合、前記音処理装置が有するデバイスの識別情報を取得する処理と、前記第1実行コードと、前記第2実行コード及び前記第3実行コードのうち、取得した前記識別情報と同一内容の識別情報に対応付けられた実行コードとを、前記記憶部に書き込む処理と、を実行させる。以上の態様によれば、プロセッサは、第2実行コード及び第3実行コードのいずれか一方の実行コードを記憶部に書き込み、他方の実行コードを記憶部に書き込まない。従って、音処理装置は、他方の実行コードを記憶部に書き込む場合と比較して、記憶部の消費量を抑えることができる。
本開示のひとつの態様(態様A8)に係る音処理装置は、プロセッサと、前記プロセッサが有する命令セットを用いて音処理のうち第1処理を記述した第1実行コードと、第1デバイスが有する命令セットを用いて前記音処理のうち第2処理を記述した第2実行コードと、第2デバイスが有する命令セットを用いて前記第2処理を記述した第3実行コードとを含むライブラリプログラムを記憶する記憶部と、を含み、前記プロセッサが、前記第1実行コードを実行する処理と、前記音処理装置が前記第1デバイスを有する場合、前記第2実行コードを前記第1デバイスに送信することにより、前記第1デバイスが前記第2処理を実行可能な状態に設定する処理と、前記音処理装置が前記第2デバイスを有する場合、前記第3実行コードを前記第2デバイスに送信することにより、前記第2デバイスが前記第2処理を実行可能な状態に設定する処理と、を実行する。以上の構成によれば、音処理装置が第1デバイスを有する場合も第2デバイスを有する場合も、第1実行コードは共用されるため、第1実行コードを共用しない場合と比較して開発する手間を低減できるライブラリプログラムを実行できる。
13…CPU、14…主記憶装置、15…補助記憶装置、31…リンク処理部、32…取得部、33…書込部、34…音処理部、35…CPU音処理部、36…第1実行部、37…DSP設定部、39…第2実行部、100…音処理装置、151…リンクプログラム、153…音処理ライブラリ、1531…パラメータ変換コード、1532…メモリ管理コード、1533…DSP設定コード。

Claims (7)

  1. 音処理装置に含まれるプロセッサが実行するライブラリプログラムであって、
    前記プロセッサが有する命令セットを用いて音処理のうち第1処理を記述した第1実行コードと、第1デバイスが有する命令セットを用いて前記音処理のうち第2処理を記述した第2実行コードと、第2デバイスが有する命令セットを用いて前記第2処理を記述した第3実行コードと、を含み、
    前記プロセッサに、
    前記第1実行コードを実行する処理と、
    前記音処理装置が前記第1デバイスを有する場合、前記第2実行コードを前記第1デバイスに送信することにより、前記第1デバイスが前記第2処理を実行可能な状態に設定する処理と、
    前記音処理装置が前記第2デバイスを有する場合、前記第3実行コードを前記第2デバイスに送信することにより、前記第2デバイスが前記第2処理を実行可能な状態に設定する処理と、
    を実行させ
    前記第1処理は、
    ユーザから受け付けたデータを、前記第2処理により受け付け可能なデータに変換する変換処理を含み、
    前記第2処理は、
    前記変換処理による変換後のデータを用いて音信号の音質を調整する処理及び前記変換処理による変換後のデータを用いて複数の音信号を混合する処理のいずれか一方又は両方を含む、
    ライブラリプログラム。
  2. 前記第1実行コードを実行する処理は、
    前記音処理装置が前記第1デバイス及び前記第2デバイスのいずれを有するかによらず、前記第1実行コードを実行する、
    請求項1に記載のライブラリプログラム。
  3. 音処理装置に含まれるプロセッサが実行するライブラリプログラムであって、
    前記プロセッサが有する第1命令セットを用いて音処理のうち第1処理を記述した第1実行コードと、第2命令セットを用いて前記音処理のうち第2処理を記述した第2実行コードと、デバイスが有する命令セットを用いて前記第2処理を記述した第3実行コードと、を含み、
    前記プロセッサに、
    前記第1実行コードを実行する処理と、
    前記プロセッサが前記第2命令セットを有する場合、前記第2実行コードを実行する処理と、
    前記音処理装置が前記デバイスを有する場合、前記第3実行コードを前記デバイスに送信することにより、前記デバイスが前記第2処理を実行可能な状態に設定する処理と、
    を実行させるライブラリプログラム。
  4. 前記ライブラリプログラムは、前記プロセッサが実行するプロセスから動的リンクにより呼び出される、
    請求項1から3までのいずれか1項に記載のライブラリプログラム。
  5. 前記プロセッサは、記憶部にアクセス可能であって、
    前記第1処理は、
    前記記憶部に記憶されているデータの更新が前記ユーザから指示された場合に、当該データを更新し、
    前記変換処理は、
    更新した当該データを、前記第2処理により受け付け可能なデータに変換する、
    請求項に記載のライブラリプログラム。
  6. 請求項4に記載のライブラリプログラムは、前記第2実行コードを実行可能なデバイスの第1識別情報と、前記第3実行コードを実行可能なデバイスの第2識別情報とを含み、
    前記第1識別情報は、前記第2実行コードに対応付けられており、
    前記第2識別情報は、前記第3実行コードに対応付けられており、
    前記プロセッサは、揮発性の記憶部にアクセスし、
    前記プロセッサに、
    前記ライブラリプログラムを動的リンクにより呼び出す場合、前記音処理装置が有するデバイスの識別情報を取得する処理と、
    前記第1実行コードと、前記第2実行コード及び前記第3実行コードのうち、取得した前記識別情報と同一内容の識別情報に対応付けられた実行コードとを、前記記憶部に書き込む処理と、
    を実行させるリンクプログラム。
  7. 音処理装置であって、
    プロセッサと、
    前記プロセッサが有する命令セットを用いて音処理のうち第1処理を記述した第1実行コードと、第1デバイスが有する命令セットを用いて前記音処理のうち第2処理を記述した第2実行コードと、第2デバイスが有する命令セットを用いて前記第2処理を記述した第3実行コードとを含むライブラリプログラムを記憶する記憶部と、を含み、
    前記プロセッサが、
    前記第1実行コードを実行する処理と、
    前記音処理装置が前記第1デバイスを有する場合、前記第2実行コードを前記第1デバイスに送信することにより、前記第1デバイスが前記第2処理を実行可能な状態に設定する処理と、
    前記音処理装置が前記第2デバイスを有する場合、前記第3実行コードを前記第2デバイスに送信することにより、前記第2デバイスが前記第2処理を実行可能な状態に設定する処理と、
    を実行し、
    前記第1処理は、
    ユーザから受け付けたデータを、前記第2処理により受け付け可能なデータに変換する変換処理を含み、
    前記第2処理は、
    前記変換処理による変換後のデータを用いて音信号の音質を調整する処理及び前記変換処理による変換後のデータを用いて複数の音信号を混合する処理のいずれか一方又は両方を含む、
    音処理装置。
JP2019160316A 2019-09-03 2019-09-03 ライブラリプログラム、リンクプログラム、及び、音処理装置 Active JP7408956B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019160316A JP7408956B2 (ja) 2019-09-03 2019-09-03 ライブラリプログラム、リンクプログラム、及び、音処理装置
US17/008,935 US11567727B2 (en) 2019-09-03 2020-09-01 Recording medium and sound processing apparatus having library program for multiple processors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019160316A JP7408956B2 (ja) 2019-09-03 2019-09-03 ライブラリプログラム、リンクプログラム、及び、音処理装置

Publications (2)

Publication Number Publication Date
JP2021040232A JP2021040232A (ja) 2021-03-11
JP7408956B2 true JP7408956B2 (ja) 2024-01-09

Family

ID=74681183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019160316A Active JP7408956B2 (ja) 2019-09-03 2019-09-03 ライブラリプログラム、リンクプログラム、及び、音処理装置

Country Status (2)

Country Link
US (1) US11567727B2 (ja)
JP (1) JP7408956B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008276395A (ja) 2007-04-26 2008-11-13 Toshiba Corp 情報処理装置およびプログラム実行制御方法
JP2008299648A (ja) 2007-05-31 2008-12-11 Toshiba Corp プログラムおよび情報処理装置
JP2014078286A (ja) 2014-02-06 2014-05-01 Fujitsu Ltd マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10232788A (ja) * 1996-12-17 1998-09-02 Fujitsu Ltd 信号処理装置及びソフトウェア
JP2001075758A (ja) 1999-09-02 2001-03-23 Ricoh Co Ltd プリンタドライバを備えたホスト装置及びプリンタシステム
US20040064210A1 (en) * 2002-10-01 2004-04-01 Puryear Martin G. Audio driver componentization
CN106325967B (zh) * 2015-06-30 2019-10-25 华为技术有限公司 一种硬件加速方法、编译器以及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008276395A (ja) 2007-04-26 2008-11-13 Toshiba Corp 情報処理装置およびプログラム実行制御方法
JP2008299648A (ja) 2007-05-31 2008-12-11 Toshiba Corp プログラムおよび情報処理装置
JP2014078286A (ja) 2014-02-06 2014-05-01 Fujitsu Ltd マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム

Also Published As

Publication number Publication date
US11567727B2 (en) 2023-01-31
JP2021040232A (ja) 2021-03-11
US20210064332A1 (en) 2021-03-04

Similar Documents

Publication Publication Date Title
US9214143B2 (en) Association of a note event characteristic
US20070247430A1 (en) Keyboard and mouse operation data recording/reproducing system and method thereof
US7799985B2 (en) Electronic musical apparatus, control method therefor, and storage medium storing instructions for implementing the method
CN108630187B (zh) 乐音生成装置、乐音生成方法、记录有乐音生成程序的记录介质及电子乐器
JP2004045706A (ja) 楽曲データ配信装置、楽曲データ受信装置及びプログラム
JP6201460B2 (ja) ミキシング管理装置
EP1969588A1 (en) Simultaneous sharing of system resources by multiple input devices
US9424757B2 (en) Method of playing music based on chords and electronic device implementing the same
US20180277074A1 (en) Musical sound generation device
JP7408956B2 (ja) ライブラリプログラム、リンクプログラム、及び、音処理装置
US20160118030A1 (en) Computing device and method for processing music
JP4548292B2 (ja) 音源設定装置及び音源設定プログラム
KR102020341B1 (ko) 악보 구현 및 음원 재생 시스템 및 그 방법
CN110399040B (zh) 多模态交互方法、用户端设备、服务器及系统
CN111290746A (zh) 对象访问方法、装置、设备及存储介质
KR20040104200A (ko) 상이한 드라이버의 오디오데이터를 내부 소프트웨어만으로제어하는 장치 및 이를 제어하는 방법
KR101468411B1 (ko) 사용자 지향적 미디 음악 재생편집 장치 및 방법
WO2020262074A1 (ja) 信号処理装置、弦楽器、信号処理方法、及びプログラム
CN110989964B (zh) 一种基于安卓系统的音频回放方法、装置和电子设备
JP2009014862A (ja) 電子楽器及び電子楽器の制御方法
KR20050087368A (ko) 무선 단말기의 벨소리 처리 장치
Tensi FluidSynth Plugin
KR20230031433A (ko) 녹음 기능을 구비한 블록형 피아노 시스템
JP2023096762A (ja) 情報処理装置、端末、及び情報処理方法
JP5800155B2 (ja) カラオケ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230815

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231204

R151 Written notification of patent or utility model registration

Ref document number: 7408956

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151