1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
ix!();
use crate::{
DualDelay,
DUAL_DELAY_MAX_DELAY_LENGTH,
};
impl DualDelay {
pub fn dualdelay_set_buffer(&mut self) {
if self.wpos + (BLOCK_SIZE as i32) >= (DUAL_DELAY_MAX_DELAY_LENGTH as i32) {
for k in 0..BLOCK_SIZE
{
unsafe {
self.buffer[[0, ((self.wpos + k as i32) & (DUAL_DELAY_MAX_DELAY_LENGTH as i32 - 1)) as usize]] =
*self.wetblock.li(k as isize);
self.buffer[[1, ((self.wpos + k as i32) & (DUAL_DELAY_MAX_DELAY_LENGTH as i32 - 1)) as usize]] =
*self.wetblock.ri(k as isize);
}
}
} else {
copy_block(self.wetblock.l(), &mut self.buffer[[0, self.wpos as usize]], BLOCK_SIZE_QUAD);
copy_block(self.wetblock.r(), &mut self.buffer[[1, self.wpos as usize]], BLOCK_SIZE_QUAD);
}
if self.wpos == 0 {
for k in 0..FIR_IPOL_N
{
self.buffer[[0, k + DUAL_DELAY_MAX_DELAY_LENGTH]] =
self.buffer[[0, k]];
self.buffer[[1, k + DUAL_DELAY_MAX_DELAY_LENGTH]] = self.buffer[[1,k]];
}
}
}
}