You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用gen~进行onset检测时Max/MSP信号自动循环原因排查

问题:Max/MSP gen~ onset检测补丁出现意外循环行为

我正在开发基于Max/MSP的音频处理补丁,通过gen组件实现音频信号的onset检测功能。但播放过程中发现信号会自动循环,尽管我并未设置任何显式循环行为,且gen的GenExpr代码中也没有触发循环的逻辑(我对GenExpr语言并不熟悉,若有疏漏敬请谅解)。

相关GenExpr代码

if(calc){

    num_calcs = 0;
    
    while((cbuf_size < max_onsets) && (idx < signal_len)){
    
        reset = (idx == 0);
        x = signal.peek(idx, 0);
        x = isStereo == 1 ? abs((x + signal.peek(idx,1)) * 0.5) : x;
        
        new_onset = onset_detection(x, thresh_low, thresh_high, gate_time_samps, reset);

        if(new_onset){
            onset_times.poke(idx, cbuf_size, 0);
            cbuf_size += 1;
            display.poke(1, idx/signal_len, index="phase");
            slice_triggered = 1; // Trigger the slice only once         
        }
        
        // Reset slice_triggered after processing a slice
        if(idx % block_size == 0){
            slice_triggered = 0;

        }
                
        idx += 1;
        num_calcs += 1;
        if(num_calcs >= (block_size - 1)){ break; }
    }
    
    num_onsets = cbuf_size;
    
    calc = idx < signal_len;

}

补充说明

  • Max/MSP是一款可视化编程语言
  • GenExpr是Max使用的文本编程语言(Stack Overflow暂无GenExpr标签)

内容的提问来源于stack exchange,提问作者Tommy 2000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 01:15:54