Вход

Просмотр полной версии : Временные задержки путём изменения wav файла


belyakov_e
03.02.2012, 21:14
Решил я провести один опыт по добавлению в свою систему временные задержки. Но так как ни процевого ГУ ни собственно процессора у меня нет, меня посетила другая идея. А что, если внести задержки в исходный материал, то есть прямо в аудио файл?

Итак wav файл несет в себе всего лишь 2 канала, право и лево. Соответственно, что нам нужно - это добавить в информацию левого канала (мы ж сидим ближе к левому, значит его и отодвигаем) просто необходимое количество нулей вначале, сдвинув таким образом всю информацию левого канала по времени. Уточню на всякий случай, что не затереть нулями N семплов вначале левого канала, а вставить пустые семплы.

Сначала я подумал, что ничего не получится из-за саба, так как на него будет приходить сумма каналов и бас просто расплывется так как он будет приходить по 2 раза на динамик, сначала из правого канала прямой, а потом потом через несколько миллисекунд задержаный из левого. Но все таки решил заглянуть в сервис мануал по моему ГУ и вот что я там увидел

http://autozvuk.org/forum2/attachment.php?attachmentid=14244&stc=1&d=1328298160


О чудо! Сабвуфер сидит только на правом канале! А это значит, что во первых бас двоится не будет, а во вторых задержка не будет задерживать саб так как мыж задерживаем левый канал.

Обычная частота дискретизации wav файлов 44100 семплов в секунду. Это означает, что вставив один пустой семпл в левый канал мы получим задержку длинно 1/44100 секунды, что равно примерно 23 микросекунды или (если взять скорость звука 331 м/с) 7,5мм. То есть мы можем вносить задержки с шагом 7,5мм.

Немного оффтопа. Когда набираешь в гугле запрос "скорость звука", в выпадающем списке автодополнения первый же вариант запроса, который он предлагает "скорость звука в вакууме". :wall: Видать часто ищут :D

Итак я сел и за 20 минут написал простенькую программу, которая берет WAV файл, читает его и добавляет в левый канал в начала нулей и записывает все это дело в такой же wav файл рядышком.

Осталось выяснить сколько нулей нужно приписать. Для этого я написал другую программу, уже под iPhone которая может проигрывать wav файлы и на лету менять задержку в левом канале. Для этого я взял пример из документации Apple, который нызвается SpeakHear, он умеет записать файл с микрофона и потом воспроизвести его. Вот его я и модифицировал выкинув записывающую часть, и добавив возможность задержки и контрол для изменения ее на лету. Также вложил туда 2 файла для теста: розовый шум с диска аудио доктор и мою любиму песенку для подобных целей Muse - I Belong to You.

Вот ее внешний вид:
http://autozvuk.org/forum2/attachment.php?attachmentid=14245&stc=1&d=1328299550 http://autozvuk.org/forum2/attachment.php?attachmentid=14246&stc=1&d=1328299550

Далее опытным путем установил, что лучший результат получается в моей системе при задержке в 33 семпла, что примерно равно 25 см или 0.8 миллисекунды. При этом я получил довольно четкую позицию вокалиста перед собой и звук оторвался от мидов и поднялся на панель.

Завтра прогоню через первую программку несколько десятков файлов и буду слушать еще.

Что мы имеем в результате. Вечер времени и у нас есть задержки без процессора и без каких либо изменений в звуке! Естественно со своими ограничениями. Нельзя поменять задержку на лету, файлы специально нужно готовить для проигрывания в мишине, нельзя настроить задержки на пассажирское сидение, так как если будем задерживать правый канал, то с ним будет задерживаться и саб. Но тем не менее - результат есть и главное совершенно бесплатно.

q_w_e_r_t_y
03.02.2012, 21:25
тоже такие мысли посещали))

