Музыкальный редактор CubaseSX


Работа в Logical Editor



6.5. Работа в Logical Editor

Работа над музыкальной композицией — это не только творчество. Приходится также выполнять массу рутинных операций, отнимающих много сил. Особо нудным занятием является редактирование однотипных параметров серии однотипных MIDI-сообщений. То нужно найти все ноты с определенным номером для того, чтобы затем отредактировать какой-либо из их параметров; то нужно, избавляясь от огрехов исполнения, удалить случайные ноты (как правило, очень короткие или очень тихие); то нужно транспонировать часть нот; то нужно удалить из списка сообщения определенного типа. Композиций у вас много, да все они содержат не по одному десятку треков, а сообщений на них — не сосчитать. Сколько драгоценного времени может уйти на подобную работу!
Нечто похожее наблюдается в математике, когда приходится, например, для получения графика тысячи раз повторять вычисления по одной и той же формуле, подставляя различные исходные данные. Математики давно изобрели способ облегчения своей и нашей жизни — программирование. Программист один раз пишет последовательность команд, а многократное их выполнение возлагает на вычислительную машину. В основе такого подхода лежит один из языков программирования, обеспечивающий перевод инструкций, формулируемых в удобном для человека виде, в код, понятный машине. Многие Windows-приложения содержат в себе встроенные языки программирования, позволяющие автоматизировать повторяющиеся операции и расширить функциональные возможности приложения. Так, например, в программе Cakewalk SONAR имеется встроенный язык CAL, позволяющий писать достаточно сложные программы обработки MIDI-данных. С нашей точки зрения, Logical Editor также можно рассматривать как графическое средство доступа к языку программирования последовательности операций с MIDI-сообще-ниями. Пожалуй, от типичных средств редактирования содержания компьютерных программ Logical Editor отличается лишь относительной простотой да еще формой составления программ. При работе с Logical Editor вам не потребуется вести посимвольную запись операторов программы. Вы их будете выбирать из числа тех, что предлагаются в меню и в списках.
В названии редактора слово "логический" присутствует не случайно. Ведь суть работы с Logical Editor состоит в следующем:
1. Вы задаете признаки, по которым программа должна выявить определенные MIDl-сообщения. Критерии поиска формулируются как совокупность логических условий. Например, на обычном человеческом языке это может выглядеть так: "Найти все MIDl-сообщения типа Note, для которых Velocity < 10".
2. Вы указываете программе последовательность действий, которые она должна выполнить по отношению к выявленным сообщениям. Например: "Удалить".
3. Вы определяете область, в пределах которой программа должна выполнять ваше задание. Например, выделяете часть на MIDI-треке.
Иными словами, в работе с редактором вы постоянно используете логические условия.
Вообще говоря, в математике существует обширный раздел, который так и называется "Логика". Одной из задач логики является исследование эффективных способов построения сложных логических высказываний на основе элементарных логических операторов. Среди различных логических систем особое место занимает двоичная (булева) логика, в которой и исходные объекты и результаты их обработки принимают только два значения. Обычно эти значения обозначаются как 0 и 1, или как ЛОЖЬ (FALSE) и ИСТИНА (TRUE). В частности, доказано, что самые сложные отношения между объектами (условия) могут быть выражены на основе суперпозиции всего лишь двух элементарных логических функций (операторов). Разработчики Logical Editor выполнили это условие с избытком: в качестве таких операторов выбраны три функции: NOT, AND и OR. Функции AND и OR присутствуют в явном виде, они так и обозначены: AND и OR. Функции NOT в явном виде вы здесь не найдете, но фактически, выбирая одно из двух условий Equal или Unequal, вы будете иметь дело именно с ней.
NOT — функция одной переменной. Она принимает значение 1, когда переменная равна 0, и 0, когда переменная равна 1.
Остальные логические функции позволяют работать с различным числом логических переменных. Для функций AND и OR минимальное количество переменных равно двум. Логические функции задаются в виде таблиц истинности. В табл. 6.1 приведена таблица истинности функции AND, а в табл. 6.2 — функции OR.



Таблица 6.1. Функция AND


Х2\Х,
0
1
0
0
0
1
0
1

Таблица 6.2. Функция OR

Х2\Х,
0
1
1
1
1
1 1 1
В верхней строке каждой таблицы приведены значения первой логической переменной (\i). В левом столбце — значения второй логической переменной (х2). На пересечении строки и столбца записан результат операции. Например, (1 AND 0) = 0, (1 AND 1) = 1, (0 OR 1) = 1
Словами табл. 6.1 можно описать так: в результате операции AND получится ИСТИНА, только в том случае, если обе переменные (х1 и х2) принимают значение ИСТИНА.
Смысл табл. 6.2 иной: в результате операции OR получится ИСТИНА, в том случае, если хотя бы одна из переменных (x1 или х2) принимает значение ИСТИНА.
Возможно, некоторым музыкантам и это легкое прикосновение к математике покажется слишком сложным. Но если вы хотите научиться пользоваться Logical Editor, то ничего не поделаешь, без понимания хотя бы элементарных вещей не обойтись. Ведь именно путем построения цепочки логических операторов вам предстоит объяснять программе задачу, которую вы ей ставите. Известная программистская мудрость гласит: "Что запрограммируешь, то и получишь". Не хотелось бы, чтобы, применяя Logical Editor, вместо удовольствия от работы, вы получали неожиданные неприятности.
Окно Logical Editor (Рисунок 6.31) открывается командой MIDI > Open Logical Editor.
С помощью Logical Editor определяются параметры поиска и преобразования MIDI-сообшений, записанных в части на MIDI-треке. Возможные варианты действий:
  • преобразование свойств найденных сообщений; 
  •  удаление найденных сообщений;
  •  вставка новых сообщений, параметры которых определенным образом связаны с найденными сообщениями.

В окне Logical Editor имеется два рабочих поля: в верхнем (столбцы (, Filter Target, Condition, Parameter 1, Parameter 2, Bar Range, ), bool) определяются условия фильтрации.



Содержание  Назад  Вперед