Чтобы написть синтезатор на С++ достаточно знать всего 2 ключевых слова
Как известно, программировать на С++ очень весело и просто, если при этом использовать хорошую библиотеку, которая делает создание простых вещей простым а сложных — возможным (да, конечно же я говорю об Arctic Engine)
Рассмотрим программу «синтезатор», на написание которой у вас уйдет всего пара минут, после чего вы сможете называть себя программистом! Программа, которая обрабатывает нажатия кнопок Z, X, С так будто это клавиши синтезатора ДО, РЕ, МИ, состоит из 12 строк:
Блок-схему этой программы можно изобразить следующим образом:
Рассмотрим что делает каждая строка программы:
1 s:
Строка 1 ничего не делает, но в этой строке стоит метка с именем s. На эту метку можно переходить при помощи goto.
2 if (IsKey("Z")) {
В строке 2 при помощи функции IsKey() определяется, нажата ли кнопка Z клавиатуры. Если кнопка нажата, функция возвращает значение «истина» и выполняется код, заключенный в фигурные скобки (открывающаяся скобка в конце строки 2 и закрывающаяся в строке 4.)
3 Beep(0.25, 0);
Код в строке 3 проигрывает на протяжении 0.25 секунд ноту с числовым кодом 0. Соответствие числовых кодов нотам основной октавы приведено выше на картинке, нота с кодом 0 это нота «ДО».
4 }
Код в строке 4 сам по себе ничего не делает, закрывающаяся фигурная скобка обозначает завершение блока кода, начавшегося в конце строки 2.
5 if (IsKey("X")) {
В строке 5 снова используется функция IsKey(), на этот раз проверяется, нажата ли кнопка X. Если нажата, то функция возвращает значение «истина» и выполняется код, заключенный в фигурные скобки (открывающаяся скобка в конце строки 5 и закрывающаяся в строке 7.)
6 Beep(0.25, 2);
Код в строке 6 проигрывает на протяжении 0.25 секунд ноту с числовым кодом 2, то есть «РЕ» основной откавы.
7 }
Фигурная скобка в строке 7 обозначает завершение блока кода, начавшегося в конце строки 5.
8 if (IsKey("C")) {
В строке 8 в третий раз используется функция IsKey(), проверяется, нажата ли кнопка C. Если нажата, то функция возвращает значение «истина» и выполняется код, заключенный в фигурные скобки (открывающаяся скобка в конце строки 8 и закрывающаяся в строке 10.)
9 Beep(0.25, 4);
Код в строке 9 проигрывает на протяжении 0.25 секунд ноту «МИ», то есть ноту с числовым кодом 4.
10 }
Фигурная скобка в строке 10 завершает блок кода начавшийся в строке 8.
11 Show();
Функция Show() выводит на экран подготовленное изображение и получает в программу обновленное состояние клавиатуры и мышки.
12 goto s;
Эта команда безусловного перехода на метку s приводит к тому, что выполнение программы продолжается с того места, в котором стоит метка s, то есть со строки 1.
Вот так, используя всего 2 ключевых слова можно написать на С++ синтезатор. Да, конечно, у этого синтезатора всего 3 кнопки, но я не сомневаюсь, что вы с легкостью допишете еще несколько строк кода и ваш синтезатор получит столько кнопок сколько вы пожелаете.