Работа с многослойной музыкой в программе Пианола
Окно «Пианолы_М», в которую загружен файл с многослойной нотной записью, показан на иллюстрации. Это пробный файл. Файлы с нотными записями имеют текстовый формат, и такой файл можно прочитать в Блокнотике. Он выглядит так:
{Имя мелодии}N1
1 {03420 0|Q2ZCDEFGA }
1 {13420 0|@3>bagfedagfedc }
2 {03420 0|BAGFED }
2 {13420 0|>cdefgadefgab }
,,,
Файл содержит две строки, каждая из которых, помимо нулевого слоя, имеет один дополнительный слой. На число дополнительных слоёв указывает запись N1 после имени мелодии. По этой записи программа узнаёт, в каком именно виде следует вводить строки файла. Если указания N1 после имени мелодии не будет, то программа прочтёт 4 строки подряд, и расположит их на нулевом слое.
На номер слоя и на число слоёв, с которыми ведётся работа, указывает цифра на кнопке у верхней кромки окна.
ВВОД И ВЫВОД
На ввод из файла эта цифра никакого влияния не оказывает, но при выводе будет выведен только слой, на который она указывает. Чтобы вывести большее количество слоёв, нужно выставить это количество на кнопке и кликом по метке «режим вывода» установить её в тёмно синее состояние, так, как это показано на иллюстрации. Вторичный клик по метке вернёт ей обычный светло голубой цвет и вернёт обычный режим вывода.
Таким образом, музыка, находящаяся в памяти программы, может быть выведена как целиком, так и по отдельным слоям. Если музыка при выводе была разделена и размещена по разным файлам, то её можно снова соединить, использовав для первого вводимого файла обычный ввод, а для последующих – розовую кнопку-лайк «ввести и совместить», не забывая при этом выставлять номер слоя, на который будет вводиться очередной файл для совмещения с уже введёнными.
Если многослойная музыка введена и находится в памяти, то к ней (к окончанию её строк) можно добавить аналогичный пакет многослойной музыки. Для этого режима ввода используется сиреневая кнопка-лайк «добавить».
Коротенькая тёмно красная кнопка-лайк слева используется для очистки памяти и для начала работы с программой, как говорится, с чистого листа.
ПРОИГРЫВАНИЕ
Предположим, что строки файла, приведённые выше, введены в программу. Проигрывание их будет зависеть от того, какой кнопкой оно будет запущено (кн.«play» или голубые кнопки внизу панели), от цифры, указывающей на номер слоя, и от состояния кнопки режима проигрывания.
В режиме проигрывания «___» от нажатия «play» будут последовательно проиграны все строки того слоя на номер которого указывает цифра.
В режиме «---» сначала проигрываются слои первой строки (от 0 до указанного цифрой), затем слои второй строки и так далее.
В режиме «===» при проигрывании строк совмещается звук указанного цифрой числа слоёв.
Правая голубая кнопка снизу (с надписью >>) в режимах «___» и «---» организует проигрывание только одной строки, то есть текущей, и только одного слоя, то есть, будут проиграны только те ноты, которые мы видим в окне программы. Режим «===» при проигрывании от голубой кнопки проиграет текущую строку, совместив звуки её слоёв от нулевого до указанного цифрой.
Тёмный кружочек на этой голубой кнопке организует проигрывание строк от первой до текущей во всех режимах (то есть, так же, как от кнопки «play», но не все строки), а светлый кружок проиграет аналогичным образом сначала предыдущую строку, а затем – текущую.
Другая голубая кнопка (с надписью >) работает только в режимах «___», «---» и для одной строки. Она проигрывает строку, показанную в окне, от её начала до положения курсора (или до первого знака ! если такой знак в строке имеется).
СЛОЖЕНИЕ ЗВУКА В БУФЕРЕ
Сложение звука, создаваемого слоями, происходит в накопительном буфере ArB, вмещающем 960000 одиночных семплов в целочисленной форме. Что соответствует 15 секундам звучания музыки.
Этот буфер большой, но разгружается он, переводя семплы в звуковой файл, не весь, а небольшими порциями, в момент его полного заполнения, и по окончании проигрывания – до уровня своего заполнения.
При сложении в буфере звуков, последовательно приходящих от нескольких слоёв, существует опасность превысить допустимый размер целого числа - 32000. Поэтому при его заполнении применяется особая форма сложения:
ArB(I) = ArM(J) / FMM + ArB(I) / FMM * (FMM - 1)
где ArM это буфер-источник, а FMM – номер слоя, с которого в буфер добавляется звук. Звук первого слоя в буфер ArB попросту записывается, а в дальнейшем начинает работать эта формула. Легко видеть, что звуки от первого и второго слоя складываются и делятся пополам, а вклад последующих слоёв оказывается всё меньше и меньше.
Если музыка на слоях идеально коррелирована, то, есть, если на слоях записано в точности одно и то же, то тогда по приведённой выше формуле мы получим одинаковый результат, хоть от одного слоя, хоть от восьми, однако, при некоррелированных звуках, что обычно и бывает, по мере увеличения числа слоёв общая слышимая громкость уменьшается, и это является недостатком. Конечно, сделанную запись можно просто усилить, но хотелось бы, чтобы ожидаемая громкость получалась бы сразу. Кроме того, делая усиление, нужно проследить за тем, чтобы амплитуда не превышала бы формат целого числа.
Всё это удобно реализовать при разгрузке буфера – нужно не просто переписывать семплы из буфера в файл, а усиливать их (в число раз равное числу слоёв) и обрезать амплитуду на максимально допустимом уровне. Всё это в программе «Пианола-М» реализовано, опробовано и прекрасно работает.
БОЛЬШОЙ БУФЕР
Буфер, вмещающий 30 четвертных нот и рассчитанный на 15 секунд звука включается и выключается жёлтой кнопкой на верхней панели, когда буфер включён, то на кнопке стоит буква Б. Включать и выключать большой буфер также можно, делая в нотной строке указания K и K0.
При включённом большом буфере этот же размер принимает и буфер, вводимый указанием M (хотя и без этого он достаточно большой - рассчитан на 10 секунд звука).
Большой буфер позволяет расположить в строке и сбросить за один раз большое количество нот, что бывает удобно, особенно, когда эти ноты имеют длительное звучание.
СОВМЕСТИМОСТЬ ПРОГРАММ «Пианола» и «Пианола_М»
Файлы с мнемонической записью нот, которые использует «Пианола», могут быть загружены в «Пианолу_М» - отсутствие указания N после имени мелодии в этих файлах трактуется как указание N0, то есть на то, что этот файл однослойный. Соответствующим образом он и будет введён в программу. Надо только позаботиться о том, чтобы число диезов или бемолей в ключе в префиксах вводимых строк были указаны явно.
Строки, написанные в тональности До мажор, можно оставить без изменений, а начала строк с другими тональностями нужно изменить следующим образом:
{03420| меняем на {03420 2| для тональности с двумя диезами,
{03420| меняем на {03420-6| для тональности с шестью бемолями (6 это наибольшее количество знаков, какое можно указывать в ключе).
Такие изменения удобно делать в Блокнотике, используя опцию «найти и заменить».
При вводе однослойных файлов можно пуститься ещё на одну хитрость – указать для них большее число слоёв. Написать, например N6 – тогда при вводе строки распределяться по слоям, и с ними можно будет успешно работать в режиме «---» примерно так, как мы работаем со строками в программе «Пианола».
Голубая кнопка >> проиграет текущую строку выбранного слоя, светлый кружочек на этой кнопке организует последовательный проигрыш слоёв предыдущей строки и затем проиграет слои текущей строки. Надо только не забыть поставить то максимальное число, которое Вы для них предусмотрели.
Неудобство в описанном режиме работы составляет только то, что опциями R-повторов практически можно будет пользоваться только в пределах текущей строки, поскольку в программе Пианола_М для каждого слоя R-повторы индивидуальны. Но зато память для нотных строк огромная – не 50 строк, как в «Пианоле», а в 8 раз большая.
Запуск файлов, сделанных в «Пианоле-М», в в обычной Пианоле никаких проблем не составляет. Все они воспринимаются, как однослойные. Но опять же, в связи с исчезновением прямых указаний на тональность в ключе, при переходе на новую тональность, нужно задавать число диезов или бемолей в строке, тогда это число появится на кнопке и будет работать дальше, то есть, для последующих строк.
Работа с Пианолой_М лишь немногим сложнее, чем работа с обычной Пианолой, и Вы быстро освоитесь с ней. В настоящее время программа уже готова и отлажена. Скачать программу «Пианола_М» можно отсюда https://disk.yandex.ru/d/5v4Bd5b3et_u5g
Работает она в среде Виндос 7.
__________
21.06.2024
Свидетельство о публикации №124062101335