![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| marykone |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2722 Регистрация: 2.5.2006 Где: Краснодар Репутация: нет Всего: 67 |
я вас правильно понял дорогой модератор если да то формат файлов wav суть микширования такова необходимо что бы проигрывался основной файл(1.wav) и с определенной задержкой другой (2.wav) вроде такого пожалуйста помогите буду рад любой информации !!! и ОСОБЕННО примерам и исходникам заранеее спасибо !!! помогите бедному студенту !! извините что не так -------------------- получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы). |
|||
|
||||
| DemoCode |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 890 Регистрация: 20.10.2005 Где: Россия Репутация: 1 Всего: 41 |
-------------------- Жить стало лучше, жить стало веселей © И.В. Сталин |
|||
|
||||
| marykone |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2722 Регистрация: 2.5.2006 Где: Краснодар Репутация: нет Всего: 67 |
не очень то я и нахожу здесь ответ
-------------------- получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы). |
|||
|
||||
| DemoCode |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 890 Регистрация: 20.10.2005 Где: Россия Репутация: 1 Всего: 41 |
Вот немного переделал пример из той темы. Устанавливаем нужную задержку в Timer1, делаем его enabled в False. При нажатии на кнопку начинает играть BackgroundMusic.wav, а через заданный интервал времени AnotherMusic.wav -------------------- Жить стало лучше, жить стало веселей © И.В. Сталин |
|||
|
||||
| marykone |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2722 Регистрация: 2.5.2006 Где: Краснодар Репутация: нет Всего: 67 |
так мне же надо чтобы не одновременно (ну пусть с задержкой ) играли 2 файла а из 2х сделать один извините если не так объяснил задачу
-------------------- получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы). |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
marykone, чтоб из двух сделать 1 надо будет сложить звуковые данные приведенные в одинаковый формат(просто сложить значения выборок и затем если надо уменьшить амплитуду результирующей выборки). Пример чтения и записи wav я приводил здесьhttp://forum.vingrad.ru/index.php?showtopi...0%D1%82,and,wav
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| marykone |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2722 Регистрация: 2.5.2006 Где: Краснодар Репутация: нет Всего: 67 |
спасибо --> alexeis1<-- за помощь
еще бы примерчик сложения извини за наглость просто туповат я в delphi -------------------- получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы). |
|||
|
||||
| Alexeis |
|
||||||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Здесь совсем просто!
Пусть имеем два потока данных Strm1, Strm2 (16 бит моно) и переменные W1, W2 типа SmallInt; Выходной поток RStrm, переменная для хранения суммы S типа SmallInt Для сумирования необходимо правельно установить указатели потоков
Читаем из потоков
Микшируем
Записываем полученную выборку в поток
И повторяем операцию пока не просумируем все выборки(сэмплы) Далее записываем все все нужные чанки в файловый поток затем записываем чанк данных (идентификатор размер и Поток данных RStrm) Как записывать чанки и данные описанно в статье и кроме того имеется пример создания нового Wav файла и записи в него аудио данных. Это сообщение отредактировал(а) alexeis1 - 12.5.2006, 16:07 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||||||
|
|||||||||
| marykone |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2722 Регистрация: 2.5.2006 Где: Краснодар Репутация: нет Всего: 67 |
а при таком микшированиии
у меня получится эхом ? а почему деление на 2 ? извините за глупые вопросы !!!! спасибо за помощь -------------------- получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы). |
||||
|
|||||
| marykone |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2722 Регистрация: 2.5.2006 Где: Краснодар Репутация: нет Всего: 67 |
можно пояснить эту строчку (объяснить другими словами или еще лучше на примере) -------------------- получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы). |
|||
|
||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Если не делить на два то возможно произойдет зашкаливание сэмпла (выход из границ типа), напимер для звука 16 бит если w1 будет +32000 и w2 тоже +32000, то сумма +64000, что в smallInt никак не поместится. Эхом получится если смешивать правый и левый каналы (я писал этот вариант для моно), а если смешивать различные то все будет нормально. Вообще суть микширования состоит в линейном сумировании входных сигналов Y = k1*x1 + k2*x2 + ... + kn*xn; т.е. сумировании с различным ослаблением (или усилением) Вариант S := (W1 + W2) div 2; ни что иное как Y = 1/2 *x1 + 1/2 * x2;
таим образом RStrm будет содержать сумарный сигнал длинны наиболее короткой дорожки (из strm1 и strm2) -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
| marykone |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2722 Регистрация: 2.5.2006 Где: Краснодар Репутация: нет Всего: 67 |
спасибо огромное тебе alexeis1 очень выручаешь и просвещаешь глупцов вроде меня
-------------------- получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы). |
|||
|
||||
| marykone |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2722 Регистрация: 2.5.2006 Где: Краснодар Репутация: нет Всего: 67 |
дорогой alexeis1 извини но это опять я
я вот вроде записал микшированный звук с помощью readwave , writewave но у меня возникла проблемма файл который выходящий он не проигрывается не подскажешь ли в чем проблемма
помоги пожалуйста бездарности -------------------- получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы). |
|||
|
||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
marykone, Насколько я понял смешиваются левый и правый канал стерео сигнала 16 бит. Если так то размерность цикла неверная
Размер фрейма 4 байта, Данный цикл читает файл фреймами, а количество фреймов вычисляется по формуле r2.Data.Size div (wChannels * wBitsPerSample div 8) т.е. число байт данных разделить на число байт фрейма. кроме того отсчитывая от нуля мы получим неверное число фреймов (надо от единицы либо верхнюю границу делать -1) Зачем было делать две ссылки на один поток также непонятно
Можно было просто
более того чтение производится из пустого потока Поток получили в r2 А ссылку получили на r1(откуда в нем данные не очевидно) Программы проверяют соответствие указанного размера и действительного и поэтому не проигрывают файлы неполного размера. С этим я совершенно не согласен! Все мы учимся, и я в том числе (для меня формат wav тоже новый, просто я сел и за несколько вечеров изучил основные моменты, которые меня интересовали). Это сообщение отредактировал(а) alexeis1 - 19.5.2006, 12:44 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
| marykone |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2722 Регистрация: 2.5.2006 Где: Краснодар Репутация: нет Всего: 67 |
спасибо alexeis1
насчет вот этого я проглядел
насчет r1 он у меня на другом баттоне загружается аналогично r2 извини забыл сказать и смешивание производится не 2 - х каналов а как раз звуковые данные из 1 вав и 2 вав у меня получилось только очень и очень криво суть вообще моего проекта такова нужно в вав 1 (музыка) засунуть другой вав 2 (речь человека) и что бы при проигрывании 1 вав не было слышно 2 вав (это метод из стеганографии называется эхо - эфект) спасибо за помощь !!!!!!! Добавлено @ 13:28 вообще аналогичная задача рассматривается сдесьмикширование вот именно это мне и нужно меня убивает то что человек задал короткий и внятный вопрос а я людям мозги забиваю глупостями -------------------- получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы). |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |