T6W28: chan osc which does not work right
This commit is contained in:
parent
6537125976
commit
87d1cf24a1
|
@ -67,6 +67,8 @@ void T6W28_Square::run( sms_time_t time, sms_time_t end_time )
|
||||||
last_amp_right = 0;
|
last_amp_right = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
oscBuf->putSample(time,0);
|
||||||
|
|
||||||
time += delay;
|
time += delay;
|
||||||
if ( !period )
|
if ( !period )
|
||||||
{
|
{
|
||||||
|
@ -100,6 +102,8 @@ void T6W28_Square::run( sms_time_t time, sms_time_t end_time )
|
||||||
last_amp_right = amp_right;
|
last_amp_right = amp_right;
|
||||||
blip_add_delta( outputs[0], time, delta_right );
|
blip_add_delta( outputs[0], time, delta_right );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
oscBuf->putSample(time,(amp_left+amp_right)>>2);
|
||||||
}
|
}
|
||||||
|
|
||||||
time += delay;
|
time += delay;
|
||||||
|
@ -117,6 +121,8 @@ void T6W28_Square::run( sms_time_t time, sms_time_t end_time )
|
||||||
|
|
||||||
blip_add_delta( output_left, time, delta_left );
|
blip_add_delta( output_left, time, delta_left );
|
||||||
blip_add_delta( output_right, time, delta_right );
|
blip_add_delta( output_right, time, delta_right );
|
||||||
|
|
||||||
|
oscBuf->putSample(time,(amp_left+amp_right)>>2);
|
||||||
time += period;
|
time += period;
|
||||||
phase ^= 1;
|
phase ^= 1;
|
||||||
}
|
}
|
||||||
|
@ -168,6 +174,8 @@ void T6W28_Noise::run( sms_time_t time, sms_time_t end_time )
|
||||||
last_amp_right = amp_right;
|
last_amp_right = amp_right;
|
||||||
blip_add_delta( outputs[1], time, delta_right );
|
blip_add_delta( outputs[1], time, delta_right );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
oscBuf->putSample(time,(amp_left+amp_right)>>2);
|
||||||
}
|
}
|
||||||
|
|
||||||
time += delay;
|
time += delay;
|
||||||
|
@ -199,6 +207,8 @@ void T6W28_Noise::run( sms_time_t time, sms_time_t end_time )
|
||||||
|
|
||||||
delta_right = -delta_right;
|
delta_right = -delta_right;
|
||||||
blip_add_delta( output_right, time, delta_right );
|
blip_add_delta( output_right, time, delta_right );
|
||||||
|
|
||||||
|
oscBuf->putSample(time,(amp_left+amp_right)>>2);
|
||||||
}
|
}
|
||||||
time += l_period;
|
time += l_period;
|
||||||
}
|
}
|
||||||
|
@ -287,6 +297,7 @@ bool T6W28_Apu::end_frame( sms_time_t end_time )
|
||||||
|
|
||||||
assert( last_time >= end_time );
|
assert( last_time >= end_time );
|
||||||
last_time -= end_time;
|
last_time -= end_time;
|
||||||
|
assert(last_time == 0);
|
||||||
|
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,6 +40,9 @@ void DivPlatformT6W28::acquireDirect(blip_buffer_t** bb, size_t len) {
|
||||||
oscBuf[i]->begin(len);
|
oscBuf[i]->begin(len);
|
||||||
}
|
}
|
||||||
t6w->output(bb[0],bb[1]);
|
t6w->output(bb[0],bb[1]);
|
||||||
|
for (int i=0; i<4; i++) {
|
||||||
|
t6w->osc_output(i,oscBuf[i]);
|
||||||
|
}
|
||||||
|
|
||||||
while (!writes.empty()) {
|
while (!writes.empty()) {
|
||||||
QueuedWrite w=writes.front();
|
QueuedWrite w=writes.front();
|
||||||
|
|
Loading…
Reference in a new issue