Вверх ↑
Ответов: 3889
Рейтинг: 362
#1: 2012-05-14 23:54:50 ЛС | профиль | цитата
BogdashkaM писал(а):
А вот как тембр менять?

Я уже ответил на Ваш вопрос. Самый распространённый WAV состоит из цепочки целочисленных значений, в вашем случае - по два байта (16 бит) каждое. Если каждое второе вырезать, то тембр поднимется на октаву, если после каждого записать его копию, то понизится (так же - на октаву). Естественно, нужно корректировать заголовок файла под новый размер, иначе плеера будут считать его повреждённым и могут не заиграть или исказить ещё больше, чем Ваше творчество. Ищите в Сети описание формата WAV.
Да, чуть не забыл предупредить: если не хотите изменения СКОРОСТИ записи пропорционально тембру, то придётся жертвовать частью сэмплов в записи с пониженным тембром (в случае с понижением вдвое - каждым чётным периодом - придётся удалить), либо наоборот удваивать каждый период чтобы компенсировать удаление соседей при повышении тембра. Зато есть плюс - в идеале получите файл той же длины, можно не трогать заголовок
Перфекционистам можно порекомендовать не просто удваивать и вырезать сэмплы, а производить интерполяцию, хотя бы - линейную. Это значительно снижает количество паразитных высокочастотных гармоник, проявляющихся после обработки. Так, если Вам нужно вставить после сэмпла со значением 100 и перед сэмплом со значением 50 дубликат, Вы ставите не 100 и не 50, а сэмпл со значением (100+50)/2=75 . Вот это и есть простейшая линейная интерполяция. Вам наверняка хватит.

Изменение тембра на шаг, не кратный октаве, делается аналогично, только применяется дробная арифметика с последующей аппроксимацией шага вырезки или дублирования сэмплов.
карма: 1

0