juniorrantila / musializer

Music Visualizer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Musializer

Warning

This software is unfinished. Keep your expectations low.

The project aims to make a tool for creating beautiful music visualizations and rendering high quality videos of them.

Please, read CONTRIBUTING.md before making a PR.

Demo

Music by @nu11 from https://soundcloud.com/nu11_ft/nu11-wip-works-2016-2022 at 20:38

output.mp4

Build

Dependencies:

  • raylib and all its transitive dependencies.
  • ffmpeg executable available in PATH environment variable. (it is called as a child process)

The project provides a bunch of build shell scripts that have the following naming scheme build_<platform>_<compiler>.sh. Pick the appropriate one.

POSIX

$ ./build_posix_clang.sh
$ ./build/musializer

Keep in mind that the application needs ./resources/ to be present in the folder it is ran from.

Windows

Windows support is at very early stage right now. Since I don't have a convenient Windows Development Environment, I'm cross compiling Musializer with MinGW. See ./build_windows_mingw.sh for more information.

More documentation regarding Windows build is comming soon. For now use your hacking skills to figure it out.

Hot Reloading

Only on Linux for now

$ export HOTRELOAD=1
$ ./build_posix.sh
$ ./build/musializer

Keep the app running. Rebuild with ./build.sh. Hot reload by focusing on the window of the app and pressing r.

The way it works is by putting the majority of the logic of the application into a libplug dynamic library and just reloading it when requested. The rpath (aka hard-coded run-time search path) for that library is set to . and ./build/. See build.sh for more information on how everything is configured.

About

Music Visualizer

License:MIT License


Languages

Language:C 98.9%Language:Makefile 0.6%Language:HTML 0.3%Language:Zig 0.1%Language:CMake 0.1%Language:Shell 0.0%Language:GLSL 0.0%Language:Batchfile 0.0%