Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2011, 11:34   #1
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию Генерация звука, программирование midi

Я создавал на C++ только консольные приложения, про графическое оформление не знаю. Как-то нашел код для генерации звука на спикере, уже не помню, где, все работало. Сейчас задача стоит в том, чтобы во-первых, хотя бы воссоздать эту программу, во-вторых, разобраться в ней, а в третьих, уже не выводить сигнал на спикер, а получить его с помощью звуковой карты. Вчера весь день пролазил в поиске, но что ни вставляю в компилятор, программа все вылетает при запуске. Пишут на форумах, что нужно добавлять библиотеку и включать файл, делал и это, но если файл поставить не в начале, выдает под 20 ошибок. Запутался, поэтому дайте хоть старт, самый простой код, чтобы на спикер выводился сгенерированный процессором (сопроцессором) сигнал. Вообще-то работал с ноутбука, может в этом проблема? Нужен минимальный набор команд (можно и функциями). Не помню, что я пробовал, вечером еще покопаюсь, приведу код. Но там все по объему, как будто на ассемблере. Надо что-нибудь попроще для начала!

Последний раз редактировалось Krasi; 07.03.2011 в 11:36.
Krasi вне форума Ответить с цитированием
Старый 07.03.2011, 14:04   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Смешались в кучу кони, люди.

Во-первых, спикер и звуковые карты работают принципиально по-разному, т.е. создав рабочий код для спикера, вы не на миллиметр не продвинитесь в сторону звука для звуковой карты. Всё от начала до конца нужно будет переписывать. И да, без особых ухищрений спикер будет работать только на винде 3.1/95/98/Me, но не выше.

Во-вторых, решите под какую ОС вам нужен код? Если только под винду, то смотрите в сторону старого MME, или DirectMusic, или свежего Core Audio для Висты и выше.

Если кроссплатформенное, то смотрите на Qt Multimedia, OpenAL, Port Audio, да вобще тысячи их.

Ну и в-третьих, MIDI к этому не имеет ни малейшего отношения ) Ну т.е. это тоже генерация звука, но на основе команд, а не waveform. Хотя часто звуковые сэмплы и используют для улушения звучания миди, это уже отдельная история.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 07.03.2011, 18:44   #3
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Цитата:
работают принципиально по-разному
Ну само собой, просто мне надо будет потом эмулировать на плисе отдельно процессор. А пока я с усилителем практикуюсь, поэтому интересно узнать про программирование midi, звуковой карты и тп.
Цитата:
решите под какую ОС вам нужен код
Windows Vista. Я вообще хз, есть ли на ноутбуке спикер. Но выход под него, наверное, есть, но почему тогда компилятор ругается. Может библиотек нет.
Цитата:
сэмплы
Как раз сэмплы и не нужны. Сейчас буду смотреть=( Резко все это понадобилось, думаю пока туговато, а спросить не у кого.

Уже не понял, что такое portaudio? Всмысле как с этой кучкой файлов работать?:D Что за .in файлы? Дошло только то, что надо запустить .../msvc/portaudio.dsp. В это времяу меня был открыт portaudio.dsw, выдало ошибку в записи файла. Потом открывается что-то типа проекта, при компиляции этого всего происходит ошибка. В блокноте пишут, что можно теперь вызывать это все с помощью библиотеки. Ничего не понял) Ну боюсь дальше запутаться, а еще почему ошибка-то
с помощью MME тоже не получается. Создал новый проект "solo", ничего не делал кроме того, что сделал содержимое solo.cpp таким:
Код:
// solo.cpp : Defines the entry point for the console application.
//
#include <mmsystem.h>
#include <windows.h>
#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
	BOOL WINAPI MessageBeep(
  __in  UINT 0xFFFFFFFF
);
	return 0;
}
Сейчас попробовал подключить библиотеку user32.lib (правый щелк по проекту->prop.->linker->input->add....). Не помогает

Последний раз редактировалось Stilet; 08.03.2011 в 10:28.
Krasi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программная генерация звука на Ассемблире my_sappho_story Помощь студентам 14 05.12.2010 15:54
Генерация звука Caleb Общие вопросы по Java, Java SE, Kotlin 0 21.11.2010 17:36
Программирование MIDI-контроллёров. Или работа со звуком (.midi). sergeyrudnev Помощь студентам 0 16.06.2010 19:19
Генерация звука N!ckeL Общие вопросы Delphi 1 19.06.2008 09:19
Генерация звука (assembler) SerGeO3x Помощь студентам 1 17.06.2008 19:01