Dataflow программирование
Это определенный подход, когда для построения логики используются отдельные логические модули и путь данных через них. То есть, у нас есть отдельные элементы, которые выполняют какое-то действие (сложение, трансформация объекта, загрузка файла). Мы берем нужные нам и соединяем друг с другом, создавая цепочку действий, которая выполняет по очереди действия с данными, создавая нужный результат.
Например:
Открыть видео файл -> добавить видео в воспроизведение плеера и запустить -> картинку из плеера вывести на экран
Для использования Dataflow программирования не обязательно нужен графический интерфейс, но для создания realtime графики и музыки, используют именно его.
В интерфейсе каждая операция представлена отдельным графическим элементом, называется такой элемент нодой(node). Ноды соединяются друг с другом линиями, которые показывают цепочку действий.





В музыке, помимо нодовых программ, существуют модульные синтезаторы, в которых операции называются модулями, а соединения патч кордами. Это пошло от аналоговых модульных синтезаторов, чью логику, внешний вид и поведение перенесли в виде программы.


Программы данной группы сейчас самые популярные для создания realtime графики, так как они достаточно просты в освоении (название нод сделаны максимально комфортными для восприятия, из названия сразу ясна её задача), очень гибкая (легко вносятся коррективы), легко и быстро создаются программы (в блоках уже заложена логика, поэтому работа идет уже с готовыми элементами, что ускоряет разработку).
Но она не лишена недостатков: невозможность создать свою программу в виде бинарника (exe для windows, app для mac OS), за исключением flaretic и tooll. Из прошлого минуса вытекают следующие недостатки: повышенные затраты компьютерных ресурсов (вся программа в которой создавался проект, необходима для его запуска со всеми модулями и библиотеками, даже теми, что не используются в проекте, сам интерфейс также требует ресурсы). Компьютер, который будет использоваться для запуска проекта, требует обязательную начальную настройку. Вся логика программы доступна любому у кого есть доступ к компьютеру, где запущен проект. Хоть и существует обычно режим, который скрывает нодовый интерфейс, все равно, любой человек, знающий эту программу, сможет добраться до него (это будет минусом, только в том случае, если вы переживаете за свою интеллектуальную собственность). Поскольку для запуска требуется сама программа, в которой создавался проект, количество устройств, которые могут запустить проект ограничено. Все мобильные платформы, кроме планшетов на винде, не поддерживаются, (для андроида есть возможность у flaretic), Mac OS поддерживает меньшее количество программ, Linux прям совсем мало (по этому Raspberry pi и ему подобные миникомпьютере отпадают, помимо того что очень мало что работает с ними, так еще и потребление дополнительных ресурсов в таких компьютерах непозволительная роскошь).
Выводы
- если вы пользуетесь windows, это отличный выбор для перфомансов и лайвов. У вас настроенный рабочий компьютер, у которого хорошая производительность, всегда есть возможность на лету что-то подправить и переделать даже во время выступления. Так же подходит под инсталляции, так как есть возможность подготовки как заранее, так и внесение коррективов непосредственно на площадке.
- если вы пользуетесь Mac OS, то выбор графических программ поменьше, хорошо, что touchdesigner недавно стал доступен на маке. Плюс в плане видео карт у маков ситуация хуже и лишние затраты ресурсов не желательны. С музыкальными программами все отлично, так как они почти не используют видео карту и существует большое количество программ.
- если пользуетесь Linux, то тут выбор очень скуден в плане графических программ, а из того что есть не особо функциональные. Из музыкальных можно найти достойные варианты.
- если вы интересуетесь с целью применения для мобильных платформ, разочарую вас, софт пока не походит.
Программы из данной категории
Графика:
- VVVV — https://vvvv.org/
- TouchDesigner — http://www.derivative.ca/
- Flaretic — http://www.flaretic.com/
- Max/MSP — https://cycling74.com/products/max/
- Notch — https://www.notch.one/
- VENTUZ — https://www.ventuz.com/
- tooll.io — http://www.tooll.io/
- PaxisLIVE — https://www.praxislive.org/
- VSXu — http://www.vsxu.com/
Музыка:
- VCV Rack — https://vcvrack.com/
- Pure Data — https://puredata.info/
- Max/MSP — https://cycling74.com/products/max/
- REAKTOR — https://www.native-instruments.com/en/products/komplete/synths/reaktor-6/
- MODULAR — https://www.softube.com/modular
- SunVox — https://sunvox.en.lo4d.com/
- OSCiLLOT — http://maxforcats.com/oscillot-modular-synthesizer/
- BEAP — https://github.com/stretta/BEAP/wiki/BEAP-Modular---Overview-and-Install
Больше: https://t.me/m0d_le
