void Tracked_Blip_Buffer::remove_all_samples() { long avail = samples_avail(); if ( !non_silent() ) remove_silence( avail ); else remove_samples( avail ); }
int blip_read_samples( blip_buffer_t* s, short out [], int count, int stereo ) { /* can't read more than available */ int avail = blip_samples_avail( s ); if ( count > avail ) count = avail; if ( count ) { /* Sum deltas and write out */ int i; for ( i = 0; i < count; ++i ) { int sample; /* Apply slight high-pass filter */ s->amp -= s->amp >> 9; /* Add next delta */ s->amp += s->buf [i]; /* Calculate output sample */ sample = s->amp >> phase_bits; /* Keep within 16-bit sample range */ if ( sample < -32768 ) sample = -32768; if ( sample > +32767 ) sample = +32767; out [i << stereo] = sample; } remove_samples( s, count ); } return count; }