Visual

From Things and Stuff Wiki
(Redirected from Dataflow)
Jump to navigation Jump to search


General





Drakon


Scratch

  • Scratch - the world’s largest coding community for children and a coding language with a simple visual interface that allows young people to create digital stories, games, and animations. Scratch is designed, developed, and moderated by the Scratch Foundation, a nonprofit organization. Scratch promotes computational thinking and problem solving skills; creative teaching and learning; self-expression and collaboration; and equity in computing. Scratch is always free and is available in more than 70 languages.


  • https://en.wikipedia.org/wiki/Scratch_(programming_language) - a high-level block-based visual programming language and website aimed primarily at children as an educational tool, with a target audience of ages 8 to 16. Users on the site, called Scratchers, can create projects on the website using a block-like interface. Projects can be exported to standalone HTML5, Android apps, Bundle (macOS, and EXE files using external tools. Scratch was conceived and designed through collaborative National Science Foundation grants awarded to Mitchell Resnick and Yasmin Kafai. The service is developed by the MIT Media Lab, and has been translated into 70+ languages, and is used in most parts of the world. Scratch is taught and used in after-school centers, schools, and colleges, as well as other public knowledge institutions. As of 15 February 2023, community statistics on the language's official website show more than 123 million projects shared by over 103 million users, over 804 million total projects ever created (including unshared projects), and more than 95 million monthly website visits.


Flowgorithm

  • Flowgorithm - a free beginner's programming language that is based on simple graphical flowcharts. Typically, when a student first learns to program, they often use one of the text-based programming languages. Depending on the language, this can either be easy or frustratingly difficult. Many languages require you to write lines of confusing code just to display the text "Hello, world!".m By using flowcharts, you can concentrate on programming concepts rather than all the nuances of a typical programming language. You can also run your programs directly in Flowgorithm. Once you understand programming logic, it is easy for you to learn one of the major languages. Flowgorithm can interactively convert your flowchart to over 18 languages. These include: C#, C++, Java, JavaScript, Lua, Perl, Python, Ruby, Swift, Visual Basic .NET, and VBA (used in Office).

LabVIEW

  • LabVIEW - systems engineering software for applications that require test, measurement, and control with rapid access to hardware and data insights., by National Instruments. LabVIEW offers a graphical programming approach that helps you visualize every aspect of your application, including hardware configuration, measurement data, and debugging. This visualization makes it simple to integrate measurement hardware from any vendor, represent complex logic on the diagram, develop data analysis algorithms, and design custom engineering user interfaces.

Node-RED

  • Node-RED - a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways. It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.

n8n

  • n8n.io - a free node based "Open Source" (Apache 2.0 with Commons Clause) Workflow Automation Tool. It can be self-hosted, easily extended, and so also used with internal tools., an alternative to Zapier/tray.io


Unit

  • unit.land
    • https://github.com/samuelmtimbo/unit - a General Purpose Visual Programming Language and Environment built with a primary focus on Developer Experience. It is heavily inspired by Live, Data Flow, Reactive, Functional and Object Oriented Programming paradigms. Formally, units are Multi Input Multi Output (MIMO) Finite State Machines (FSM). A program in unit is represented as a Graph. The unit Programming Language was developed in close junction to the unit Programming Environment, which is a Web application built for easy composition of new units. The environment is designed to feel visual and kinesthetic, giving the perception of Direct Manipulation of Live Virtual Objects. The unit Programming experience is minimalistic, ergonomic, mobile, and can be performed through a variety of input devices, and editing can be partially expressed through Drawing, Gesture and Voice.


Skov

  • https://github.com/nicolas-p/skov - a visual programming environment based on Factor. A functional program can be thought of as a tree (actually a graph, in which functions are connected together on several levels. Commonly used programming languages have to make more or less compromises to represent this tree as a one-dimensional stream of text. Skov uses a visual, two-dimensional representation to display the tree direcly. This makes the program easier to read and to reason about and reduces the risk of making mistakes. Skov lets you see a functional program as it really is. Skov means forest in Danish because Skov contains a lot of trees.

Flyde

  • Flyde - an open-source visual programming language built to integrate with your existing codebase. It allows you to create and run visual programs and is designed to complement and enhance traditional textual coding, not to replace it. It includes a VSCode extension, seamlessly integrates with existing TypeScript/JavaScript code and runs on Node.js and in the browser.

