Sine
音圧をSin波状に変形するためのModulation
.
use autd3::prelude::*;
fn main() {
let _ =
Sine {
freq: 150 * Hz,
option: SineOption {
intensity: u8::MAX,
offset: 0x80,
phase: 0. * rad,
clamp: false,
sampling_config: SamplingConfig::FREQ_4K,
},
};
}
#include<autd3.hpp>
int main() {
using namespace autd3;
Sine(150 * Hz, SineOption{
.intensity = 0xFF,
.offset = 0x80,
.phase = 0.0f * rad,
.clamp = false,
.sampling_config = SamplingConfig::freq_4k(),
});
return 0; }
using AUTD3Sharp;
using AUTD3Sharp.Modulation;
using static AUTD3Sharp.Units;
new Sine(
freq: 150u * Hz,
option: new SineOption
{
Intensity = 0xFF,
Offset = 0x80,
Phase = 0f * rad,
Clamp = false,
SamplingConfig = SamplingConfig.Freq4K
}
);
from pyautd3 import Hz, SamplingConfig, Sine, SineOption, rad
Sine(
freq=150 * Hz,
option=SineOption(
intensity=0xFF,
offset=0x80,
phase=0.0 * rad,
clamp=False,
sampling_config=SamplingConfig.FREQ_4K,
),
)
Sine
は音圧の波形が
となるようなAMをかける.
ここでは床関数を表す.
clamp
がfalse
だと, 上記の式においての範囲外の値になるようなintensity, offset
が指定された場合にエラーを返す.
エラーを返すのではなく, 範囲外の値をにクランプする場合は, clamp
にtrue
を指定する.
これらの値のデフォルトは上記の通りである.
周波数制約
Sine
はデフォルトだと周波数に厳格であり, サンプリング周波数によって出力不可能な周波数が指定された場合にはエラーを返す.
その場合はサンプリング設定を変更するか, into_nearest
を使用することで, 出力可能な周波数の内で最も近い周波数で変調することができる.
use autd3::prelude::*;
fn main() {
let _ =
Sine {
freq: 150. * Hz,
option: SineOption::default(),
}
.into_nearest();
}
#include<autd3.hpp>
int main() {
using namespace autd3;
Sine(150.0f * Hz, SineOption{}).into_nearest();
return 0; }
using AUTD3Sharp.Modulation;
using static AUTD3Sharp.Units;
new Sine(freq: 150.0f * Hz, option: new SineOption()).IntoNearest();
from pyautd3 import Hz, Sine, SineOption
Sine(freq=150.0 * Hz, option=SineOption()).into_nearest()