Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Адам_Хромов_48
2 / 1 / 1
Регистрация: 07.11.2018
Сообщений: 11
1

Вывод нот с помощью функции Beep()

14.11.2018, 16:34. Просмотров 2067. Ответов 7
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане.
Я не такой уж и новичок в С++, но только начал изучать его функции для разных видов данных. Вот существует такая функция Beep(). Может ли кто-нибудь написать с помощью этой функции программку которая поочередно выводит ноты:
До, ре, ми, фа, соль, ля, си, си, ля, до, до, ре, ми, фа.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2018, 16:34
Ответы с готовыми решениями:

Аналог функции Beep
Всем ку! Совсем недавно начал изучать C++ и в частности воспроизведение звука. Набрел на функцию...

Вывод данных с помощью функции printf()
Помогите пож: Задано определенный символ. Написать выражение который проверяет этот ли символ с...

Как узнать частоту wav файла, для функции Beep
Добрый день! Подскажите как из файла формата wav, взять массив частот в герцах, для команды Beep?...

С помощью рекурсивной функции осуществить вывод на экран элементов одномерного массива
С помощью рекурсивной функции осуществить вывод на экран элементов одномерного массива

Низкоуровневый ввод-вывод. Как с помощью функции write записать в файл тип int?
Работаю в Ubuntu.По заданию требуется использовать функции низкоуровневого ввода-вывода.Как с...

7
Azazel-San
Mental handicap
1044 / 522 / 147
Регистрация: 24.11.2015
Сообщений: 2,125
Завершенные тесты: 1
14.11.2018, 16:48 2
Лучший ответ Сообщение было отмечено Адам_Хромов_48 как решение

Решение

Цитата Сообщение от Адам_Хромов_48 Посмотреть сообщение
Может ли кто-нибудь написать с помощью этой функции программку которая поочередно выводит ноты
Цитата Сообщение от Адам_Хромов_48 Посмотреть сообщение
Я не такой уж и новичок в С++, но только начал изучать его функции для разных видов данных.
Вы изучаете, так попробуйте написать сами

Все есть в интернете:
Beep function
Октавная система

Цитата Сообщение от Адам_Хромов_48 Посмотреть сообщение
Вот существует такая функция Beep()
Ну и это вам скорее в раздел WinAPI надо было.
1
Nishen
668 / 433 / 221
Регистрация: 26.02.2015
Сообщений: 1,995
Завершенные тесты: 3
14.11.2018, 16:49 3
Не можешь один параметр в функцию передать?
0
Адам_Хромов_48
2 / 1 / 1
Регистрация: 07.11.2018
Сообщений: 11
14.11.2018, 17:00  [ТС] 4
Nishen, я просто не знал точного параметра для функции, чтобы получился точный звук
0
14.11.2018, 17:00
TRam_
зомбяк
1249 / 938 / 279
Регистрация: 14.05.2017
Сообщений: 3,063
14.11.2018, 17:03 5
https://ru.wikipedia.org/wiki/Октавная_система
Но накладывать несколько нот для одновременного воспроизведения нельзя, только последовательное или с паузами воспроизведение.
1
anapshy
255 / 236 / 199
Регистрация: 14.11.2016
Сообщений: 890
Завершенные тесты: 3
14.11.2018, 17:43 6
Лучший ответ Сообщение было отмечено Адам_Хромов_48 как решение

Решение

https://ru.wikipedia.org/wiki/Октавная_система
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <map>
#include <windows.h>
 
std::map<char, double> note {
    {'C', 32.703}, {'D', 36.708}, {'E', 41.203}, // До, Ре, Ми
    {'F', 43.654}, {'G', 48.999}, {'A', 55.}, // Фа, Соль, Ля
    {'H', 61.735}}; // Си
 
const int duration{400}; // миллисекунд
const int octave{4}; // октава
 
int main()
{
    while (1){
            Beep(note['C'] * octave, duration);
            Beep(note['D'] * octave, duration);
            Beep(note['E'] * octave, duration);
            Beep(note['F'] * octave, duration);
            Beep(note['G'] * octave, duration);
            Beep(note['A'] * octave, duration);
            Beep(note['H'] * octave, duration);
 
            Beep(note['H'] * octave, duration);
            Beep(note['A'] * octave, duration);
            Beep(note['G'] * octave, duration);
 
            Beep(note['C'] * octave, duration);
            Beep(note['D'] * octave, duration);
            Beep(note['E'] * octave, duration);
            Beep(note['F'] * octave, duration);
    }
}
2
TRam_
зомбяк
1249 / 938 / 279
Регистрация: 14.05.2017
Сообщений: 3,063
14.11.2018, 19:03 7
anapshy, только лучше 10ую октаву поставить, а то не слышно почти ничего.
0
anapshy
255 / 236 / 199
Регистрация: 14.11.2016
Сообщений: 890
Завершенные тесты: 3
14.11.2018, 19:36 8
TRam_, ой, там не 4 надо было, действительно. Там же с каждой октавой частоты удваиваются. Надо на 8 умножать И тогда будет чистая "первая октава" с которой начинается по дефолту гамма "До".
0
14.11.2018, 19:36
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2018, 19:36

Вывод фамилии, имени и отчества с помощью функции с явно заданными или частично пропущенными параметрами
1 Написать функцию с параметрами по умолчанию в соответствии с вариантом , продемонстрировать...

Запись музыкальных фрагментов с помощью нот
С помощью 7 нот записываются музыкальные фрагменты (ноты выбираются из списка) длиною до 20 нот....

Какая минимальная частота воспроизведения звука функции Beep?
Здравствуйте. У меня есть вопрос. Какая минимальная частота воспроизведения звука функции Beep?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru