class
GPDSPSquareWaveNode矩形波ノードを表す具象クラス
Contents
GPDSPSquareWaveNode クラスは, 入力された周波数と位相に従って矩形波を合成する矩形波ノードを表す具象クラスです.
あらかじめ指定された解像度で波形バッファを計算しておき演算時に参照する方法と, 演算時に波形を逐次計算する方法を選択することができます.
2つの入力ターミナル "frequency", "phase" と, 1つの出力ターミナル "out" を持ちます.
番号 | 入力 | 出力 |
---|---|---|
0 | frequency | out |
1 | phase | - |
gpdsp ファイルでの記述例
<GPDSPSquareWaveNode> <name>ノード名</name> <param> <resolution>解像度</resolution> </param> <input> <::0> <node>frequency に対する入力元のノード名</node> <output>::frequency に対する入力元のターミナル番号</output> </::0> <::1> <node>phase に対する入力元のノード名</node> <output>::phase に対する入力元のターミナル番号</output> </::1> </input> </GPDSPSquareWaveNode>
Base classes
- class GPDSPWaveNode
- 波形ノードを表す抽象クラス
Constructors, destructors, conversion operators
- GPDSPSquareWaveNode(int rate) explicit noexcept
- コンストラクタです.
- ~GPDSPSquareWaveNode(void) virtual noexcept
- デストラクタです.
Public functions
- int getRate(void) const noexcept
- サンプリングレートを取得します.
- GPDSPError setResolution(GPDSPFloat resolution) noexcept
- 解像度を設定します.
- GPDSPFloat getResolution(void) const noexcept
- 解像度を取得します.
- GPDSPError fixate(void) virtual noexcept
- 入力ターミナルを2つと, 出力ターミナルを1つ生成します.
- void invalidate(void) virtual noexcept
- 入出力の演算結果を無効化し, 再演算を要求します.
- GPDSPError prepare(void) virtual noexcept
- 演算前の準備をします.
- GPDSPError process(void) virtual noexcept
- 演算を行います.
- void rewind(void) virtual noexcept
- 波形バッファの位相を先頭に再初期化します.
- int getCountI(void) const noexcept
- 入力ターミナルの個数を取得します.
- GPDSPError setNameI(int index, std::string const& what) noexcept
- 入力ターミナルの名前を設定します.
- GPDSPError getNameI(int index, std::string* what) const noexcept
- 入力ターミナルの名前を取得します.
- GPDSPError setLinkPositiveI(int index, GPDSPOutputtableNode const* from, int which) noexcept
- 入力ターミナルの非反転入力のノード接続を設定し, モードを GPDSPMODE_POSITIVE に変更します.
- GPDSPError setLinkNegativeI(int index, GPDSPOutputtableNode const* from, int which) noexcept
- 入力ターミナルの反転入力のノード接続を設定し, モードを GPDSPMODE_NEGATIVE に変更します.
- GPDSPError setLinkConstantI(int index, GPDSPFloat constant) noexcept
- 入力ターミナルの定数入力の定数値を設定し, モードを GPDSPMODE_CONSTANT に変更します.
- GPDSPError getModeI(int index, GPDSPMode* mode) const noexcept
- 入力ターミナルのモードを取得します.
- GPDSPError getLinkI(int index, GPDSPOutputtableNode const** from, int* which) const noexcept
- 入力ターミナルのモードが GPDSPMODE_POSITIVE か GPDSPMODE_NEGATIVE の場合に, ノード接続を取得します.
- GPDSPError getLinkI(int index, GPDSPFloat* constant) const noexcept
- 入力ターミナルのモードが GPDSPMODE_CONSTANT の場合に, 定数値を取得します.
- GPDSPError clearLinkI(int index) noexcept
- 入力ターミナルのノード接続と定数値を解除し, モードを GPDSPMODE_NONE に変更します.
- void clearLinkI(GPDSPMode mode) noexcept
- 入力ターミナルのノード接続と定数値を解除し, モードを GPDSPMODE_NONE に変更します.
- void clearLinkI(GPDSPOutputtableNode const* from, int which) noexcept
- 入力ターミナルのノード接続を解除し, モードを GPDSPMODE_NONE に変更します.
- void clearLinkI(GPDSPOutputtableNode const* from) noexcept
- 入力ターミナルのノード接続を解除し, モードを GPDSPMODE_NONE に変更します.
- void clearLinkI(GPDSPFloat constant) noexcept
- 入力ターミナルの定数値を解除し, モードを GPDSPMODE_NONE に変更します.
- void clearLinkI(void) noexcept
- すべての入力ターミナルのノード接続と定数値を解除し, モードを GPDSPMODE_NONE に変更します.
- GPDSPError getValueI(int index, GPDSPFloat* value) const noexcept
- 入力ターミナルの値を取得します.
- int findNameI(std::string const& what) const noexcept
- 引数に指定された名前を持つ入力ターミナルを検索します.
- int findModeI(GPDSPMode mode) const noexcept
- 引数に指定されたモードを持つ入力ターミナルを検索します.
- int findLinkI(GPDSPOutputtableNode const* from, int which) const noexcept
- 引数に指定されたノード接続を持つ入力ターミナルを検索します.
- int findLinkI(GPDSPOutputtableNode const* from) const noexcept
- 引数に指定されたノード接続を持つ入力ターミナルを検索します.
- int findLinkI(GPDSPFloat constant) const noexcept
- 引数に指定された定数値を持つ入力ターミナルを検索します.
- int getCountO(void) const noexcept
- 出力ターミナルの個数を取得します.
- GPDSPError setNameO(int index, std::string const& what) noexcept
- 出力ターミナルの名前を設定します.
- GPDSPError getNameO(int index, std::string* what) const noexcept
- 出力ターミナルの名前を取得します.
- GPDSPError getValueO(int index, GPDSPFloat* value) const noexcept
- 出力ターミナルの値を取得します.
- int findNameO(std::string const& what) const noexcept
- 引数に指定された名前を持つ出力ターミナルを検索します.
Public static functions
- static GPDSPFloat defaultResolution(void) noexcept
- デフォルトの解像度を取得します.
Protected functions
- char const * getName(void) const virtual noexcept
- 波形バッファの名前を取得します.
- GPDSPFloat getWave(GPDSPFloat phase) const virtual noexcept
- 引数に指定された位相に対応する, 矩形波の値を取得します.
- void fillWave(std::vector<std::pair<GPDSPFloat, GPDSPFloat>>* wave) const virtual noexcept
- 引数に指定された波形バッファに対して, 1波長分の矩形波の値を計算して書き込みます.
- GPDSPError setCountI(int count, std::string const& what) noexcept
- 入力ターミナルの個数と名前を設定します.
- GPDSPError appendI(std::string const& what) noexcept
- 引数に指定された名前を持つ入力ターミナルを追加します.
- GPDSPError insertI(int index, std::string const& what) noexcept
- 引数に指定された名前を持つ入力ターミナルを挿入します.
- GPDSPError removeI(int index) noexcept
- 入力ターミナルを削除します.
- void clearI(void) noexcept
- すべての入力ターミナルを削除します.
- GPDSPError setCountO(int count, std::string const& what) noexcept
- 出力ターミナルの個数と名前を設定します.
- GPDSPError setValueO(int index, GPDSPFloat value) noexcept
- 出力ターミナルの値を設定します.
- GPDSPError appendO(std::string const& what) noexcept
- 引数に指定された名前を持つ出力ターミナルを追加します.
- GPDSPError insertO(int index, std::string const& what) noexcept
- 引数に指定された名前を持つ出力ターミナルを挿入します.
- GPDSPError removeO(int index) noexcept
- 出力ターミナルを削除します.
- void clearO(void) noexcept
- すべての出力ターミナルを削除します.
Function documentation
ir:: GPDSPSquareWaveNode:: GPDSPSquareWaveNode(int rate) explicit noexcept
コンストラクタです.
何もしません.
Parameters | |
---|---|
rate in | サンプリングレート > 0 |
char const * ir:: GPDSPSquareWaveNode:: getName(void) const virtual protected noexcept
波形バッファの名前を取得します.
Returns | "GPDSPSquareWaveNode" |
---|
GPDSPFloat ir:: GPDSPSquareWaveNode:: getWave(GPDSPFloat phase) const virtual protected noexcept
引数に指定された位相に対応する, 矩形波の値を取得します.
Parameters | |
---|---|
phase in | 位相 [0.0, 1.0) |
Returns | 矩形波の値 [-1.0, +1.0] |
void ir:: GPDSPSquareWaveNode:: fillWave(std::vector<std::pair<GPDSPFloat, GPDSPFloat>>* wave) const virtual protected noexcept
引数に指定された波形バッファに対して, 1波長分の矩形波の値を計算して書き込みます.
Parameters | |
---|---|
wave in/out | 波形バッファ |