Начало работы с аудиопрограммами
Я ищу для создания некоторых интерфейсов сжатия для аудио Windows, и мне было интересно, могут ли кто-нибудь узнать о некоторых советах/трюках? Я бы хотел создать собственный программный эквалайзер, который будет работать со всей аудиосистемой Windows, а не только с конкретной программой. Я знаю, что это можно сделать - у моей звуковой карты есть один встроенный, но у меня недостаточно каналов для моих вкусов.
Я совершенно новичок в звуковом программировании, но мне бы очень хотелось прорваться в него и испортить мне руки. Если вы можете придумать какие-либо учебники/ссылки/статьи/советы, я бы хотел их услышать!
Я использую Visual Studio С++ 2008.
Ответы
Ответ 1
Если вы хотите, чтобы ваши руки были грязными с вещами DSP, я предлагаю начать с программирования VST. Написание плагина - отличный способ обходиться с манипуляциями в реальном времени без необходимости беспокоиться о подключении к системному оборудованию, драйверам и т.д. В принципе, секвенсер заботится обо всем этом для вас, и ваш плагин просто получает буфер с данными с плавающей запятой, с которыми вы можете напрямую манипулировать.
Это, в целом, намного проще, чем пытаться написать плагин для управления данными, проходящими через аудиопотоки системы. Кроме того, аудио-API Windows значительно изменился с Vista, и в зависимости от того, какая версия Windows вы используете, вам нужно будет следовать различным соглашениям, чтобы заставить ваши вещи работать.
Но снова - начните просто. Получите VST SDK, ознакомьтесь с некоторыми учебниками и начните с детскими ступеньками.:)
Ответ 2
Вот некоторые ссылки, которые были очень полезны для меня:
Ответ 3
Попробуйте musicdsp архив для хорошего кода примера для аудиоэффектов.
форум разработчиков KvR - отличное место, чтобы получить помощь по написанию VST и эффектов в целом.
Что касается аудио API Windows, их много. Наиболее широко поддерживается WinMM. Последним и самым новым является новый интерфейс WASAPI, представленный с Vista.
Наконец, для достижения общесистемного эффекта эквалайзера вам может потребоваться изучить интерфейсы нижнего уровня, такие как sAPO
Ответ 4
Нежным введением в программирование VST является SynthEdit... www.synthedit.com, он обеспечивает перетаскивание программной среды, продвигаясь к написанию собственных С++-аддонов. Вы можете выполнять "скучные" биты (графический интерфейс) с помощью drag-and-drop и "забавных" алгоритмических бит в С++.
Ответ 5
Вероятно, вам нужно взглянуть на DirectSound, но имейте в виду, что вскоре его заменит XAudio2 - возможно, в Windows 7. Я должен подумать, что DirectSound будет продолжать поддерживаться на некоторое время дольше, так как это было в течение длительного времени.