51

Re: Разбор архитектуры софта ЯЗС

Составил список команд, которые понимает MIDIGED. Аж 48 штук. Многие из них ждут параметры и проверяют диапазоны значений, поэтому методом тыка так просто с ними не разберешься.

Пока выяснял назначение команд, нашел несколько сюрпризов. Первый - с форматом файла. Я был уверен, что это стандартный формат, уже описанный в этой теме раньше. Оказалось - не совсем. Во-первых, в нем 16 каналов, а не 7. Поэтому, при загрузке 7-канальных файлов редактор начинает глючить и виснет. Во-вторых, часть команд была изменена. Вместо команды расстройки (коды $E0 - $EF) были добавлены:
- команда "выбор MIDI канала" с кодом $E0 и параметром - кодом MIDI сообщения NOTE_ON с номером канала.
- команда "установка Velocity" с кодом $E1 и параметром - значением Velocity.

Кроме того, оба редактора (MIDIGED и MUSAGED) могут добавлять команду с кодом $C4, которую ни одна версия плеера не понимает. Но судя по уголку, который эта команда рисует на экране - это знак отмены повышения или понижения октавы. Похоже, что разработчики редактора хотели сделать обычную нотную запись, когда начало и конец области, где ноты играются выше или ниже чем записаны, отмечаются специальными знаками. А разработчики плеера увидели, что отмену повышения на октаву можно сделать командой понижения на октаву (и наоборот) и делать "лишнюю" команду не стали.

Интересно, что хотя редактор переделан под MIDI, в нем остались команды, привязанные к ЯЗС, например задание длительности атаки. Впрочем, с этим понятно - поскольку время MIDI сообщений не хранится, моменты включения и выключения нот определяются по нотному тексту, а длительность атаки как раз влияет на время выключения ноты.

Редактор вообще впечатляет своими возможностями (16 каналов, графический режим, печать). Но, несмотря на это мне кажется, что пользоваться им было не очень удобно. Вот, например, нужно музыканту записать аккорд до-мажор. Для этого надо записать три ноты одну над другой: "до", "ми" и "соль". Программы для работы с MIDI хотя бы из середины 90-х именно так и позволяют это записать. Но в MIDIGED в одном канале одновременно может звучать только одна нота. Поэтому надо записать "до", переключиться на второй канал, найти там тот же момент времени, записать там "ми", переключиться на третий и записать там "соль". То есть, нет наглядности. Музыкантов учат распознавать аккорды просто по внешнему виду, а тут надо щелкать по каналам и собирать аккорд по отдельным нотам. Ну и разбивки по тактам нет, что тоже не помогает ориентироваться в тексте. В общем, возможностей для улучшения оставлено много :)

Post's attachments

Attachment icon midiged_commands.txt 2.75 kb, 45 downloads since 2018-02-10