Win32 API | MIDI | Windows Media Format SDK (wma/mp3) | Direct Sound | OpenAL | ASIO |
Vorbis OGG | Прочие исходники | Мои любимые книги по программированию | Написать письмо администратору сайта
На этом сайте вы можете найти простые и краткие примеры кода для 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). На русском языке можно
найти много справочной документации по этим инструментам программиста (и это хорошая новость для нашего брата).
Буду очень признателен,
если читатели будут присылать мне свои статьи или ссылки на примеры кода в области программирования звука. Это будет здесь публиковаться. В настоящее время я уже более 2-х лет работаю программистом, последний год пишу приложения для iPhone. Весь мой опыт кратко описан в резюме программиста C++ (Win32, iPhone, OpenGL, OpenAL, Direct Sound, ASIO). В настоящий момент я готов рассмотреть интересные предложения по работе в городе Новосибирске. В качестве шпаргалки записываю свой опыт в блог о программировании средствами iPhone SDK (зеркало 1, зеркало 2).
Win32 API | MIDI | Windows Media Format SDK (wma/mp3) | Direct Sound | OpenAL | ASIO |
Vorbis OGG | Прочие исходники | Мои любимые книги по программированию | Написать письмо администратору сайта
Программирование звука в Windows (С++)
Внимание! Перед тем как компилировать какой-либо пример, убедитесь, что перед вызовом функций, работающих со звуком в начале исходника есть #include <mmsystem.h>. В Visual C++ проектах такие #include можно один раз вставлять в файл stdafx.h (если я не ошибаюсь, иногда может потребоваться #include <windows.h>, но как правило у меня всё компилировалось без ручного добавления этой строки). Кроме того, нужно присобачить к проекту библиотеку winmm.lib. В Visual C++ проектах это делается так: (1) наведите мышку на имя проекта в Solutions Explorer, (2) кликнув правой кнопкой мыши, выберите Properties, (3) Далее найдите там Configuration Properties -> 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).