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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2013, 09:49   #1
Pir
Пользователь
 
Регистрация: 09.07.2013
Сообщений: 18
По умолчанию Воспроизведение звуков в С++ Builder 6

Добрый день Уважаемые программисты!
Необходима Ваша помощь.
Требуется: Воспроизвести 7 стандартных музыкальных нот средствами С++ Builder 6 или еще как нибудь. Смотрел функции MesageBeep и PlaySound. Последние позволяют воспроизводить только внешние файлы музыки.
Как можно реализовать воспроизведение музыкальных нот?

Заранее спасибо!

Последний раз редактировалось Pir; 09.07.2013 в 10:00.
Pir вне форума Ответить с цитированием
Старый 09.07.2013, 10:37   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Читайте про Beep()
waleri вне форума Ответить с цитированием
Старый 09.07.2013, 12:17   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

WaveForm API.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 15.07.2013, 15:45   #4
Pir
Пользователь
 
Регистрация: 09.07.2013
Сообщений: 18
По умолчанию

С воспроизведением нот разобрался. Действовал через миди: midiOutOpen(&Out,0,0,0,0);
Msg= (0x90 + (20 * 0x100) + (0x7f * 0x10000));
midiOutShortMsg(Out,Msg);

Получил достаточно хорошее звучание нот. Большое спасибо.

Есть еще 1 вопрос. Воспроизведение нот делаю в цикле в зависимости от введенных значений чисел следующим образом (кусок кода):
__fastcall TForm1::MidiOutOpen(int m_num)
{
if(m_num == 1)
{ midiOutOpen(&Out,0,0,0,0);
Msg= (0x90 + (20 * 0x100) + (0x7f * 0x10000));
midiOutShortMsg(Out,Msg);
stopForSecond();
}


else if(m_num == 2)
{ midiOutOpen(&Out,0,0,0,0);
Msg= (0x90 + (24 * 0x100) + (0x7f * 0x10000));
midiOutShortMsg(Out,Msg);
stopForSecond();
}

и т.д...
Все компилируется на ура, но вот при запуске звучит только один звук(видимо первый). Получается что не отрабатывается цикл? Помогите пожалуйста.
Pir вне форума Ответить с цитированием
Старый 20.07.2013, 11:04   #5
Pir
Пользователь
 
Регистрация: 09.07.2013
Сообщений: 18
По умолчанию

Не у кого нет никаких решений?Помогите плиз
Pir вне форума Ответить с цитированием
Старый 20.07.2013, 11:35   #6
Stertor
Заблокирован
 
Регистрация: 17.07.2013
Сообщений: 104
По умолчанию

Так подойдет?

http://yadelphi.ru/forum/32-293-1
Stertor вне форума Ответить с цитированием
Старый 24.07.2013, 12:57   #7
Pir
Пользователь
 
Регистрация: 09.07.2013
Сообщений: 18
По умолчанию

Большое спасибо за помощь!Так и буду использовать!
Pir вне форума Ответить с цитированием
Старый 30.07.2013, 18:53   #8
Pir
Пользователь
 
Регистрация: 09.07.2013
Сообщений: 18
По умолчанию

Доброго дня всем!

Кто подскажет? Если писать код для миди

Msg= (0x90 + (20 * 0x100) + (0x7f * 0x10000));
midiOutShortMsg(Out,Msg);

где 20- определенная музыкальная нота, как вместо числа 20 поставить нецелое число? например 20,89 или любое другое.
Pir вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Воспроизведение звуков roulis2844sasha PHP 1 20.04.2012 09:57
Воспроизведение звуков наложеных друг на друга fate Общие вопросы Delphi 6 22.06.2011 09:19
Программное воспроизведение звуков Олег* Microsoft Office Word 13 26.03.2011 13:53
Воспроизведение звуков и gif анимации Парфеншество Помощь студентам 0 17.10.2010 15:19
Воспроизведение нескольких звуков одновременно GodSmack Общие вопросы Delphi 3 13.08.2009 02:28