乐谱跟踪算法解析:实时定位与异常处理
需积分: 0 172 浏览量
更新于2024-08-04
收藏 49KB DOCX 举报
"乐谱跟踪算法是音乐演奏分析中的一个重要技术,用于实时判断当前的演奏在乐谱中的位置。此算法基于多音调检测结果,记录每个音符被连续检测到的时间长度,确保音符被充分演奏。在钢琴演奏中,例如,至少需要60ms的持续时间才能确认一个音符被演奏。同时,如果音符的起始间隔小于最短时长,那么这些音符被认为是同时演奏的,考虑到演奏者手指按下琴键的微小时间差。乐谱跟踪通过分析演奏过程中出现的不同情况来确定乐谱定位。
在确定上一次演奏对应乐谱中的第i个位置后,可能会遇到以下几种情况(见表1):
1. 乐谱第i个位置包含所有新演奏的音符,但新音符之前未被演奏。
2. 新演奏的音符在第i个位置已经出现过。
3. 第i和i+1个位置有相同的音符,需要更多演奏信息来决定是重复演奏还是继续演奏。
4. 演奏错误或跳跃,无法立即确定定位。
对于第三种情况,如果演奏包含了第i个位置独有的音符,那么可以确定是在重复演奏;如果演奏了第i+1个位置独有的音符,则继续演奏;若只演奏了第i+1个位置的音符,定位可能在第①或第②个位置。特别地,当乐谱中有连续相同的音符,如第②和第③个位置,定位会更加复杂。
在无法确定定位或上一演奏定位的情况下,算法会比较演奏的音符与乐谱中各个可能位置的匹配度。如果上一次演奏位于第i个位置,那么新演奏可能对应第i、i+1、i+2个位置;如果上一次演奏的定位不确定,那么新演奏可能是上次可能位置的后续1或2个位置。如果长时间无法确定定位,算法会进行全谱搜索,重新计算与乐谱中所有位置的匹配性,以找到最佳匹配。
乐谱跟踪算法的关键在于如何有效地处理实时演奏数据,准确识别演奏者意图,并将演奏行为与乐谱上的符号对应起来。这不仅涉及到音符的识别,还涉及到音符的顺序、同时性和可能的错误或即兴演奏。通过这种方式,乐谱跟踪能够提供反馈,帮助学习者改正错误,或者在音乐分析、自动伴奏等应用中实现精确的音乐同步。"
2014-12-29 上传
2022-05-06 上传
644 浏览量
782 浏览量
575 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
雨后的印
- 粉丝: 21
- 资源: 288
最新资源
- fullcalendar-scheduler:FullCalendar附加组件,用于显示事件和资源
- hastscript:创建草木的实用程序
- Excel模板学生成绩统计表含图表.zip
- PushingWinJSForward:展示 WinJS Contrib 功能,突破 WinJS 的极限
- 【地产资料】3房地产教育培训.zip
- innersource
- Book-Recommend-Github:推荐生活当中积累的优秀Objective-C和Swift三方库
- PropertyAnimation
- sails-backbone-client:在浏览器中加载 Sails Backbone API
- 毕业设计&课设--毕业设计源码-基于Spark的Kmeans聚类算法优化.zip
- Excel模板财务报表收支表日记账.zip
- fuzzy-sys:交互使用systemctl的实用工具
- 净水阶段
- APPG-scrape:APPG清单的刮板
- movie-picker
- hinahina.com