Re: Сдвиг высоты тона звука
От: PavZ  
Дата: 11.07.03 10:10
Оценка:
K>1. Пропускать/Добавлять отсчеты — проблемы
K>с качеством звука и его длиной.

Проблема с длинной мне кажется неизбежна, по той причине что увеличивается/уменьшается период
а wav как правило с одной и той же частотой дискретизации будет занимать места ~t.

А пропуск/добавление как реализовано ?
Я бы сделал так ( не знаю что из этого получиться реально ).

Изначально имеем набор значений амплитут от времени T причем T=t*n, где n — целое число , t — константа зависящая от частоты дискретизации = 1/f.
Соотв. общее время звучания будет = t*Nmax. Nmax — количество амплитуд в файле.

затем изменяем время t и расставляем амплитуды по новой шкале где T = t'*n.
Получаем общее время звучания = t'*Nmax


Теперь на эту шкалу накладываем старую (c t), как правило у нас не будет точных попаданий в новую шкалу ( c t').
Т.е. получается что конечное Nmaxres = (t'*Nmax)/t.
Вот пробегаем по всем n от 0 до Nmaxres-1.
Имеем время Tres = t*n, для каждого времени нужно заново расчитать амплитуду. для этого берем из новой шкалы
два ближайших значения для времени ...т.е. находим n' такое чтобы t'*n'<Tres<t'*(n'+1). для этих двух точек мы
имеем амплитуду An и An+1 ...соотв. нужно для Tres запомнить амплитуду Ares=((A(n'+1)-A(n'))/t')*(Tres-t'*n')
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.