| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Работа со звуком > Волны |
| Автор: tim8ska 29.1.2006, 21:09 |
| Здравствуйте, Я особе не программист, знаю только Java, Pascal, Flash и html. Возможно если надо то попробую разобраться и в остальном, но мне сейчас понадобилось сделать программу, которая берёт звук с микрофона и тут же передаёт этот звук в наушники, но только не в том виде в котором была волна а (как это сказать?) инвертированная. Это сэмпл простой волны из песни через Sony Sound Forge 8.0b |
| Автор: tim8ska 29.1.2006, 21:12 |
| А это волна инвертированная. Она как бы должна быть к верх ногами. Пожалуйста, кто знает, помогите создать такую программу. P.S. я не знал куда засунуть эту тему, но раз эта со звуком, то сюда. |
| Автор: bilbobagginz 31.1.2006, 10:40 |
| ищи в сети библиотеки DSP на тебе знакомом языке, выбери одну. вырежи из нее все кроме части работы с твоим форматом ( либо PCM,либо AIFF ) и оставь методы/функции работы с амплитудой. пока. |
| Автор: tim8ska 1.2.2006, 15:43 |
| Почему-то я уверен, что ни Java, ни Pascal не могут обработать звук. Но мне нужно чтобы волну переделывала программа тут же, без задумки. Потому, что времени на это нет. |
| Автор: bilbobagginz 1.2.2006, 21:43 | ||
| тогда не вырезай ничего... используй какую то DSP библиотеку. из-за того, что VST-SDK имеется на Delphi, имеет место быть предположение, что и на паскале то будет возможно. а на самом деле, октой спецификацию формата волны, и читай ее. когда узнаешь как идет распределение амплитуд и A_max (максимально представляемая амплитуда ), то твое преобразование элементарно:
если ты хочешь, это можно разбить на потоки, каждый работает над отрезком в постоянную величину block_width ( что является движением по оси времени ) а если файл огроменный, то надо не запихивать его всего, только открыть и по кусочкам в память, желательно с JNI. но с форматом ознакомиться надо, это факт... это что за файлы ? PCM ? AIFF ? читай их форматы. |