Code Monkey home page Code Monkey logo

milkrack's Introduction

Milkrack

Milkrack brings Winamp's Old Skool Cool visualizations from Milkdrop into your VCV Rack). Powered by ProjectM.

Just spawn the "Milkrack - embedded" module and wire its left input to your mixer's output., and you should see something like this:

Demo GIF

Usage

The module comes in 2 flavors:

  • Embedded, showing the cool visuals directly on the module.
  • Windowed, rendering visualizations to a separate window.

Both flavors have the same inputs and params:

  • 2 stereo audio inputs. They're normalized to the left, so you can send mono signals to just the left side.
  • 1 "next preset" button and 1 "next preset" trigger input. These change the Milkdrop preset being rendered.

Non-audio signals as inputs may not give great results depending on the preset in use, as the visualization presets expect actual sound to detect BPM and perform a Fourier transform on.

The right-click menu allows you to enable automatic preset rotation, or to select a specific preset to use.

Windowed mode key shortcuts

When using the windowed flavor of the module, the visuals are rendered to a separate window. That window will react to certain shortcuts:

  • F, F4 or Enter will toggle full screen mode;
  • Escape and Q will exit full screen mode, or, when not in full screen, will minimize the window;
  • R will switch to a new preset.

Note that the window cannot be closed. To remove the window, simply delete the module in Rack.

OSX compatibility notes

When running under OSX, due to OpenGL incompatibilities, the Embedded flavor won't work. It's not possible to render Milkdrop presets in a window owned by VCV Rack, the OpenGL versions are not compatible. Consider using the windowed flavor instead.

Building

  • Install the GLM lib and OpenGL ES development headers, as well as autotools.
    • apt install autoconf libtool libglm-dev libgles2-mesa-dev libgl1-mesa-dev on Debian systems
    • brew install glm automate libtool pkg-config on OSX
    • If you figure out how to build this on Windows, please let me know! I don't have access to a Windows machine myself.
  • Git clone Milkrack under your plugins directory
  • git submodule init and git submodule update
  • (cd src/deps/projectm && git apply ../projectm*.diff)
  • (cd src/deps/projectm && ./autogen.sh && ./configure --with-pic --enable-static --enable-gles --disable-threading && make) to build projectM
  • make Milkrack itself

Troubleshooting

no matching function for call to `min(float, error)'

If you're getting this kind of errors:

Failed to link program: error: linking with uncompiled shader
Failed to compile shader 'Fragment: blur2'. Error: 0:30(62): error: could not implicitly convert operands to arithmetic operator
0:30(12): error: no matching function for call to `min(float, error)'; candidates are:
0:30(12): error:    float min(float, float)
(...)
Failed to link program: error: linking with uncompiled shader

Try applying the patch under src/deps to projectM. Just cd src/deps/projectm and git apply ../projectm*.diff.

version '300' is not supported

If you encounter errors such as:

Failed to compile shader 'Vertex: v2f_c4f'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'layout' : syntax error: syntax error

or others like those found in issue #2, this is due to a version incompatibility between OpenGL, OSX, projectM and Rack. It's not clear whether there's a solution, and we don't have the knowledge or the resources to fix it (no access to an OSX dev box). If you have a Mac and you know something about OpenGL, please contribute to issue #2.

The visualization window is black/shows a scaled down version of my Rack

If your window is just black, make sure you're sending sound into the module. No signal or non-audio signals may not trigger the preset to render anything.

If you're running OSX, the embedded flavor of the module won't work due to OpenGL version conflicts. Use the windowed mode.

If you are actually sending audio into the module, this is a sign that your shaders didn't compile. Check the standard output of Rack for errors related to invalid shaders and refer to the other troubleshooting options in this README to find matching errors.

Check that you configured the projectM build with --enable-gles.

The visualization only shows some floating W letters with headphones

This happens if Milkrack didn't find any Milkdrop presets to load. If you built the plugin yourself make sure that the presets folder got included in the zip file. If you downloaded the plugin from this repository's release or from the VCV plugin store, please file an issue explaining your problem.

The plugin crashed my Rack!

We've done extensive testing to try to prevent this, but if this happens to you, please file an issue telling us what software you're running (Rack version, Milkrack version, OS), what you were doing, what happened, and attack Rack's log.txt and if possible Rack's standard output.

License

This plugin is released under LGPL.

milkrack's People

Contributors

korfuri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

milkrack's Issues

projectM shaders not rendering on OSX

macOS, macbook 2013
compiled fine, but this errors from terminal while running
shows a scaled down version of my Rack

Failed to compile shader 'Vertex: v2f_c4f'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'layout' : syntax error: syntax error

Failed to compile shader 'Fragment: v2f_c4f'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'precision' : syntax error: syntax error

Failed to link program: ERROR: One or more attached shaders not successfully compiled

