Conversation
- 添加音频分析模块,使用 Symphonia 库检测音频淡入淡出点 - 实现交叉淡入淡出播放功能,支持自动混音过渡 - 新增设置选项:启用自动混音和过渡时间配置 - 优化音频上下文管理,使用共享 AudioContext 避免资源浪费 - 在播放控制器中添加自动混音逻辑,歌曲结束前自动触发下一首过渡
- 在 native/tools 包中添加 index.d.ts 类型定义文件,导出 analyzeAudioFile 函数及 AudioAnalysis 接口 - 将主进程中对原生模块的导入从相对路径改为使用包名 "tools" - 在 package.json 中通过本地链接添加 tools 依赖,确保 TypeScript 能正确解析类型 - 简化音频分析函数的实现,移除未使用的代码以提升可维护性
添加原生模块加载检查,当 tools.node 模块未成功加载时抛出明确错误
添加启用自动混音开关及其过渡时间设置项,用于控制音频播放时的自动混音行为。
- 扩展音频分析接口,新增 BPM 置信度、首拍位置和响度等字段 - 为本地歌曲添加预分析机制,支持 Automix 功能开关 - 实现分析结果缓存,避免重复分析相同文件 - 在播放控制器中集成智能切入切出与 BPM 对齐逻辑 - 优化原生分析模块,使用包络检测替代原始样本处理以提升性能
- 将 TypeScript 接口中的 snake_case 属性名改为 camelCase,以保持项目命名一致性 - 清理 Rust 分析代码中未使用的导入 - 重构静音检测函数,使用更简洁的条件赋值逻辑
- 在音频分析中新增人声检测与智能切点(cut_in_pos/cut_out_pos)计算 - 为播放引擎添加淡入淡出曲线选项(线性、指数、等功率) - 扩展音频分析缓存机制,支持版本与最大分析时间参数 - 重构自动混音播放逻辑,分离 UI 状态设置与音频播放 - 改进交叉淡入淡出切换流程,支持延迟 UI 切换以避免卡顿 - 在设置界面添加自动混音最大分析时间配置项
- 在 PlayerController 中创建安全的音频源对象,确保 url 不为空并提供默认值 - 修复音频分析中尾部跳转逻辑,使用已提取的 n_frames 变量计算总时长 - 移除未使用的闭包和内联注释,简化音频分析的窗口处理逻辑 - 将播放状态更新中的 quality 和 source 强制转换为正确的类型
- 移除硬切逻辑,改为基于 BPM 匹配的平滑过渡 - 新增下一曲预分析缓存,提前获取分析数据 - 智能计算交叉淡化时长、起始点和播放速率 - 删除不再使用的自动混音过渡时间设置项 - 更新分析版本至 3 以保持前后端同步
在BPM匹配的自动混音场景中,根据下一首歌曲的第一个强拍位置计算UI切换延迟,使界面切换与音乐节拍对齐。如果未找到合适的节拍点,则默认使用交叉淡化时长的50%作为延迟。同时添加了混音开始时的用户提示信息。
- 在音频分析结果中新增 `loudness` (LUFS) 和 `drop_pos` 字段 - 实现 ITU-R BS.1770 K-weighting 响度计,提供专业响度测量 - 为 AutoMIX 功能添加高通和低通滤波器,支持切入/切出时的低频过滤 - 在音频处理管线中串联专用滤波器,实现平滑的频率渐变效果
- 新增 bassSwap 混音类型,在BPM匹配时自动启用,通过高通滤波器实现低频切换 - 添加响度匹配功能,根据歌曲LUFS值自动计算增益,限制在±9dB范围内 - 支持Drop点对齐,智能调整混音起始位置以优化过渡效果 - 扩展AudioAnalysis接口,新增dropPos字段用于识别歌曲高潮位置 - 改进ReplayGain应用逻辑,支持在混音时传递增益值
将 TypeScript 接口和 Rust 结构体的字段名从驼峰式改为蛇形命名,以保持跨语言命名一致性。 为 Rust 结构体字段添加 `napi(js_name)` 属性,确保与 JavaScript 端的映射正确。
- 在 BaseAudioPlayer 中为渐变操作添加安全延迟,避免音频上下文队列过载 - 音频分析新增 vocal_last_in_pos 字段,用于检测最后一段人声起始位置 - 智能混音算法优化:优先对齐下一首的人声进入点或 Drop 点,并支持小节对齐 - 触发时间计算改进:基于最后人声段提前触发,并确保在小节第一拍对齐
在 analyze_audio_file 函数返回的 AudioAnalysis 结构中新增 vocal_last_in_pos 字段,以记录人声最后进入的时间位置,提供更完整的音频分析信息。
- 优化 Automix 混音触发逻辑,优先使用 cut_in_pos 跳过前奏 - 放宽 BPM 匹配误差范围至 20% 以提高匹配成功率 - 添加主音量字段用于跨引擎音量同步 - 修复高音滤波器参数格式化问题 - 统一代码缩进和换行格式,移除多余空行
添加 vocal_last_in_pos 字段至 AudioAnalysis 接口,以支持记录人声最后一次进入的位置,扩展音频分析功能。
Summary of ChangesHello @kazukokawagawa, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! 此拉取请求旨在引入一个类似Apple Music的AutoMix功能,以实现歌曲之间更智能、更流畅的过渡体验。通过集成Rust编写的高性能音频分析库,系统现在能够深入分析音频文件的关键特性,如BPM、响度、淡入淡出点和人声区域。这些分析数据被用于驱动播放引擎的增强型交叉淡入淡出逻辑,包括BPM对齐、响度标准化以及基于歌曲结构(如人声开始/结束、能量骤升)的智能过渡触发。此外,还新增了分析结果的本地缓存机制和用户可配置的AutoMix设置,以优化性能和用户体验。 Highlights
Changelog
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
No description provided.