Media

Pure Data

See Pure Data

1996

  • Pure Data (aka Pd) - an open source visual programming language. Pd enables musicians, visual artists, performers, researchers, and developers to create software graphically, without writing lines of code. Pd is used to process and generate sound, video, 2D/3D graphics, and interface sensors, input devices, and MIDI. Pd can easily work over local and remote networks to integrate wearable technology, motor systems, lighting rigs, and other equipment. Pd is suitable for learning basic multimedia processing and visual programming methods as well as for realizing complex systems for large-scale projects.

Max/MSP

1985


  • Max Objects Database - This site is designed to find objects, patches, applications, etc... from Max universe (Max/MSP, Jitter,...). Just as an indication, some objects are listed to be available on Pure Data as well.












  • RTC-lib - Real Time Composition Library for Max and Pd (1992-2019) - The RTC-lib is composed of different categories of objects: Toolbox, Chance, Lists, Harmony, Rhythms, Envelopes, MSP objects, Jitter objects.rtc-overview_8Content of the RTC-lib 8.0copyleft 1993-2019The library consists mainly of "abstractions" (Max patches that appear as objects) and a few so-called externals programmed in C. Most of them have been written by myself, with some contributions from other authors like Gerhard Eckel (GMD, St. Augustin) and Serge Lemouton (IRCAM, Paris), James McCartney (namely his generic list objects), and Peter Elsea's (UCSC) selected list objects from his Lobjects library. Other contributions came from Gary Lee Nelson, Les Stuck, Chris Dobrian, Timothy Place, Orm Finnendahl, Trond Lossius and jasch. Because the library objects are highly dependent on each other, it is recommended not to take them apart.


  • https://github.com/benjaminvanesser/upshot - comprised of audio effects, event generators, trackers, sequencers, instruments and many other tools and utilities) which provides a flexible environment for building generative and live performance patches.



  • https://github.com/DYCI2/Somax2 - an application for musical improvisation and composition. It is implemented in Max and is based on a generative model using a process similar to concatenative synthesis to provide stylistically coherent improvisation, while in real-time listening to and adapting to a musician (or any other type of audio or MIDI source). The model is operating in the symbolic domain and is trained on a musical corpus, consisting of one or multiple audio or MIDI files, from which it draws its material used for improvisation. The model can be used with little configuration to autonomously interact with a musician, but it also allows manual control of its generative process, effectively letting the model serve as an instrument that can be played in its own right.




  • https://github.com/stretta/BEAP - Berklee Electro Acoustic Pedagogy Modular is a synthesis pedagogical tool. It is not intended as a production tool, although it can be used for production in a limited manner. Beap requires Max 6+ for full functionality.


  • https://github.com/rconstanzo/karma/tree/master - a dynamically lengthed varispeed sample-recording and playback object with complex functionality, which references the audio information stored in a buffer~ object having the same name.




  • https://github.com/gibber-cc/gibberwocky - a plugin to live code Ableton Live using a browser-based editor. It is implemented using Max4Live, Max/MSP/Jitter, and JavaScript, and draws significantly from the Gibber browser-based live coding platform.


EMAIR

  • EAMIR - an open-source music technology project. We design tech-based interactive instruments, tools, and systems to facilitate accessible diatonic music-making and music-learning experiences. Our SDK for the Max programming language contains examples and code modules to help jumpstart your project; showcased below are some standalone apps built as part of the EAMIR project.

IanniX

  • IanniX - a graphical open-source sequencer, based on Iannis Xenakis works, for digital art. IanniX syncs via Open Sound Control (OSC) events and curves to your real-time environment.

vvvv

  • vvvv - visual live programming environment for .NET that takes you from rapid prototyping to final production. [3]

hive2

  • https://github.com/agoose77/hive2 - a framework to build and connect extremely flexible, reusable Python components. The hive system can be used for visual programming, large 3D applications, game logic, and scientific protocols

