Fl Studio Cоздание пианоролл-скриптов

(Новая страница: «{{Цикл статей Fl Studio}} '''Скрипты пианоролла''' позволяют управлять нотными данными в пианоролле с помощью кода на [https://www.python.org/ '''Python''']. Например, можно выбрать все ноты выше C3 (номер MIDI-ноты 36). center == Форум поддержки == Посетите фор...»)
 
(нет различий)

Текущая версия от 15:02, 19 июня 2025

Данная статья является частью цикла статей "Fl Studio"

Скрипты пианоролла позволяют управлять нотными данными в пианоролле с помощью кода на 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') Отображает введенное сообщение. Например, Привет, мир.