Скрипты пианоролла позволяют управлять нотными данными в пианоролле с помощью кода на Python. Например, можно выбрать все ноты выше C3 (номер MIDI-ноты 36).

Форум поддержки
Посетите форум пользователей FL Studio, посвящённый скриптам для пианоролла, чтобы скачать скрипты, задать вопросы или обсудить скриптинг и Python в целом.
Расположение и названия файлов скриптов
FL Studio проверяет перечисленные ниже каталоги и отображает все найденные скрипты в меню скриптов пианоролла. Если вы создаёте или редактируете скрипты, размещайте их в подпапке Piano roll scripts (скрипты пианоролла) в папке User data (пользовательские данные). Интерфейсы скриптов создаются автоматически на основе переменных и полей для ввода текста в скрипте.
- Названия файлов скриптов — файлы должны заканчиваться расширением .pyscript. Пример: Любое название здесь.pyscript.
- Скрипты, доступные для редактирования пользователем — при создании собственных скриптов или редактировании встроенных, сохраняйте их в следующую папку:
- Папка пользовательских скриптов — ...\Документы\Image-Line\FL Studio\Settings\Piano roll scripts. Примечание: Можно использовать подпапки, чтобы создавать категории в меню скриптов пианоролла.
- Папки установки по умолчанию — мы не рекомендуем редактировать скрипты или содержимое этих папок. Вместо этого скопируйте нужные скрипты в свою "папку пользовательских скриптов" и добавьте к названию, например, "edited", чтобы не запутаться. Если вы пожалуетесь на баги в заводских скриптах, вызванные тем, что вы их отредактировали, не следуя этим рекомендациям — наша служба поддержки вас строго пожурит.
- Скрипты, загруженные из библиотеки браузера — ...\Документы\Image-Line\Downloads\Piano roll scripts. Скрипты, загруженные из браузера FL Studio.
- Установка в Windows — ...\FL Studio 2024\System\Config\Piano roll scripts. Заводские скрипты, установленные вместе с программой.
- Установка в macOS — .../Applications/FL Studio 2024/Contents/Resources/FL/System/Config/Piano roll scripts. Заводские скрипты, установленные вместе с программой.
Примечание: Проверьте папку заводских скриптов на наличие файла Piano roll script reference.txt. Он может быть более актуальным, чем информация в этом разделе справки.
Примеры скриптов
Вам не нужно устанавливать Python, FL Studio сам интерпретирует скрипты. Скрипты — это обычные текстовые файлы с расширением .pyscript. Например: Mute selected notes.pyscript — как в примере ниже.
Один из лучших способов научиться писать скрипты — скопировать простой скрипт и начать его редактировать, чтобы понять, как он работает. Например, изменять текстовые сообщения скрипта и т.д.
Заглушить выбранные ноты
from flpianoroll import *
# Перебираем все существующие ноты и устанавливаем флаг "muted" for i in range(score.noteCount): score.getNote(i).muted = True
Скрипт с использованием функции предварительного просмотра
from flpianoroll import *
def createDialog():
form = ScriptDialog('Add One Note', )
form.AddInputKnob('Note Number', 36, 24, 48)
return form
def apply(form):
notenr = round(form.GetInputValue('Note Number'))
# ... здесь добавьте действия с выбранной нотой
Ссылка на API
| Объект | Члены | Примечания |
| # | Комментарии пользователя | Строки комментариев начинаются с # |
| Note | ||
| number | номер ноты (по стандарту MIDI) | |
| time | тики | |
| length | тики | |
| group | номер группы, к которой принадлежит нота | |
| pan | от 0.0 до 1.0, по умолчанию 0.5 | |
| velocity | от 0.0 до 1.0, по умолчанию 0.8 | |
| release | от 0.0 до 1.0 | |
| color | от 0 до 15, по умолчанию 0. Группа цвета / MIDI-канал | |
| fcut | от 0.0 до 1.0, по умолчанию 0.5 | |
| fres | от 0.0 до 1.0, по умолчанию 0.5 | |
| pitchofs | от -120 до 120 | |
| slide | True/False | |
| porta | True/False | |
| muted | True/False | |
| selected | True/False | |
| clone() | дублирует ноту или ноты | |
| Marker | ||
| time | тики | |
| name | имя маркера | |
| mode | целое число | |
| tsnum | если маркер временная сигнатура | |
| tsden | если маркер временная сигнатура | |
| scale_root (масштабирование только маркеров) | нотный класс тоники гаммы, где C = 0 (int) | |
| scale_helper (масштабирование только маркеров) | разделенная запятыми строка, представляющая классы нот от C до B, с '0' для нот в пределах гаммы и '1' для нот вне гаммы. Например, C# Major (Ionian) будет иметь scale_helper '1,0,1,0,1,0,1,0,1,0,0,0' | |
| Score | ||
| Используется глобальная переменная 'score' для доступа к функциям: | ||
| PPQ | количество тиков на четвертную ноту (только для чтения) | |
| tsnum | числитель временной сигнатуры текущего проекта (только для чтения) | |
| tsden | знаменатель временной сигнатуры текущего проекта (только для чтения) | |
| clear([all]) | удалить ноты и маркеры. Укажите "True", чтобы удалить всё, а не только выбранное. | |
| clearNotes([all]) | удалить ноты. Укажите "True", чтобы удалить всё, а не только выбранное. | |
| clearMarkers([all]) | удалить маркеры. Укажите "True", чтобы удалить всё, а не только выбранное. | |
| noteCount | количество нот (только для чтения) | |
| addNote(note) | добавить новую ноту | |
| getNote(index) | получить ноту | |
| deleteNote(index) | удалить индексированную ноту | |
| markerCount | количество маркеров (только для чтения) | |
| addMarker(marker) | добавить маркер | |
| getMarker(index) | получить индекс маркеров | |
| deleteMarker(index) | удалить индексированный маркер | |
| ScriptDialog | ||
| ScriptDialog(Title, Description) | инициализация нового диалога скрипта | |
| AddInput(aName,Value) | Добавляет общий элемент управления ввода | |
| AddInputKnob(aName, Value, Min, Max) | Добавляет ручку управления ввода с плавающей точкой | |
| AddInputKnobInt(aName, Value, Min, Max) | Добавляет ручку управления ввода с целочисленным значением | |
| AddInputCombo(aName, ValueList, Value) | Добавляет элемент управления ввода в виде выпадающего списка | |
| AddInputText(aName, Value) | Добавляет элемент управления ввода текстом | |
| AddInputCheckbox(aName, Value) | Добавляет элемент управления ввода флажка с логическим значением | |
| GetInputValue(aName) | Получить текущее значение ввода с указанным названием | |
| Execute | как диалог. Возвращает TRUE, если пользователь нажал OK, FALSE, если диалог был отменен | |
| TUtils | ||
| ProgressMsg(Msg,Pos,Total) | показать сообщение о прогрессе | |
| ShowMessage(Msg) | показать сообщение в диалоговом окне | |
| log(Msg) | Записывает строку во вкладку журнала отладки FL Studio. | |
| Utility functions | ||
| Используйте глобальную переменную Utils для доступа к функциям: | ||
| Utils.ShowMessage('Hello world') | Отображает введенное сообщение. Например, Привет, мир. |