Failed to compile shader 'Vertex: v2f_c4f_t2f'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'layout' : syntax error: syntax error

Failed to compile shader 'Fragment: v2f_c4f_t2f'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'precision' : syntax error: syntax error

Failed to link program: ERROR: One or more attached shaders not successfully compiled

Failed to compile shader 'Vertex: blur1'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'layout' : syntax error: syntax error

Failed to compile shader 'Fragment: blur1'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'precision' : syntax error: syntax error

Failed to link program: ERROR: One or more attached shaders not successfully compiled

Failed to compile shader 'Vertex: blur2'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'layout' : syntax error: syntax error

Failed to compile shader 'Fragment: blur2'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'precision' : syntax error: syntax error

Failed to link program: ERROR: One or more attached shaders not successfully compiled

[PresetFactory] url is idle://Geiss & Sperl - Feedback (projectM idle HDR mix).milk
No Textures Loaded from /usr/local/share/projectM/presets
No Textures Loaded from /usr/local/share/projectM/textures

v1 builds but crashes Rack

Greetings !

Here's the info you requested:

$ uname -a
Linux The6300 4.6.7-200.rt14.1.fc23.ccrma.x86_64+rt #1 SMP PREEMPT RT Sat Oct 1 16:06:12 PDT 2016 x86_64 x86_64 x86_64 GNU/Linux

And the output from glxinfo:

glxinfo.txt

I can also run a debug session if you need a gdb report. Btw, this kind of crash (open browser, crash Rack) is often the result of a NULL module in a custom widget. Anything like that in your code ?

Best regards,

Dave Phillips

Build error

When Trying to build Milkrack, I get an error on the last step:

catronomix@CATRO-LAPTOP MINGW64 /C/vcvdev/plugins
$ cd Milkrack/

catronomix@CATRO-LAPTOP MINGW64 /C/vcvdev/plugins/Milkrack
$ ls
build  LICENSE.txt  Makefile  README.md  res  src

catronomix@CATRO-LAPTOP MINGW64 /C/vcvdev/plugins/Milkrack
$ make
make: *** No rule to make target 'src/deps/projectm/src/libprojectM/.libs/libprojectM.a', needed by 'plugin.dll'.  Stop.

This happens on Windows 10 x64, the file referenced is not present anywhere in the ProjectM src directory

Duplication error (0.6.0-rc3: Merge pull request #4 from korfuri/windows)

Ok I provide little test on my system Win10 pro (AMD FX-8320E 8GB Ram, AMD Radeon R7 250x graphics)
Testing on VCV Rack 0.6.2c (vanila) and modded version Rcomian (v0.6.2c-experiments)
2019-04-20

In both cases "vanila" and "moded" version of VCV Rack:

  1. duplication works when "Cycle trough presets" is on "no"
  2. when I have single Milkrack module in rack chaanging "Cycle trough presets" to "yes" works ok
  3. duplication Milkrack module with "Cycle trough presets" is "yes" -> crash VCV Rack
  4. changing "Cycle trough presets" to "yes" with multiply instances of Milkrack -> Crash

Plugin fails to load with code 127

Receiving an error upon startup after having put the release archive in the plugins folder -

[0.070 warn src/plugin.cpp:158] Could not load plugin C:\Users\user\DOCUME~1/Rack/plugins-v1/Milkrack: Failed to load library C:\Users\user\DOCUME~1/Rack/plugins-v1/Milkrack/plugin.dll: code 127

I'm using Rack v1.1.6 on Windows.
I am using the 0.6.1-rc0 release archive zip.

The plugin was initially ignored since the archive did not include a plugin.json. I composed one myself as follow -

{
	"slug": "Milkrack",
	"name": "Milkrack",
	"author": "Uriel Corfa",
	"license": "GNU Lesser General Public License v3.0",
	"authorUrl": "https://github.com/korfuri",
	"pluginUrl": "https://github.com/korfuri/Milkrack",
	"sourceUrl": "https://github.com/korfuri/Milkrack",
	"donateUrl": "https://github.com/korfuri/Milkrack",
	"manualUrl": "https://github.com/korfuri/Milkrack/blob/master/README.md",
	"version": "0.6.1-rc0",
	"modules": [
		{
			"slug":"MilkrackModule",
			"name":"Milkrack",
			"description":"Milkrack embedded module",
			"tags":["Visual"]
		},
		{
			"slug":"MilkrackSeparateWindow",
			"name":"Milkrack Separate Window",
			"description":"Milkrack in a separate window",
			"tags":["Visual"]
		}
	]
}

NOTE: I have not compiled or installed any additional software as part of this plugin (perhaps ProjectM is required as a separate install step?).

(I was really stoked to find this plugin. I'm not sure if it's still "alive" but I sure hope so! Perhaps some continued interest by the community will spur some updates)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.