Можно ли работать со звуковой картой в системе и создавать заметки на языке Си? - PullRequest
0 голосов
/ 10 июня 2011

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

Ответы [ 3 ]

2 голосов
/ 10 июня 2011

См. Этот ответ SO Потоковая передача данных на звуковую карту с помощью C в Windows

, который указывает на http://www.portaudio.com/

PortAudio - это бесплатная кроссплатформенная библиотека ввода-вывода с открытым исходным кодом. Он позволяет вам писать простые аудиопрограммы на «C» или C ++, которые будут компилироваться и работать на многих платформах, включая Windows, Macintosh OS X и Unix (OSS / ALSA). Он предназначен для содействия обмену аудио программным обеспечением между разработчиками на разных платформах. Многие приложения используют PortAudio для ввода-вывода аудио.

PortAudio предоставляет очень простой API для записи и / или воспроизведения звука, используя простую функцию обратного вызова или блокирующий интерфейс чтения / записи. Включены примеры программ, которые воспроизводят синусоидальные волны, обрабатывают входной аудиосигнал (гитарный пух), записывают и воспроизводят звук, выводят список доступных аудиоустройств и т. Д.

0 голосов
/ 10 июня 2011

Я не специалист по генерации звука, но ... Конечно, это возможно.Что-то нужно, чтобы в какой-то момент вызывать звуковую карту в любом приложении, использующем аудио, в конце концов.

Однако почти во всех случаях лучше совершать вызовы API и разрешать существующую звуковую карту.Водитель системы делает всю занятую работу.Гораздо более переносимым (... по крайней мере, в некоторой степени) и гораздо более простым.

http://www.linux.com/archive/feature/113775 может иметь некоторую полезную информацию.В Windows Vista / 7 вы можете проверить http://msdn.microsoft.com/en-us/library/dd370784%28v=vs.85%29.aspx.

О, и во многих случаях вам лучше использовать существующую библиотеку программного обеспечения, которая может создавать заметки, а не пытаться самостоятельно генерировать сигналы.(См. Ответ Фредрика.)

0 голосов
/ 10 июня 2011

Да, это возможно.Реализация этого будет в значительной степени зависеть от системы, для которой вы будете кодировать.

У вас, как правило, будет возможность работать с выходом ЦАП (цифро-аналоговый преобразователь) или, возможно, с доступом к MIDI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...