コンテンツにスキップ
これは開発版のドキュメントである. 内容は次のリリースまでに変更される可能性がある. 最新のリリース版は 0.14.x を参照.

ActivateModulationBank

ActivateModulationBank は, 再生対象の Modulation バンクを有効化する低レベルコマンド.

ActivateModulationBank {
bank,
transition_mode,
};
フィールド 型 説明
bank ModulationBank 切り替え先バンク
transition_mode TransitionMode 切り替え時の挙動
Immediate 即時
SyncIdx 次に再生インデックスが0になった時
SysTime { time } 指定した デバイス時刻 time (SysTime)
Gpio(GpioIn) 指定 GPIO 入力ピンのトリガ
Ext 拡張モード (バンク内の再生が終わると次のバンクに自動で切り替え)
use autd3_rs::commands::{
ActivateModulationBank, Clear, ConfigModulation, Synchronize, WriteModulationBuffer,
};
use autd3_rs::geometry::{Autd3, Geometry};
use autd3_rs::units::Hz;
use autd3_rs::value::{LoopBehavior, ModulationBank, SamplingConfig, TransitionMode};
use autd3_rs::Client;
use autd3_rs::udp::TransportOption;
use autd3_rs_modulation::{SineOption, modulation_buffer, sine};
let geometry = Geometry::new(vec![Autd3::default()]);
let option = TransportOption::default();
let mut client = Client::open(&geometry, &option).await?;
client.send(Clear).await?;
client.send(Synchronize).await?;
let mut data = modulation_buffer();
sine(150 * Hz, &SineOption::default(), SamplingConfig::FREQ_4K, &mut data)?;
let bank = ModulationBank::B0;
client.send(WriteModulationBuffer {
bank,
offset: 0,
data: &data,
}).await?;
client.send(ConfigModulation {
bank,
config: SamplingConfig::FREQ_4K,
size: data.len(),
loop_behavior: LoopBehavior::Infinite,
}).await?;
client.send(ActivateModulationBank {
bank,
transition_mode: TransitionMode::Immediate,
}).await?;