Framework

  • Framework - a creative coding library that evolved from various gamejams, media arts projects and indie games I worked on over the years. Being born out of the need to quickly prototype games during gamejams, it's design is very much pragmatic and geared towards fast iteration cycles and prototyping. However, since I started using it more and more for serious work, performance, quality and robustness received a lot of attention too. I very much enjoy using Framework for my day to day experimenting. Coding should be a joyful experience, and I hope to share this joy with you!

Ofelia

  • https://github.com/cuinjune/Ofelia - a Pd external which allows you to use openFrameworks and Lua within a real-time visual programming environment for creating audiovisual artwork or multimedia applications such as games.openFrameworks is an open source C++ toolkit for creative coding.Lua is a powerful, efficient, lightweight, easy-to-learn scripting language.Pure Data(Pd) is a real-time visual programming language for multimedia.Thanks to Lua scripting feature, you can do text coding directly on a Pd patch or through a text editor which makes it easier to solve problems that are complicated to express in visual programming languages like Pd. And unlike compiled languages like C/C++, you can see the result immediately as you change code which enables faster workflow. Moreover, you can use openFrameworks functions and classes within a Lua script.


EyesWeb

  • EyesWeb - an open platform to support the design and development of real-time multimodal systems and interfaces. It supports a wide number of input devices including motion capture systems, various types of professional and low cost videocameras, game interfaces (e.g., Kinect, Wii), multichiannel audio input (e.g. microphones), analog inputs (e.g. for physiological signals). Supported outputs include multichannel audio, video, analog devices, robotic platforms. Various standards are supported, including OSC, MIDI, FreeFrame and VST plugins, ASIO, Motion Capture standards and systems (Qualisys), Matlab. EyesWeb supports real-time synchronized recordings of multimodal channels, and includes a number of software libraries, including the Non-Verbal Expressive Gesture Analysis and the Non-Verbal Social Signals Analysis libs.

Kiwi

Fugio

  • Fugio - an open visual programming system for building digital art and creative projects quickly, with no programming experience required. Fugio is 100% open source. Hosted on GitHub. Fugio runs on Windows, macOS/OS X, Ubuntu, Arch Linux, and Raspberry Pi.


v.001

  • v.001 - a community driven, open source, modular solution for building easy to (re) use Max/MSP and Jitter patches targeted (but not limited to) visual performers and programmers.

Eternal

  • Eternal - demo
    • https://github.com/kousun12/eternal - inspired by an abstract and pretty beautiful idea of a functional visual programming language, but importantly, it does not go all the way. It's less interested in a clean theoretical framework than it is in being a tool that is useful in exploring audio-visual interpretations of information processing. It's not strongly-typed nodes all the way down—though that'd be nice—but seemingly useful/interesting/general nodes some of the way down.

Isadora

  • ISADORA - $
    • https://en.wikipedia.org/wiki/Isadora_(software) - a proprietary graphic programming environment for Mac OS X and Microsoft Windows, with emphasis on real-time manipulation of digital video. It was first released in 2002. It has support for Open Sound Control and MIDI. Isadora was designed by Mark Coniglio.

TouchDesigner

  • TouchDesigner - a visual development platform that equips you with the tools you need to create stunning realtime projects and rich user experiences. Whether you're creating interactive media systems, architectural projections, live music visuals, or simply rapid-prototyping your latest creative impulse, TouchDesigner is the platform that can do it all.


Userland

Auraglyph

  • https://github.com/spencersalazar/Auraglyph - an audio software programming, composition, and design system for iPad in which processing structures are created with stylus and multitouch input. Via stylus input, users draw a variety of audio and control nodes and the interconnections between them. These nodes are further parameterized by modal handwritten input, from simple numerals to time- and frequency-domain signals. Machine learning-based handwriting recognition is used to analyze the user's stylus strokes, affording a rich vocabulary of symbolic input. Additional nodes are available for creating conventional input/output interfaces, such as on-screen knobs and sliders and MIDI I/O.

ThreeNodes.js


JSPatcher

  • https://github.com/Fr0stbyteR/jspatcher - a Visual Programming Language (VPL) in Max/PureData style on the web with following features: Patch WebAudio native AudioNodes, Play with JavaScript Web APIs, Import and patch external JavaScript modules, Customize AudioWorklet DSPs with Faust

