|
MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
|
MayaFlux is a next-generation digital signal processing framework that embraces true digital paradigms. Moving beyond analog synthesis metaphors, MayaFlux treats audio, video, and all data streams as unified numerical information that can interact, transform, and process together through powerful algorithms, coroutines, and ahead-of-time computation techniques.
Project initialization, dependency management, and installation framework for MayaFlux.
Weave handles everything needed to get MayaFlux running on your system: downloading the latest framework, installing dependencies, managing environment setup, and providing tools to scaffold new projects.
Instead of juggling separate downloads, manual dependency installation, and environment configuration, Weave automates the entire setup process while providing both GUI and CLI tools for project creation.
Visit Weave Repository for full documentation.
The latest version can be downloaded from the Releases Page
If you wish to develop MayaFlux from source, enter the next section.
Or jumpt to Working with MayaFlyx
This section guides you through setting up MayaFlux on your development machine for building from source.
MayaFlux includes automated setup scripts that handle all dependencies and build system configuration.
System Requirements:
Note: macOS 13 and earlier are not supported due to missing modern C++ standard library features.
Linux users typically manage dependencies through their package manager. Install the standard development tools (cmake, build-essential, pkg-config) and devel/multimedia libraries (rtaudio, ffmpeg, eigen3, gtest, magic_enum, glfw, vulkan-sdk, glm, stb) using your distribution's package manager.
However, you can also run the provided setup script to automate this process for Debian-based systems, fedora, and Arch Linux:
Note: All setup scripts automatically handle dependency installation and build system configuration. No manual dependency management required.
If you're coming from creative coding environments like p5.js, Processing, or SuperCollider, VS Code provides the most approachable transition to C++.
Open the Project:
F5After running setup_visual_studio.ps1:
build/MayaFlux.slnVisual Studio users will find all familiar debugging and profiling tools work seamlessly with MayaFlux.
Install overseer.nvim for seamless task management:
Overseer will automatically detect the CMake build system and provide build/run tasks. Advanced users can create custom templates for MayaFlux-specific workflows.
After creating a project from Weave or running the setup script (when building from source), you'll find a user_project.hpp file in the src/ directory of your project root. This is where all your MayaFlux code goes:
The setup script automatically creates this file if it doesn't exist, but will never overwrite your existing code. This means you can safely pull updates to MayaFlux without losing your work.
MayaFlux is built around four fundamental digital paradigms that replace traditional analog thinking:
Unlike traditional audio software that mimics analog hardware, MayaFlux embraces computational possibilities:
MayaFlux represents a fundamental shift from analog-inspired audio software toward truly digital paradigms. Instead of simulating vintage hardware, we embrace the computational possibilities that only exist in the digital realm - recursive processing, multi dimensional data handling, generating on the fly grammars and pipelines, data-driven control, cross-modal interaction, and algorithmic composition techniques that treat code as creative material.
Explore the shape of things to come!
If you’re new to C++
MayaFlux uses modern C++ (C++17/20). You don’t need to be an expert—just comfortable reading and editing small functions. The best way to learn is hands-on:
- The openFrameworks “ofBook” has an excellent short section on C++ basics that map well to creative coding workflows.
- The free cppreference.com pages on “Variables,” “Functions,” and “Classes” are reliable quick reads.
- If you prefer a creative-coding approach, check out The openFrameworks C++ Chapter or Daniel Shiffman’s “The Nature of Code (C++ port)” for conceptual grounding.
You can safely begin MayaFlux tutorials with only this level of knowledge. The tutorials explain real C++ constructs as they appear—no memorization needed.
Running your first MayaFlux program
- Open your project folder in VS Code (
code MayaFlux).- Press **
Ctrl+Shift+B** (or **Cmd+Shift+B** on macOS). This runs the CMake build task.- When the build finishes, press **
F5** to run the executable.- You’ll see output in the terminal panel and, if your code plays audio, you’ll hear it immediately.
VS Code automatically uses the CMake configuration created by the setup script. You don’t need to run any manual compiler commands—just build and run.
*(Optional line to add if you want to reinforce the C++ learning mindset)*
Every time you press F5, you’re compiling real C++ and running it live. This is the same pipeline used in professional software development—no “toy” interpreters here.
Your creative workspace lives in src/user_project.hpp.
settings() runs once, before the engine starts. Use it to set sample rate, buffer size, graphics API, and logging options.compose() runs after setup—it’s your canvas for sound, data, graphics and computation.compose() if you want to reuse them inside it.Example:
MayaFlux tutorials are designed for exploration, not passive reading.
compose() and run them.<details>).** These reveal what’s happening under the hood. Read them slowly; come back later as your understanding grows.The goal is fluency, not memorization. You’re not “following a recipe”—you’re learning how the machinery works so you can build your own.
Advanced users can refer to Advanced Context Control that explores architecture and backend level customization in MayaFlux Core
Now that your environment is set up, you're ready to begin.
**"Sculpting Data"** is the entry tutorial series. It starts with the simplest operation (loading a file) and builds systematically toward complete pipeline architectures.
Each section in Sculpting Data teaches one core idea and builds on the previous:
Start here: Open Sculpting Data Part I and begin with Section 1.
Each section is designed to be executed immediately:
compose() functionF5You'll have working audio within 5 minutes.
If you have already completed the aforementioned tutorial, proceed to the next tutorial at Sculpting Data Part II, Processing Expression which covers buffers, processors, math as expression, logic as creative decisions and more.