音乐搜索、替换与伸缩:原理、方法与实践
1. 旋律搜索基础
旋律搜索的结果“answers”是一个位置匹配列表。例如,在某个搜索中,在位置(1, 2)处有一个匹配,即音乐进行到 1/2 音符处。默认的搜索是基于轮廓和结构匹配,通常不会对和声语境跟踪(HCT)进行匹配,比如调性主音。
若要对目标中的调性主音进行精确匹配,可通过设置搜索选项来实现。以下是示例代码:
from search.melodicsearch.global_search_options import GlobalSearchOptions
from search.melodicsearch.melodic_search import MelodicSearch
lge = LineGrammarExecutor()
pattern = '{<C-Major: I> qC:4 D}'
target = '{qC:4 D <E-Major: v> F# <Ab-Minor: ii> Bb C Db <D-Major: I> D E F#}'
target_line, target_hct = lge.parse(target)
search = MelodicSearch.create(pattern)
answers = search.search_hct(target_hct, GlobalSearchOptions())
answers = search.search(target_line, target_hct,
GlobalSearchO
订阅专栏 解锁全文
197



被折叠的 条评论
为什么被折叠?