ViGraph

  • ViGraph - a platform for creating complex systems by plugging together simple modules, either graphically, or in a simple text language (VG). It started as a primarily creative platform for audio and laser graphics, but it is expanding its horizons all the time... It currently has modules for: Audio synthesis; Vector graphics, including laser output; Bitmap graphics, including LED output; MIDI; DMX lighting; IoT and sensor interfaces; Maths and physics simulation; Time series data processing and visualisation


Mizer

Audio

See also Synthesis#Modular softsynths

OpenMusic (OM)

  • OpenMusic (OM) - a visual programming language based on Lisp. Visual programs are created by asssembling and connecting icons representing functions and data structures. Most programming and operations are performed by dragging an icon from a particular place and dropping it to an other place. Built-in visual control structures (e.g. loops) are provided, that interface with Lisp ones.

Programs in OpenMusic are created by connecting together (a process known as 'patching') either pre-defined or user-defined modules, in a similar manner to graphical signal-processing environments such as Max/MSP or Pd. Unlike such environments, however, the result of an OpenMusic computation will typically be displayed in conventional music notation, which can then be directly manipulated, if so required, via an editor. A substantial body of specialized libraries has been contributed by users, which extends OpenMusic's functionality into such areas as constraint programming, aleatoric composition, spectral music, minimalist music, music theory, fractals, music information retrieval, sound synthesis etc.


  • http://repmus.ircam.fr/openmusic/reactive - Reactive programming in OM is an intermediate model for visual programming inheriting both the off-line, demand-driven, computation paradigm of OpenMusic, and the reactive features of interactive/real-time systems. The objective is to integrate and control the interactions between the calculi denoted by CAC programs and their external context. In this model visual programming components are capable of "listening" to the environment or to other components, updating contents or triggering calculations accordingly, and propagating changes in a determined way in the program. This "dataflow-oriented" approach implies new semantic definitions, implementation and corresponding user interactions. It is based on the existing OM semantics and conservative with regard to this semantics, so that existing programs created in the environment remain valid in the reactive framework.


  • Musique Lab 2 - Example of a ML-Maquette document about J.-S. Bach's Goldberg Variations, by F. Guédy, IRCAM. Compositional approach to musical processes for music education, Jean Bresson, IRCAM, Music Representations Team. The Musique Lab 2 application (initially called ML-Maquette) has been designed and developed on top of the OpenMusic environment. It makes it possible to create and use interactive pedagogical documents focusing on various kinds of musical concepts or works by manipulating musical structures and operations. Musique Lab 2 is distributed via the EducNet portal for teachers of the French Ministry of education, or via the IRCAM forum. - $


  • http://www.idmil.org/software/omprisma - a library for spatial sound synthesis in the computer-aided composition environment OpenMusic. In addition to working with pre-existing sound sources (i.e. sound files) it permits the synthesis of sounds with complex spatial morphologies controlled by processes developed in OpenMusic in relation to other sound synthesis parameters and to the symbolic data of a compositional framework. While OMPrisma 1.0 focused on compositional control of sweetspot-based spatialization techniques (such as VBAP or Ambisonics), OMPrisma 2.0 introduces new classes implementing spatialization techniques for non-centralized audiences (such as dbap, babo or ViMiC). This allows for reproduction setups with arbitrary loudspeakers placements, e.g. on stage, between the audience, for installations contexts, etc.


  • Cactus / OM# - Visual Programming Computer-Aided Music Compositon, a computer-assisted composition environment derived from OpenMusic: a visual programming language dedicated to musical structure generation and processing.The visual language is based on Common Lisp, and allows to create programs that are interpreted in this language. Visual programs are made by assembling and connecting icons representing Lisp functions and data structures, built-in control structures (e.g. loops), and other program constructs. The visual language can therefore be used for general-purpose programming, and reuse any existing Common Lisp code. A set of in-built tools and external libraries make it a powerful environment for music composition: various classes implementing musical structures are provided, associated with graphical editors including common music notation, MIDI, OSC, 2D/3D curves, and audio buffers.

MOD

  • http://moddevices.com/ - a full hardware audio plugin processor based on Arch Linux, JACK and the LV2 plugin standard. It also has MIDI-in, and a host of synths under the "Generators" tab, making it a tool of choice also for keyboardists (and virtual drummers, etc.). According to various reports and screenshots, there is an application in witch you compose your plugin chain(s) (and setup witch plugin parameter the HW buttons control) before you push it to the MOD pedal to rock away. The MOD-app (and its front-end MOD-ui) is the "desktop" version of this application where the chain is actually functionnal ; It exposes the inputs and the outputs of your soudcard, and you just insert plugins in between.

