Электронный метроном на ЭКВМ "Электроника МК"


Главная / ЭКВМ / Программы для ЭКВМ / Прикладные задачи

Программа занимает 87 байт и может заменить довольно сложный электронный метроном при занятиях музыкой. Особенно в тех случаях, когда приобретение узко специализированного устройства представляется нецелесообразным.

С её помощью ЭКВМ может воспроизводить ритмический рисунок длиной от 1 до 8, состоящий из ударов трех типов: пауза (нет удара), обычный и выделенный. Если указать длину 1 и обычный сигнал, то получаем электронный аналог механического метронома.

Метроном

  x0 x1 x2 x3 x4 x5 x6 x7 x8 x9
0x 6 0 ИПА ÷ 1 0 0 × 2 -
1x ПС ИПВ РП 16 Flg 1 + П9 П0 1
2x Р П 17 ИПВ 1 0 ÷ K{x} FBx K[x] ПВ
3x 1 0 × PK П 17 Р ИП 17 1 +
4x Р П 17 FL0 22 Р ИП 16 ПВ ИП9 П0 0
5x ИПС РР П 90 52 РР ИП 90 52 Fx=0 54 РК ИП
6x 00 Fx=0 66 0 БП 74 1 - Fx=0 73
7x ИПD БП 74 ИПЕ 2 РР П 90 52 РР ИП 90
8x 52 Fx=0 78 FL0 49 БП 47      

Перед началом работы в RA следует записать темп, число ударов метронома в минуту. В RB заносится ритмический рисунок - целое число, состоящее из цифр 0, 1 и 2. Воспроизводится он слева-направо. Ноль будет обозначать паузу, единица обычный сигнал, а двойка выделенный. Частоты звучания сигнала метронома для единицы и двойки следует занести в RD и RE соответственно.

Для имитации простого метронома достаточно в RB записать число 1. Если записать 211, получим ритм вальса. Числа 11211 и 1121211 соответствуют известным джазовым ритмам, и так далее. Длина записанного числа определяется автоматически. Естественно, ритм при этом не может начинаться с пауз. Но зато может ими заканчиваться, что, в конечном итоге, безразлично.

После записи чисел в регистры следует нажать "В/О", "С/П" для начала работы. Для останова программы нажать "С/П".

Программа состоит из двух частей.

В адресах 00-46 содержимое RB преобразуется и заносится в R1-R9 для ускорения последующей обработки. В 00-10 значение темпа из RA преобразуется в величину периода цикла метронома, выраженную в сотых долях секунды. Число 2 по адресам 08 и 74 определяет длительность удара метронома. В первом случае оно уменьшает значение периода для записи в RC. Для изменения звучания удара это значение можно изменить, но только в обоих адресах одновременно. В 11-18 определяется длина ритма и заносится в R9 и R0. Содержимое RB временно переносится в R16. В 19-43 число из RB разбивается на отдельные цифры и заносится в регистры R1-R8, начиная с R1. Хотя проверок нет, поэтому при вводе неверного значения в RB перед запуском программа будет работать неправильно. В адресах 44-46 из R16 восстанавливается RB. При текущем запуске значение RB больше не требуется, но оно нужно для последующих запусков программы.

В адресах 47-86 расположен цикл метронома. В 47-48 длина ритма переносится из R9 в R0 для организации цикла.

В 49-58 вырабатывается пауза между ударами. Для этого происходит обращение к функции формирования звукового сигнала с частотой 0 (в регистре Y). Собственно звук при этом не вырабатывается, но регистр используется как таймер. Время считывается из RC и передается команде "РР П 9052" в регистре X. После этого значение считывается из таймера до тех пор, пока в нем не появится нулевое значение. Проверка выполняется командами 54-58

В 59-73 происходит выбор типа очередного сигнала. Для этого в 59-60 косвенно считывается код очередного сигнала. В 61-65 происходит проверка на 0 и занесение в стек нуля. В 66-73 проверка на 1 и занесение в стек содержимого RD, если условие выполнено или RE, если не выполнено.

В 74-82 выполняется вывод звука. Длительность сигнала определяется числом 2, а частота содержимым стека, полученным в 59-73. Ожидание окончания звучания выполняется аналогично 54-58.

Команды 83-86 организуют цикл по ритмическому рисунку и бесконечное повторение этого цикла.

Громкость регулируется переменным резистором в отсеке регулировок. Если требуется значительное увеличение громкости звука, к ЭВМ можно подсоединить внешний усилитель. Для этого следует подключить его к контактам 15 (FOUT - звуковой сигнал) и 12 (GND - общий) разъема ВУ.



НПП "СЕМИКО" (383) 271-01-25 (многоканальный)