这个项目能做什么

flashback-sampler 是一款桌面音频小工具,持续将系统音频录制到环形缓冲区中,允许用户从最近的录音中提取片段、预览和修剪,然后保存或直接拖入数字音频工作站(DAW)。环形缓冲区在所有操作期间持续滚动。 核心目标包括永不丢失录音:环形缓冲区保留过去 N 分钟的音频(最高支持 192 kHz),导出时立即写入磁盘以确保崩溃后数据不丢失。拖放功能使用标准操作系统文件拖拽机制,确保所有 DAW 主机均可接收。导出的片段包含额外音频(句柄),允许用户在 DAW 中拖动剪辑边缘以显示更多音频内容。片段本身保持完整,WAV 标记(cue、smpl、adtl 标签)标记其内部位置。可选偏好设置支持拖放 Ableton Live Clip (.alc) 文件而非 WAV。 引擎为零依赖的 Zig 库,位于 core/ 目录下,负责捕获、混音、播放、环形缓冲区、峰值计算、WAV 处理及临时缓存。Python 部分为 PySide6/Qt 壳层,仅用于创建句柄、启动/停止及读取数值;它从不接触音频帧。同一引擎也可用于 CLAP 插件、OBS 插件或手机应用。 当前版本为 0.4.1,仅支持 Windows。捕获、混音与播放通过 WASAPI 在 Zig 核心中完成。核心代码可跨平台编译至 Linux 和 macOS,但对应后端尚未实现。Qt 界面计划重构成纯 Zig 实现。 UI 设计为双唱盘样式:左盘为实时环形缓冲区,右盘存放已导出片段。用户可选择音源(默认输出、捕获设备、单个进程或多个输入混合)、启停录制、设定片段时长与位置、冻结显示以对齐抓取点(录制继续)、导出选段、预览与修剪、保存为 WAV(默认 32 位浮点),或拖入 DAW。导出片段在录制停止后仍保留,存储于临时文件夹中,格式为 float32 WAV。 内存预先分配:秒数 × 采样率 × 声道数 × 4 字节。例如 15 分钟立体声 48 kHz 预设占用 346 MB。创建环形缓冲区前执行两项检查:最大内存占用上限(默认物理内存的 25%)及拒绝超出可用物理内存的请求。 目前仅测试了 Ableton Live 12 的 DAW 标记行为。Reaper、Logic、Cubase、Bitwig、FL Studio、Studio One 和 Pro Tools 列为支持但未测试。 要求 Python 3.10+ 和 Zig 0.16.0。MIT 许可证;内置 Monaspace 字体采用 SIL Open Font License 1.1。