Cobox
03.02.2012, 21:36
belyakov_e, когда-то я тоже также делал, но потом мне все это надоело: постоянно перегонять файлы. Особенно не удобно, когда у кого-то берешь на время послушать диск или подкинуть чужой диск для пробы (не всегда же есть ноут под рукой, да и времени свободного чаще нет, чем есть. Поэтому потом реализовал точно такю же задержку, но уже аппартным путем.

belyakov_e
03.02.2012, 21:58
Да понятное дело, что ограничений валом. Но на это ушло в сумме всего часа 3. Как в магазин за процом съездить :) И совершенно бесплатно.
Ну аппаратно - это я не умею :) Я по программной части.

Cobox
03.02.2012, 22:00
belyakov_e, больше всего напрягало, когда друзья просили послушать мои записи, но я им их дать не мог :notknow: по понятным причинам они им не подходили ;)

Рост ®
03.02.2012, 22:52
belyakov_e, больше всего напрягало, когда друзья просили послушать мои записи, но я им их дать не мог :notknow: по понятным причинам они им не подходили ;)
Ага... "Не дам, у мене записи для Лачетті! А в тебе що? Мазда? ... Секкундочку ... о-па! Вот і для мазди, тримай!" :D

alck
03.02.2012, 23:17
Интересное решение:+1:
но.....не очень удобно или очень неудобно...:maybe2:

scvosniak
04.02.2012, 00:22
Идея прикольная и наверное имеет право на жизнь, но видится несколько минусов.
1-й нужно прогнать через прогу всю фонотеку + оставить оригиналы.
2-й по хорошому нужно задержать правый мид относительно саба, а потом левый мид относительно правого и саба. В даной реализации так не получится.
З-й определенные изменения в системе могут повлечь за собой очередном прогон фонотеки через прогу. А вообще хотелось бы послушать, инерестно, повлияет ли такой способ задержки на АЧХ, сфазированость...

belyakov_e
04.02.2012, 00:25
По идее эффект должен получиться абсолютно такой же, как в "машине времени" от SOVA, если я правильно понял принцип ее действия.

Lambert
04.02.2012, 00:41
А еще можно заморочиться с аппаратными линиями задержки
их понадобится много, но модулей цветности от отечественных зомбоящиков 3УСЦТ сейчас навалом по рупь за ведро :)

scvosniak
04.02.2012, 01:11
По идее эффект должен получиться абсолютно такой же, как в "машине времени" от SOVA, если я правильно понял принцип ее действия.
ну так это только очная ставка, системы с машиной времени есть, но опять таки нужно подготовить запись под систему

nasa
04.02.2012, 01:36
Такой гемор. Лучше несколько кнопочек на пульте нажать, чем сидеть и выслушивать каждый диск. Конешно прикольно но геморойно.;) Лучьше проц купить чем ноут с собой возить. те же бабки.

nik_on_off
04.02.2012, 10:37
belyakov_e, больше всего напрягало, когда друзья просили послушать мои записи, но я им их дать не мог по понятным причинам они им не подходили
Проблем не вижу :)
Если у друзей типа безпроц, то некоторым может и понравиться, а если проц - то пусть перестроят... :D

Такой гемор. Лучше несколько кнопочек на пульте нажать, чем сидеть и выслушивать каждый диск.
???
Зачем выслушивать каждый диск? :maybe2: ОбЪясни плиз...


з.ы. ЕАС легко вырежет нужное кол-во сэмлов из правого канала, что по сути даст тот же эффект. Десяток подготовленных треков,прослушал,определился... и вот она НИРВАНА.:)

Suhodol
04.02.2012, 10:57
Отличное бюджетное решение (при достаточном опыте и навыках программирования)!

SOVA
04.02.2012, 11:34
По идее эффект должен получиться абсолютно такой же, как в "машине времени" от SOVA, если я правильно понял принцип ее действия.
Вы поняли всё совершенно правильно, и метод решения "для послушать" просто отличный. Дёшево и сердито, правда в несовместимости файлов и в потраченном времени на перезапись дисков.
А так, выкладывайте программу в библиотеку - многие будут слушать у себя в машине.

q_w_e_r_t_y
04.02.2012, 12:06
belyakov_e, а можешь скинуть прогу на мыло? смогу я её установить на свой айфон iOS 5.0.1 без джейла?

