音乐中的音高与时间计算
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
超级会员免费看
订阅专栏 解锁全文
2159

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



