9、音乐中的音高与时间计算

音乐中的音高与时间计算

1. 音高尺度生成算法

生成符合给定音高范围的音高尺度算法相对直接。调性提供了音阶,作为音高尺度的模板。算法的要点是根据音阶中最接近但高于半音范围起始点的音来找到起始音高。其他音高则通过递增间隔逐步循环查找,同时跟踪半音索引,直到循环超出半音范围的边界。

以下是算法的伪代码:

function build_pitch_scale(tones, incremental_intervals, chrm_range):
    (tone_index, chrm_index) = lowestInRange(tones, offsets, chrm_range)
    scale = [DiatonicPitch(partition_of(chrm_index), tones[tone_index].diatonic_symbol)]
    prior_pitch = scale[0]
    while True:
        tone_index += 1
        if tone_index > len(self.tone_scale) - 1:
            tone_index = 1  # skip 0 as that should be P:1
        incremental_interval = incremental_intervals[tone_index]
        current_pitch = incremental_interval.get_end_pitch(prior_pitch)
        if current_pit
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值