Win32 API | MIDI | Windows Media Format SDK (wma/mp3) | Direct Sound | OpenAL | ASIO | Vorbis OGG | Прочие исходники | Мой блог о программировании для iOS (зеркало блога) | Мои любимые книги по программированию | Написать письмо администратору сайта | Видеообзоры по игре Майнкрафт (Minecraft)

Программирование звука в Windows (С++)

 

На этом сайте вы можете найти простые и краткие примеры кода для Windows на языке Си++ (их можно использовать в программах на C#, если вставлять небезопасный код на C++). Эти примеры позволят вашим программам издавать звуки. По мере возможности, сайт будет пополняться новыми примерами. Сайт родился 15 февраля 2009 года. Сайт создаётся силами музыканта и программиста из Новосибирска Мурата Джусупова (домашняя страничка, программы для развития музыкального слуха (на yellow-gold-soft.ru), программы для развития музыкального слуха (на yellow-gold-soft.com)). Ваше желание опубликовать здесь свои примеры будет приветствоваться.

Тема программирования звука напрямую не связана с тонкостями языка Си++. Здесь приходится использовать такие технологии как Win32 API, ASIO, DirectSound, OpenAL и некоторые другие.

Если вам нужны подробные сведения, то советую обратить внимание на статьи Евгения Музыченко. Некоторые его статьи я планирую разместить на этом сайте. Если вы хорошо владеете английским, то очень поможет MSDN.

Я постоянно сталкиваюсь с нехваткой примеров кода в области программирования звука. Несмотря на обилие подробных объяснений в MSDN мне часто приходится искать элементарный пример применения той или иной функции. Мне жалко терять целые дни или недели для изучения нескольких новых функций. Иногда достаточно увидеть хороший краткий пример, и понимание приходит быстрее. Этот сайт я делаю для себя, чтобы в любой точке земного шара получать доступ к испытанным примерам кода на Си++.

Какими знаниями должен обладать читатель для того, чтобы материалы этого сайта оказались ему полезны? Читатель должен знать язык Си++ хотя бы на начальном уровне. Желательно иметь представление о том, как взаимодействует ОС Windows с запущенной программой. Впрочем, даже консольная программа может воспроизводить звуки с помощью тех же функций, которые используются в оконных программах для Windows.

Необходимо иметь на своём компьютере установленную среду программирования для Windows (мне очень нравятся Visual Studio и Borland C++ Builder). На русском языке можно найти много справочной документации по этим инструментам программиста (и это хорошая новость для нашего брата).

Внимание! Перед тем как компилировать какой-либо пример, убедитесь, что перед вызовом функций, работающих со звуком в начале исходника есть #include Linker -> Input -> Additional Dependencies, (4) в найденное поле введите winmm.lib. Указанное действие нужно сделать как для Release, так и для Debug версии проекта (для этого достаточно переключить Debug на Release и убедиться, что в обоих вариантах видна введённая строка "winmm.lib"). В Borland C++ Builder 5 у меня всё работает и без добавления библиотеки winmm.lib (во всяком случае я её сам не добавлял, вероятно, что winmm.lib там присоединяется по умолчанию). А вообще в Borland C++ Builder 5 добавление библиотеки происходит через меню Project -> Add to Project, или через меню View -> Project Manager. При этом надо умудриться найти где-то нужный lib-файл (как правило, следует порыться в папках установленной программы Borland C++ Builder).

Буду очень признателен, если читатели будут присылать мне свои статьи или ссылки на примеры кода в области программирования звука. Это будет здесь публиковаться.

С 2008 года работаю программистом, из них с 2009 года пишу приложения только для iOS (и в свободное время немного занимаюсь PHP+MySQL). В качестве шпаргалки записываю свой опыт в блог о программировании средствами iOS SDK (зеркало блога).

Win32 API | MIDI | Windows Media Format SDK (wma/mp3) | Direct Sound | OpenAL | ASIO | Vorbis OGG | Прочие исходники | Мой блог о программировании для iOS (зеркало блога) | Мои любимые книги по программированию | Написать письмо администратору сайта