Integra Live

  • Integra Live - a modular environment for interactive sound transformation and synthesis. It was developed at Birmingham Conservatoire's Integra Lab and part-funded by the Culture programme of the European Union. Integra Live is designed with musicians in mind An application optimised for the process of experimentation, discovery, refinement and performance. Our audio processing host uses the Pure Data engine enabling users to develop their own modules in Pd. The graphical front end is written using the open source Apache Flex framework. Integra Live is freely available under the GNU GPL license with source code available on GitHub.

Open Sound World

  • Open Sound World - or OSW, is a scalable, extensible programming environment that allows musicians, sound designers and researchers to process sound in response to expressive real-time control. OSW combines a familiar visual patching paradigm with solid programming-language features such as a strong type system and hierarchical name spaces. OSW also includes an intuitive model for specifying new components using a graphical interface and high-level C++ expressions, making it easy to develop and share new music and signal-processing algorithms.

Bespoke Synth





LeGrandMechantLoop

Cabel

  • Cabel - a graphical user interface for building csound instruments by patching modules similar to modular synthesizers. It is simply customizable through XML. It's intended for Csound beginners to learn some fundamentals about this wonderful language (although installing all dependencies of Cabel isn't as trivial as it should be) and for advanced Csound users, who want to test their ideas and play with input parameters in a graphical user interface.

PatchWork

  • PatchWork - a tool for computer-assisted composition, although it can be used also as a general purpose programming tool. At the time of writing PW has attracted more than 200 registered users. Among these are individuals with highly diverse musical and aesthetic backgrounds, including among others Jean Baptiste Barrière, Marc-André Dalbavie, Brian Ferneyhough, Paavo Heininen, Magnus Lindberg, Tristan Murail and Kaija Saariaho. PatchWork was conceived by Mikael Laurson in 1985-1986. Soon afterwards a close collaboration started with IRCAM (with Jaques Duthen and Camilo Rueda) which resulted in the first PW release in 1993. PW provides a graphical interface to Lisp. Any Lisp function can be translated to a graphically operable box. The programming syntax consists of making connections between boxes.

PWGL

  • PWGL - a free visual language based on Common Lisp, CLOS and OpenGL, specialized in computer aided composition and sound synthesis. It is programmed using the Lispworks programming environment and runs under Mac OS X. PWGL integrates several programming paradigms (functional, object-oriented, constraint-based) with high-level visual representation of data and it can be used to solve a wide range of musical problems. PWGL is based on many concepts and ideas that were originally developed for PatchWork (Laurson, Rueda, Duthen, Assayag, Agon) and thus credit should be given to numerous programmers, composers and researchers that were involved in this project.

MFP

  • MFP - music for programmers, an environment for visually composing computer programs, with an emphasis on music and real-time audio synthesis and analysis. It's very much inspired by Miller Puckette's Pure Data (pd) and MAX/MSP, with a bit of LabView and TouchOSC for good measure.


Blokdust

  • Blokdust - an open source web music app allowing you to build synths, manipulate samples and create self-playing sound environments.


AlgAudio

  • https://github.com/rafalcieslak/AlgAudio - an audio processing framework, designed to be easy to learn and use both at live performances. The user defines a network of signal operations by creating a dataflow diagram. AlgAudio comes with a collection of building blocks, and is easily expandable with custom external modules.


aRts

  • aRts - analog real time synthesizer, an audio framework that is no longer under development. It was best known for previously being used in K Desktop Environment 2 and 3 to simulate an analog synthesizer. A key component of aRts was the sound server which mixes several sound streams in realtime. The sound server, called artsd (d for daemon), was also utilized as the standard sound server for K Desktop Environment 2–3. However, the sound server was not dependent on K Desktop Environment and can be used in other projects. It was a direct competitor to PulseAudio, another sound server, and an indirect competitor to the Enlightened Sound Daemon (ESD). It is now common to use PulseAudio instead of artsd. The aRts platform also includes aRts Builder — an application for building custom layouts and configurations for audio mixers, sequencers, synthesizers and other audio schema via a user-friendly graphical user interface. aRts is free software, distributed under the terms of the GNU General Public License.

