ModularMusicVisualizer Save Abandoned

Project Rewrite at https://github.com/BrokenSource/ShaderFlow !!

Project README

Modular Music Visualizer Project Logo

Modular Music Visualizer

The Interactive Shader Renderer Platform


IMPORTANT NOTE: For the "previous" and currently only working full featured code, see this other branch.

And for the newer shader rendered backend called Sombrero, see this branch. Note that the audio processing code was deprecated and NodeEditor will continue this branch development as well as new audio DSP code.


An Open Source shader rendered platform written in Python, capable of reacting in real time to audio playing on the computer or rendering to video files.

> Node Editor Branch

This branch is under heavy development, keep reading for new features and changes, where this is heading, running instructions.

> New Features

● Node Editor

Plan on making MMV truly modular and have an full featured GUI than script files for the end user.

Much like Blender's Composite User Interface based on a Node Editor!!

Also save, load presets, so community work, sharing session files will be possible without much trouble compared to before.


● Releases

Releases are now possible and builds work targeting:

  • Linux: Uses AppImage, single binary.
  • Windows: One compressed exe file.
  • MacOS: Don't have the equipment to test.

All only include a single Data directory that stores default Shaders files, presets, fonts, images, nodes.

User directories are created on first execution such as Screenshots, Runtime (configs), Renders.

It auto downloads external dependencies in case you don't have them in system PATH (like FFmpeg both on Windows and Linux).


● Translations

Yes! Translations are possible now, any contribution is welcome for helping accessibility for everyone.

The percentages of translations are shown on the GUI itself by clicking the bottom left Language button selector.

>> Status of translations:

Main languages, near 100% translated

  • (English) Defaults to English if don't know the translation.
    • (Brazilian Portuguese) My native language, translations will be near 100% all time.

      Proof of Concept

      • (Japanese) Using different fonts as needed, extended unicode ranges thingy.

        Thanks for HatScripts's Circle Flags for the flags icons used here and on releases!!


        ● Better Shader Render Backend

        The shader render backend is called "Sombrero", I have to overhaul it a bit before rebasing into the GUI and this will take a while, but some of its features:

        • ShaderToy-inspired variables, syntax
        • Camera2D I give you the vectors. You do the math.
        • Camera3D I give you the camera position and ray direction. You do the RayMarching.
        • Joystick Control both Camera2D and Camera3D with a joystick, hot swap.
        • Multi Layer Yeet as many shaders you want, alpha composite, chain shaders together.
        • Rendering Shaders to Video easily, react to audio or not.

        ● Interactive Live Mode

        Edit the Shader nodes interactively, change values per node, hook up keyboard controls for certain values.


        Installing, running

        Running From Releases

        Linux might need fuse installed for mounting the AppImage file. Windows should be a portable binary.

        No releases are available for now since "nothing is working" regarding Shaders or the final product.

        When we do have releases, grab them from here according to your platform, extract the files and run the main binary. As easy as that!


        Running Directly from Source Code

        GNU/Linux

        If python is not a command or it fails try running with python3 instead.

        • Open a Terminal in some directory

        • sudo pacman -Syu python ffmpeg python-poetry git

        • sudo apt update && sudo apt upgrade && sudo apt install python3 ffmpeg python3-poetry git

        • git clone https://github.com/Tremeschin/ModularMusicVisualizer.git -b NodeEditor

        • cd ModularMusicVisualizer

        • poetry install

        • poetry run editor


        Windows (8+)

        You might need to run python.exe or python3.exe than python on the command line, same with git and git.exe.

        • Install latest stable release Python "Windows installer (64-bit)", be sure to check Add Python 3.X to PATH.
        • (I) Download Modular Music Visualizer's Source Code, extract to somewhere.
        • (I) Alternatively install Git and run git clone https://github.com/Tremeschin/ModularMusicVisualizer.git -b NodeEditor
        • Shift + Right Click empty spot on a empty spot on the extracted folder in Windows Explorer (file manager), click Open PowerShell Here.
        • Install poetry with: (command can also be found here)
          • (Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py -UseBasicParsing).Content | python.exe -
        • Run: python -m poetry install
        • Run: python -m poetry run editor

        macOS

        • Open a Terminal into some directory
        • Install Homebrew, "The Missing Package Manager for macOS":
          • /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
        • brew install [email protected] ffmpeg python
        • python3 -m pip install poetry
        • git clone https://github.com/Tremeschin/ModularMusicVisualizer.git -b NodeEditor
        • cd ModularMusicVisualizer
        • poetry install
        • poetry run editor

        > Community


        Donations, MMV as a Service

        I probably will accept donations in the future when stuff is working (again).

        I plan on making MMV a "service" with some very well thought "premium" presets, but the base program and community presets will be my focus, delivering something good for free.

        That will require quite some infrastructure so don't take my word here that this will happen, but it's an way to keep the project viable for me in the future (I only study for now).


        > License

        The Modular Music Visualizer Python code I have written is GPLv3 Licensed, some snippets can be CC or MIT but I always mark and give proper attribution when that happens (it's very rare!).

        Shader Files: I might MIT them in the future (the whole thing won't work great outside MMV anyways), for now I'll let you use parts of it if you need, attribution required.

        Fonts licenses have their own (FontName License.md) together with their file.

        MMV Logo, I won't be mad if you use it but let's keep it as a "MMV Project" property, it's just there so one can recognize the software a bit better and / or have a default logo image on the visualization bars. Since the project is always evolving, having old videos with the logo doesn't feel optimal because quality on mainstream is usually ahead of the time.

        As said previously, the flag icons and distro, social icons on this README are thanks to HatScripts's Circle Flags and edent's SuperTinyIcons.


        > Attribution, thanks to

        Attributions are not required but would show gratitude for the project!!

        ● Translators

        Placeholder


        ● Build Server

        Placeholder

        if we ever get one for bleeding edge builds

        ● Contributors

        Placeholder


        ● Third Party Software, Python Packages

        These are not in any order of more important or less important, all have their own crucial role in MMV.

        It is quite impossible to list everyone, so check pyproject.toml for the full list, also some packages depends on others and there are usually multiple contributors to every single one of those.


        Python Packages:

        • DearPyGui: Awesome GUIs easily. The single reason I'm rewriting / rebasing on a Node Editor based software.
        • Nuitka: Great Python bundling package, great final AppImage on Linux, very compressed binaries on Windows.
          • PyInstaller is good as well but always unpacking the final binary to a temp dir then running is a bit :/ for the disk and startup times.
        • ModernGL: Great OpenGL Python bindings.
          • GLFW is used for the window, great cross platform OpenGL Contexts.
          • Shout out to einarf for helping me with ModernGL
        • NumPy: Gotta love NumPy arrays and the speed on computations.
        • DotMap: Really great "dynamic" dictionaries
        • tqdm: Gotta love easy status bar.
        • mido: Reading MIDI files
        • Poetry: Less instructions on README for creating, enabling virtual environments for Python, lots of high level commands for facilitating the end user.
        • OpenCV and opencv-python for reading frames from videos individually.

        Third Party Software:

        • FFmpeg: Do I have to say something? "A complete, cross-platform solution to record, convert and stream audio and video." - and they are not lying!!

        And others I potentially forgot!

Open Source Agenda is not affiliated with "ModularMusicVisualizer" Project. README Source: TremeschinArchive/ModularMusicVisualizer

Open Source Agenda Badge

Open Source Agenda Rating