All Projects → Tremeschin → ModularMusicVisualizer

Tremeschin / ModularMusicVisualizer

Licence: GPL-3.0 license
Project in Hiatus, unmaintained, being rewritten privately. Will Open Source when stuff is ready. Project will be Renamed.

Programming Languages

python
139335 projects - #7 most used programming language
GLSL
2045 projects
shell
77523 projects

Projects that are alternatives of or similar to ModularMusicVisualizer

kotlin-glsl
Write your GLSL shaders in Kotlin.
Stars: ✭ 30 (-62.96%)
Mutual labels:  shaders, glsl, glsl-shaders
glNoise
A collection of GLSL noise functions for use with WebGL with an easy to use API.
Stars: ✭ 185 (+128.4%)
Mutual labels:  shaders, glsl, glsl-shaders
FNode
Tool based in nodes to build GLSL shaders without any programming knowledge written in C using OpenGL and GLFW.
Stars: ✭ 81 (+0%)
Mutual labels:  shaders, glsl, glsl-shaders
ShaderView
ShaderView is an Android View that makes it easy to use GLSL shaders for your app. It's the modern way to use shaders for Android instead of RenderScript.
Stars: ✭ 53 (-34.57%)
Mutual labels:  shaders, glsl, glsl-shaders
YALCT
Yet Another Live Coding Tool - Powered by Veldrid and elbow grease
Stars: ✭ 25 (-69.14%)
Mutual labels:  shaders, glsl, glsl-shaders
Thebookofshaders
Step-by-step guide through the abstract and complex universe of Fragment Shaders.
Stars: ✭ 4,070 (+4924.69%)
Mutual labels:  shaders, glsl, glsl-shaders
React Regl
React Fiber Reconciler Renderer for Regl WebGL
Stars: ✭ 171 (+111.11%)
Mutual labels:  shaders, glsl, glsl-shaders
deffx
A collection of useful shader effects made ready to be used with the Defold game engine
Stars: ✭ 33 (-59.26%)
Mutual labels:  shaders, glsl, glsl-shaders
30-days-of-shade
30 days of shaders in GLSL using GLSLCanvas
Stars: ✭ 134 (+65.43%)
Mutual labels:  shaders, glsl, glsl-shaders
Webgl Fundamentals
WebGL lessons that start with the basics
Stars: ✭ 3,315 (+3992.59%)
Mutual labels:  shaders, glsl, glsl-shaders
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+14341.98%)
Mutual labels:  shaders, glsl, glsl-shaders
Glsl
VSIX Project that provides GLSL language integration.
Stars: ✭ 155 (+91.36%)
Mutual labels:  shaders, glsl
Glsl Godrays
This module implements a volumetric light scattering effect(godrays)
Stars: ✭ 155 (+91.36%)
Mutual labels:  shaders, glsl
Gaiasky
Mirror of Gaia Sky repository hosted on Gitlab: https://gitlab.com/langurmonkey/gaiasky
Stars: ✭ 162 (+100%)
Mutual labels:  shaders, glsl
Spirv Vm
Virtual machine for executing SPIR-V
Stars: ✭ 173 (+113.58%)
Mutual labels:  shaders, glsl
Reshade
A generic post-processing injector for games and video software.
Stars: ✭ 2,285 (+2720.99%)
Mutual labels:  shaders, glsl
Glsltuto
GLSL shaders tutorial
Stars: ✭ 168 (+107.41%)
Mutual labels:  shaders, glsl
ofxShadertoy
Addon for openFrameworks that sets up and loads Shadertoy (http://www.shadertoy.com) shaders
Stars: ✭ 77 (-4.94%)
Mutual labels:  shaders, glsl
Retrace.gl
Create, ray trace & export programatically defined Signed Distance Function CSG geometries with an API suited for generative art - in your browser! 🎉
Stars: ✭ 149 (+83.95%)
Mutual labels:  shaders, glsl
Glslviewer
Console-based GLSL Sandbox for 2D/3D shaders shaders
Stars: ✭ 2,834 (+3398.77%)
Mutual labels:  shaders, glsl

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

Links


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!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].