Kiwi

FlowDesigner

  • FlowDesigner - a free "data flow" development environment. It can be use to build complex applications by combining small, reusable building blocks. It has similarities with Simulink and LabView, though it is not designed to be a "clone" of any of them.

Music Blocks

LGML / LeGrandMechantLoop


SynFactory

  • SynFactory - The Interactive Modular Software Synthesizer for Windows. Fully modular, no fixed configuration. Free to route any signal to any module. All signals run at audio rate (44.1 Khz) therefore ultrafast LFO and Envelope modulation. VU-Meters. Output scope. Capture to stereo wave- or mp3-file

Geosonix

  • Geosonix - a Performance Environment which means you can build unique sound controlling instruments that can be played in real time, either with MIDI or OSC controllers, or in Javascript with the built in REPL. (Read,Evaluate,Print Loop) If you know what a REPL is you will love this feature! Geosonix is an updated, easier to use, more powerful blend of GeoMaestro and Iannix that also borrows concepts from popular music workstation software. Geosonix is both refreshingly new, and deep, but the the same time comfortably familiar. Mac.

SDT / SkAT


Reaktor


Bidule

audulus

  • Audulus - A Modular Audio Processing App for iPad, iPhone, Mac, Linux, and Windows. Created by Developer Taylor Holliday. Promoted by Mark Boyd, Audulus Evangelist. With Audulus, you can build synthesizers from first principles, design new sounds, or process audio — all with real-time, low-latency processing suitable for live performance. ~£30

StudioFactory

  • StudioFactory - provides a complete virtual audio studio on Windows. It has a very powerfull virtual analog modular synthesizer based on an improved version of the SynFactory synthesis engine. StudioFactory is fully compatible with SynFactory and can load all existing patch files. The synthesis engine is extended with additional modules that give access to MIDI and audio input. This makes it possible to play sounds generated by StudioFactory with an external MIDI-keyboard. With the audio input StudioFactory can be used as an standalone effect processor and provides reverb, echo and vocoder effects.


Syd

  • SYD - a cross-platform instrument editor and software synthesizer by Jim Bumgardner. It has a graphical "patch cord" interface, and an elegant method for producing polyphony, compared to other patch-based music languages. It is particularly suitable for teaching computer music.The Java version provides an elegant patching interface, and the C++ version can be used to render patches on the command line.


Mosaic


PWCsound

  • PWCsound is a tool for software synthesis control implemented in Pwgl (a visual programming environment based on Lisp and Clos), provides a graphical interface to Csound6 programming language. PWCsound is, of course, inspired by several historical Patchwork libraries (in particular by Csound/Edit-sco for Patchwork, better know as "PW-Csound", 1993) and Open Music. The connection between the techniques of computer aided composition and sound synthesis has been explored within these software: Csound/Edit-sco, Pwcollider, Om2Csound, OmChroma.

Mac/Windows.

AudioMulch

  • AudioMulch - an interactive musician's environment for Windows and Mac. It is used for live electronic music performance, composition and sound design. AudioMulch allows you to make music by patching together a range of sound producing and processing modules. Unlike some patcher-based programming environments, AudioMulch's modules perform high-level musical functions, so you don't have to create things from the ground up using individual oscillators and filters. AudioMulch is designed for live performance and improvisation - you can process live audio sources and control every knob and slider on the user interface using a MIDI controller. - $


MUX Modular

  • MUX Modular - a high-quality and flexible modular synth and effect plug-in. MUX Modular can be a vintage synthesizer or a hi-tec sample player, it can be a multi-band compressor or a stereo reverb, and it can be so much more... You can do almost anything with it! MUX Modular is integrated into MuLab and is also available as a VST plug-in for Windows. - $

Sonic Core Scope

  • BCM - a collection of over 400 modules for the Creamware/SonicCore Modular II, III & IV devices. Envelopes, Filters, Oscillators, Switches, Mixers etc. provide all the basic building blocks you need for the most complex of modular patches while compatibility with existing modular modules means that BC Modular can be easily integrated into your patches.