view dsp/synth/@bpblit/block_sr.m @ 61:eff6bddf82e3 tip

Finally implemented perceptual brightness thing.
author samer
date Sun, 11 Oct 2015 10:20:42 +0100
parents c75bb62b90a9
children
line wrap: on
line source
function [y,phi]=block_sr(o,phi,cutoff,f)
% block_sr - Generate block of blit signal data
%
% block_sr :: 
%    blit       ~'blit object'
%    0--1       ~'initial phase (in cycles)'
%    N:natural  ~'number of samples to compute',
%    0--1       ~'normalised frequency (1=sampling freq)',
%    0--0.5     ~'cutoff harmonics above this frequency [0.5]',
% -> [[1,N]]    ~'band-limited impulse train',
%    0--1       ~'initial phase for next block'.

m = max(2,2*floor(max(cutoff./f))); % number of harmonics to keep
u = cumsum([phi,f],2);
y = m*f.*diric(2*pi*u(1:end-1),m);
phi = mod(u(end),2);