Здравствуйте, господа! Меня зовут Миша и мне очень важно получить ваш совет.
Передо мной появилась серьезная задача. Требуется создать такую программу, которая позволит работать со звуком в прямом потоке (через микрофон) и в записи. А именно:
1. Анализировать звуковые колебания, деля звуковую дорожку на десятые доли секунды.
2. Показывать в интерфейсе программы соответствующий график.
Какие средства программирования тут следует использовать?
Рационально ли будет интегрировать в C++ Excel для работы с графиками и DirectX для работы с аудио?
Выбор среды программирования
Модераторы: Duncon, Hawk, Romeo, Eugie
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Интегрироваться с Excel ради прорисовки графика - это кошмарное решение. У Excel несколько другое предназначение. Подтягивать соответствующий ActiveX только ради прорисовки графика выглядит, как пальба из крупнокалиберного корабельного орудия по тараканам.
Использование DirectSound (части DirectX), напротив, не только весьма желательно, а, собственно, другого "правильного" способа-то и нет.
Использование DirectSound (части DirectX), напротив, не только весьма желательно, а, собственно, другого "правильного" способа-то и нет.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Не соглашусь. В WinAPI для этого специально придумали универсальные мультимедийные функции, которые не требуют знания специфики какого либо устройства. Поверх них находится довольно удобный интерфейс общения с устройствами - MCI.Использование DirectSound (части DirectX), напротив, не только весьма желательно, а, собственно, другого "правильного" способа-то и нет.
Для работы с микрофоном, например, можно почитать про функции:
waveInOpen()
waveInPrepareHeader()
waveInAddBuffer()
waveInStart()
waveInReset()
waveInUnprepareHeader()
waveInClose()
Код, который осуществляет запись и рисование графика "на лету" легко умещается в 50 строк.
It's a long way to the top if you wanna rock'n'roll
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Да, MCI тоже подходит. Для простых задач его более, чем достаточно.
Если что, DirectSound тоже не требует знаний специфики устройств. Отвязывание кода высокого уровня от специфики железа - это как бы основной принцип DirectX
Если что, DirectSound тоже не требует знаний специфики устройств. Отвязывание кода высокого уровня от специфики железа - это как бы основной принцип DirectX

Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Romeo писал(а):Да, MCI тоже подходит. Для простых задач его более, чем достаточно.
Если что, DirectSound тоже не требует знаний специфики устройств. Отвязывание кода высокого уровня от специфики железа - это как бы основной принцип DirectX![]()
К чему относится библиотека BASS.DLL? Я решил делать через неё, так как о ней много информации в интернете.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Если честно, первый раз о ней слышу.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
#48438327#2289#12#765
Gorka, a US citizen who was born in Britain and has Hungarian parents, was known for his dire warnings about Islamic terrorism while at Breitbart.
http://google.com/
Though his role at the White House was always nebulous, he emerged as a top spokesman for the Trump administration, frequently appearing on CNN and other networks.
The Washington Examiner first reported Gorka's expected departure.
http://edition.cnn.com/2017/04/30/polit ... index.html
Gorka, a US citizen who was born in Britain and has Hungarian parents, was known for his dire warnings about Islamic terrorism while at Breitbart.
http://google.com/
Though his role at the White House was always nebulous, he emerged as a top spokesman for the Trump administration, frequently appearing on CNN and other networks.
The Washington Examiner first reported Gorka's expected departure.
http://edition.cnn.com/2017/04/30/polit ... index.html