Вопрос: наложение эффекта "эхо" на wav файлы

  • Автор темы Автор темы Firefox
  • Дата начала Дата начала
Извини, но можешь выложить еще раз! Просто я думаю для всех будет понятней, если они увидят весь код выложенный сухим текстом!
P.S.: не вздумай выложить zip-фалом!
 
Извини, но можешь выложить еще раз! Просто я думаю для всех будет понятней, если они увидят весь код выложенный сухим текстом!
P.S.: не вздумай выложить zip-фалом!


Добавлено: Отправляю 2 файла отдельно так как они у меня идут отдельным классом к общему проекту, а он большой очень
, да и отправить весь проект на могу. но там думаю все понятно. Можно подключить к любому проекту и вызвать функцию Funk() с параметрами в виде 1- искажение(может быть 0,1,2) и 2-именем файла, который исказить надо. Единственное проигрывание файла функциями qt сделано надо заменить будет.
 

Вложения

  • sound_2.cpp
    sound_2.cpp
    7,9 КБ · Просмотры: 598
  • sound_2.h
    sound_2.h
    737 байт · Просмотры: 381
DarkKnight125
Там не плохо бы было добавить условие проверки, чтобы сумма всех эхо не вышла за пределы возможно допустимых значений.
Но от этого не будет толку до тех пор пока мы будем прибавлять сразу в буфер. Нужно ввести какую-то переменную.
Например:
C++:
for (int i = 0; i<dwDataSize; i++) {
signed long sum;
sum = pData[i];
sum += pData[i + int(0.5*WaveFormat.nAvgBytesPerSec)];
sum += pData[i + int(1.0*WaveFormat.nAvgBytesPerSec)];
pDataEcho[i] = (sum > 32767 ? 32767 : sum < -32768 ? -32768 : sum);
}
Это не рабочий кусок кода! Это пример того что я имею в виду! Весь смысл в последней строке.
DarkKnight125 для твоей реализации он не подойдет, т.к. ты считаешь все эхо за один прием. Придется немного менять код.


Добавлено: DarkKnight125
И еще не совсем понял, ты оперируешь байтами, у тебя wav-ка 8-битная? Если да то вопросов нет)) В целом пример очень наглядный)

а как изменится алгоритм, если wav 16-битный? там же два байта будет..
 
При добавлении эхо представленным здесь способом от DarkKnight125 появляется шум и треск. С чем это может быть связано? С тем, что два чара в сумме могут не влазить в чар? Сделал ограничение (-128, 127), но все равно шум есть. Даже просто пройдясь по массиву pData и умножив каждый элемент на 0.5 звук не только становится тише, но и я появляется шум и треск. Прошу помощи. Видимо я не понимаю, как представляется звук в секции data.
 
Народ подскажите я хотел кампельрнуть исходник который скинули тут, ошибки выкидывает...
In member function 'bool sound_2::func(int, QString)':
и так далее ругается ::IDirectSound8 *pDirectSound;
::DirectSoundCreate8(0,&pDirectSound,NULL); //Использовать будем 8-е икс
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!