Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.78
Atlant_V
8 / 8 / 1
Регистрация: 14.08.2013
Сообщений: 99
#1

микширование файлов wav - C++

29.08.2013, 17:47. Просмотров 2500. Ответов 37
Метки нет (Все метки)

Нужна помощь, нужно написать микшер, чтобы воспроизводилось два файла в формате wav. возможно кто-то писал видел, поделитесь ... А если нет, то возможно кто-то поделится идеями-советами?

На рис. приблизительно то, что я должен сделать.
0
Миниатюры
микширование файлов wav  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2013, 17:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос микширование файлов wav (C++):

Редактирование wav файлов - C++
Добрый день, друзья. Подскажите, кто сможет, как в С++ именно в консольном приложении редактировать аудио файлы? В большом и широком...

Паузы между проигрыванием wav файлов - C++
Добрый день ,есть загвоздка с воспроизведением звуковых файлов ,воспроизводя поочередно их ,образуется довольно заметная пауза : ...

Извлечение WAV - файлов из ресурсов и их использование - C++
Добрый день! Сразу скажу, что тема относится к OpenAL, но подобного раздела на форуме (или хотя бы раздела программирования звука), нет,...

Написать программу, формирующую по исходному WAV файлу новый WAV файл - C++
Написать программу, формирующую по исходному WAV файлу новый WAV файл, со сглаженным вершинами перегруженных (клипированных) фрагментов....

Генерация видео из набора кадров + микширование. - C++
Задача следующая: есть набор кадров в виде массива r,g,b и аудиофайл. Надо на выходе получить стандартный видеофайл (.mp4, .avi и.т.п.). ...

Wav в bmp - C++
Подскажите, пожалуйста, как разложить побитово wav-file и сложить его в bmp? Можно примеры кода?

37
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,080
Записей в блоге: 10
Завершенные тесты: 1
29.08.2013, 18:06 #2
Что конкретно надо? На рисунке микшер - это Mixer. Смешивать файлы можно просто: (s1 + s2) / 2
, где s1 - сигнал первого канала, s2 - второго
1
Atlant_V
8 / 8 / 1
Регистрация: 14.08.2013
Сообщений: 99
29.08.2013, 18:28  [ТС] #3
Цитата Сообщение от castaway Посмотреть сообщение
(s1 + s2) / 2
, где s1 - сигнал первого канала, s2 - второго
это будет работать для двух wav файлов?

Добавлено через 2 минуты
Цитата Сообщение от castaway Посмотреть сообщение
Что конкретно надо?
Конкретно, нужно микшировать два wav файла и затем пускать их на колонки
0
Игорь с++
437 / 460 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
29.08.2013, 18:32 #4
тоже давно интересно как воспроизвести 2 wav файла одновременно (не используя всякие mciSendString).
0
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,080
Записей в блоге: 10
Завершенные тесты: 1
29.08.2013, 18:35 #5
Цитата Сообщение от Atlant_V Посмотреть сообщение
это будет работать для двух wav файлов?
Это звучит удивительно, но это будет работать и для трёх, и для 4-х ...
Цитата Сообщение от Atlant_V Посмотреть сообщение
Конкретно, нужно микшировать два wav файла и затем пускать их на колонки
Ок. Поставим вопрос по-другому. Что ты подразумеваешь под микшированием?
0
Atlant_V
8 / 8 / 1
Регистрация: 14.08.2013
Сообщений: 99
29.08.2013, 18:43  [ТС] #6
Я неправильно понял вопрос. Должно браться на вход два файла и затем они воспроизводиться одновременно, то есть накладываться один на один. То есть на колонках человек должен слышать два файла как один.

Добавлено через 2 минуты
Цитата Сообщение от Игорь с++ Посмотреть сообщение
не используя всякие mciSendString
это как?
0
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,080
Записей в блоге: 10
Завершенные тесты: 1
29.08.2013, 18:44 #7
Цитата Сообщение от Atlant_V Посмотреть сообщение
Я неправильно понял вопрос. Должно браться на вход два файла и затем они воспроизводиться одновременно, то есть накладываться один на один. То есть на колонках человек должен слышать два файла как один.
Я повторяю вопрос: что конкретно не получается? Чем конкретно тебе помочь?
0
Atlant_V
8 / 8 / 1
Регистрация: 14.08.2013
Сообщений: 99
29.08.2013, 18:47  [ТС] #8
Не все такие умные как ты! Именно, не знаю как "смешать" два файла.
0
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,080
Записей в блоге: 10
Завершенные тесты: 1
29.08.2013, 18:53 #9
Цитата Сообщение от Atlant_V Посмотреть сообщение
Не все такие умные как ты! Именно, не знаю как "смешать" два файла.
Я тебе сказал как смешать два файла. Или ты хочешь чтобы за тебя всю программу написали, которая включает в себя: загрузку аудио файлов, их микширование, открытие устройства вывода звуковой карты, вывод на звуковую карту, закрытие устройства вывода звуковой карты и прочие мелочи.. ?
0
Atlant_V
8 / 8 / 1
Регистрация: 14.08.2013
Сообщений: 99
29.08.2013, 18:55  [ТС] #10
программа у меня уже написана, мне усложнили задачу, поэтому я и спросил у кого какие идеи
0
raxp
10165 / 6551 / 477
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
29.08.2013, 19:08 #11
Раз написана, то вам не хватает одного звена - смешивания. Доступ к данным у вас есть, теперь смешивайте их по алгоритму среднего поста #2.
0
Ermak_nk
8 / 8 / 0
Регистрация: 11.08.2012
Сообщений: 109
29.08.2013, 19:24 #12
Если wav файл 16 бит, то 2 байта данных складываются, как описано выше, если 8 бит - то 1 байт. При этом надо учесть 2 канала используются или 1.
1
CheshireCat
Эксперт С++
2895 / 1244 / 78
Регистрация: 27.05.2008
Сообщений: 3,397
30.08.2013, 09:52 #13
И еще не забыть про частоты дискретизации. Потому что если частоты дискретизации файлов одинаковы, то метод из поста #2 отлично работает. А вот если различны, то все сильно хуже. Один из файлов придется предварительно передискретизировать.

Да, и 8-битное кодирование - это чаще всего сжатое кодирование (А-закон или мю-закон). Так что об этом тоже нужно подумать.
0
Atlant_V
8 / 8 / 1
Регистрация: 14.08.2013
Сообщений: 99
30.08.2013, 13:25  [ТС] #14
файлы 8 бит, используется один канал. Тот вариант s1+s2 не подходит. так как файлы могут быть разной длины. В зависимости от файла он должен играть постоянно, а другой проиграть раз.
0
CheshireCat
Эксперт С++
2895 / 1244 / 78
Регистрация: 27.05.2008
Сообщений: 3,397
30.08.2013, 14:16 #15
"файлы 8 бит"
А вот с этого места поподробнее.
0
30.08.2013, 14:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2013, 14:16
Привет! Вот еще темы с ответами:

обработка WAV на C++ - C++
Совсем не работал с форматами на C++. Задание следующее: Написать программу, формирующую по исходному WAV ( 8 бит на отсчет) файлу новый...

2 wav одновременно - C++
доброго времени суток всем. нужно одновременно проигрывать несколько wav файлов.. пробывал audiere, ничего сложного, но при попытке...

txt to wav - C++
имеется txt файл с отчетами сигнала с известной частотой, необходимо из этих отсчетов сделать wav файл. Подскажите пожалуйста по этому...

Шумящие биты в WAV - C++
Вот такой вопросик как писать программу для сохранения собственного сообщение в звуковом файле расширения .WAV программа должна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru