Talvez o primeiro passo seja [DESESPERO off]
Esqueça o block e o overlap. As contas não têm NADA a ver com isso. Será que você está tentando fazer justamente do jeito que eu sugeri que NÃO valia a pena? Não tente imitar o subpatch "pd read-windows" do PV do Miller.
Tente resolver inicialmente sem block, fazendo a análise com os blocos default de 64 amostras, o que vai dar 31 valores de amplitude e frequência para cada ciclo do DSP.
Tudo o que você precisa considerar é que os objetos de áudio passam vetores uns pros outros. E o melhor é que você não precisa percorrer estes vetores nunca, pois todos os objetos aritméticos para áudio (+~,-~,*~,/~, etc) fazem a mesma conta para cada elemento do vetor. A conta da amplitude é feita somente a partir dos dois vetores que saem da FFT (parte real,parte imaginária), com *~ e +~. A conta da fase atual também só usa estes dados, e atan2~. A única parte minimamente trabalhosa é guardar este vetor de fases numa tabela para ler na próxima iteração e poder calcular as frequências. Mas são sempre vetores do mesmo tamanho, que é o bloco de áudio do DSP.
Se você resolver sem block~, a única modificação que faltará é processar os comandos para definir N e M, calcular o número K de osciladores, e setar o block~. O resto da implementação é igual.