belyakov_e
04.02.2012, 16:55
belyakov_e, а можешь скинуть прогу на мыло? смогу я её установить на свой айфон iOS 5.0.1 без джейла?

Без джейла есть всего 2 способа закинуть прогу на телефон. Первый - это App Store, а второй - на телефоны, чьи идентификаторы привязаны к iOS Development Program. К одному таком аккаунту можно привязать до 100 аппаратов. Стоит аккаунт $99 в год. Собственно второй способ нужен во время разработки для тестирования программы. У меня есть рабочий аккаунт, но свободно я им естественно пользоваться не могу. Мой телефон туда внесен, а вот Ваш я туда внести не смогу.

Исходный код, если нужен, могу без проблем выслать.

Насчет джейла, если честно, я не знаю как на него ставить программы. Сколько лет пишу под айфон, а с джейлом сталкиваться не приходилось, все как-то за деньги и для апп стора работал :)

Да и функционал проги - способность воспроизвести всего 2 зашитых в нее файла с настраиваемой на лету задержкой. Нужна всего на пару мину т (может часов) по сути для поиска нужного значения.

Что касается программы уже под компьютер, которая собственно переделывает wav файлы, то ее я собрал под Mac OS X. В принципе она написана на чистом С, без использования каких-то специфичных вещей макоса, так что я могу ее пересобрать и под винду. Если есть желающие, я поставлю себе Visual Studio и соберу. Но если EAC способен вырезать N семплов в правом канале, то это по сути то же самое. Исходные коды этой программы я могу тоже без проблем выслать если кому-то интересно.

q_w_e_r_t_y
04.02.2012, 17:41
спасибо!)

belyakov_e
04.02.2012, 19:04
у меня макось, кинь плз прогу на q_w_e_r_t_y@ukr.net

Отправил

nik_on_off
05.02.2012, 19:29
Вчера от грусти "твикнул" ЕАСом один диск (вспомнив какие задержки стояли в 53-м Альпе:)), сегодня послушал...

ЭтО имеет полное право на жизнь :yes3:

Cobox
05.02.2012, 19:52
По идее эффект должен получиться абсолютно такой же, как в "машине времени" от SOVA, если я правильно понял принцип ее действия.
Абсолютно верно! :yes3:
Если у друзей типа безпроц, то некоторым может и понравиться, а если проц - то пусть перестроят...
Ага,только Рсотик прав:
Не дам, у мене записи для Лачетті! А в тебе що?
ибо у нас абсолютно разные салоны и разный инсталл, а значит разные задержки должны быть.
Кстати, перед тем как обратиться к Илье с просьбой изобрести "машинку времени" для своего DRX, я слушал музыку именно после такой обработки WAV файлов и когда я свел свою систему полностью и понял, что мне достаточно всего одного смещения в одном канале, я попросил Илью разработать такой приборчик, что бы не морочится больше с переписыванием файлов. Кстати, я обращался ко многим разработчикам, но никто не брался делать мой заказ, а кто брался, то те брались только при условии:"сначала 100% предоплата, но без гарантированого результата" и только Илья сказал:"утром -задаток, в обед - машинка времени, вечером - деньги", т.е. рисковали мы обое, я задатком на материалы, он - потраченым своим драгоценным временем. А не так как другие - все риски взваливали на меня. За что Илье огромный респект! :beer:

Zluka
08.02.2012, 07:41
Всёэто замечательно но всё же подскажите как организовать задержки без проца:wall:

Cobox
08.02.2012, 08:42
Zluka,
http://autozvuk.org/forum2/showthread.php?t=11868&highlight=%EC%E0%F8%E8%ED%E0+%E2%F0%E5%EC%E5%ED%E8 +%C8%EB%FC%FF

valun
08.07.2012, 22:30
А на андроид такую програмку можно написать? Плеер cowon d3 на андроиде и с него можно легко снять цифру.

valun
25.07.2012, 23:11
Еще одна мсля посетила. Почти все хд медиаплееры работают на линуксе, можно и там в прошивке покопаться и заставить канал оттягивать. Как жаль что я туп в этом :D