Oi, envio abaixo uma imagem de um subpatch para calcular um sinal módulo π / M.
A parte da direita recebe uma mensagem com o fator de overlap das janelas e calcula π / M.
Depois, vem o objeto [expr~], que implementa para o PD algumas funções parecidas com as da biblioteca de matemática do C e executa uma ou mais funções para todos os elementos dos vetores dados de entrada (veja a documentação para variações). Como todos os objetos ~, este também é executado com frequência (R*M)/N Hz sendo que R é a taxa de amostragem e N e M são, respectivamente, o tamanho do bloco de processamento digital e o fator de overlap, definidos por meio do objeto [block~].
Assim, a chamada [expr~ fmod($v1, $v2)] retorna o resto da divisão de cada elemento de $v1 por cada elemento de mesmo índice em $v2 e o resultado é enviado para o outlet. No caso, com o uso do objeto [sig~], todos os elementos de $v2 são iguais a π / M, então o que é enviado para o outlet é o resto da divisão dos números do sinal por π / M.