$

4. Музыкальный инструмент

Пришло время сделать из клавиатуры музыкальный инструмент. Если каждой из 12 нот назначить свою клавишу клавиатуры, мы получим музыкальную клавиатуру, на которой можно играть. Алгоритм очень простой: 
1) когда нажата клавиша → 2) звучит ее нота. 

 
Как добавить возможность извлечения звуков разных октав? Можно закрепить звуки других октав за другими клавишами или прибавить переключатели октав, например, при нажатии на числовую клавишу будут звучать ноты закрепленной октавы: 1 - субконтроктави, 2 - контроктавы, 3 - большой октавы, 4 - малой октавы, 5 - первой, 6 - второй, 7 - третьей, 8 - четвертой и 9 - пятой. Для этого понадобится переменная номера октавы, которую мы назовем #, и список значений октава. Первая октава станет точкой отсчета, потому ее значение равняется 0. Октавам слева присвоим отрицательные значения, а справа - положительные (Рис. 15.8).

 
Рис. 15.8. Числовая ось октав
Так как между одинаковыми нотами соседних октав всегда 12 единиц, используя одну простую формулу, мы сможем вычислить ноту любой октавы: нота Х октавы N = нота Х 1-й октавы + (12 *значение октавы N) Например, если мы хотим сыграть ноту ДО большой октавы, нужно к 60 (ее значение в первой октаве) прибавить произведение 12 *- 2 =- 24. Так как прибавление к положительному числу (60) отрицательного числа (- 24) приводит к вычитанию, мы получим число 36, это и есть нота ДО большой октаве. В Скретче эта формула выглядит так: 
  1. Откройте проект упражнение_15_3.

  2. Создайте список девяти значений октав с именем октава (рис.15.9).

Рис. 15.9. Список значений октав
 

3. Создайте переменную с именем # для выбора элементов списка октава.

4. Переключение октав поручим сцене. Соберите для сцены девять скриптов для выбора октав после нажатия на числовую клавишу (Рис. 15.10)


Рис. 15.10. Скрипты выбора октавы после нажатия на числовую клавишу клавиатуры
5. Сделайте 12 спрайтов для 12 нот, например, так:
Рис. 15.11. Образы спрайтов нот на сцене
 

Изображения нот можно для наглядности расположить на сцене в порядке роста высоты звуков (Рис. 15.11). 6. Используя схему клавиатуры (Рис. 15.12), соберите скрипты (рис.15.13) музыкальных клавиш для каждой ноты.

Рис. 15.12. Модель виртуальной первой октавы
Рис. 15.13. Скрипт музыкальной клавиши для ноты ДО (60)
7. Проверьте работу скрипта - при нажатии на запрограммированные клавиши должны звучать ноты. Поиграйте на музыкальной клавиатуре в разных октавах. Сохраните проект в файле упражнение_15_4.

 

$