Is there a Mixxx plugin/extension API similar to Virtual DJ's plugin API? I was doing some research on DJ application APIs, and I came across Virtual DJ's plugin API here (https://www.virtualdj.com/wiki/Developers.html). Their plugin API (among other things) allows users to query and set values in VDJ's control system.
Mixxx can be used in many ways, and is a lot of fun!Learn how to download and install it on your windows computer in this video!Click below to Subscribe to m. Components JS is new in Mixxx 2.1 and does not work with older versions of Mixxx. To use the library, in the element at the top of your mapping's XML file, load the Lodash library and the Components library (above the link to your controller's script file).
I found the Mixxx control system here (https://www.mixxx.org/wiki/doku.php/mixxxcontrols), but I was unable to locate documentation about how to query this from a plugin or another application. Does such an API exist?
If so, how would I go about writing a plugin, framework, or other construct that allows me to query information from the Mixxx control system and pass it to another application? If not, where might I look in the Mixxx source to add a patch to the same effect?
Background: I am starting a project to rewrite my sequenced light controller (similar to Vixen [http://www.vixenlights.com/] or Light-O-Rama [http://www1.lightorama.com/]) to remove a number of issues in its programming. Programs like this store a sequence of events or an array of channel values, and play them over a protocol like DMX or MIDI synchronized to a song. A medium to large-scale example of a show like this would be this youtube video [https://www.youtube.com/watch?v=z5dfpe_-Lgg], which utilized Light-O-Rama.
Right now, my program uses LibVLC for the audio playback. It loads a light sequence from a file (written by Vixen 2), determines which audio file to play, and tells LibVLC to load and play that audio file. While the song is playing, the program checks VLC's playhead position on a high-frequency loop (it needs to query the playhead position at least every 25ms to match control resolution with DMX), calculates a position in the sequence from LibVLC's playhead information, and outputs the data at the calculated position to DMX, effectively using VLC as a stopwatch to time out the file. That way, the sequence is always pointing at the same place the audio player is and they never go out of sync.
Since the sequence execution engine only requires minimal (if high frequency) integration with the audio engine, it would be easy to use different audio APIs as plugins in my program. My idea for integration with Mixxx is for the plugin on Mixxx's side to push the current file metadata (artist, track, filename), playposition, track_samples, and volume (including crossfader) for each deck over a pipe or socket to my program, which would determine which sequence file to run based on the metadata, and sync to Mixxx using playposition and track_samples (it's basically the same thing I already do with VLC, except this time it's communicating with Mixxx instead). To reduce the data and processing footprint, the metadata and track_samples would get pushed on deck changes, and the playposition would get pushed to or queried by my program every loop. Because my program does not rely on internal timers to calculate sequence position, it could keep lock-step with Mixxx, even if the audio is being scratched, spun backward, or having its speed mangled.
Ever since I discovered light sequencing, I have always wanted to develop a method of integrating some sort of a DJ control into it.
How To Layer In Microsoft Publisher
How To Layer In Microsoft Paint
Online nbde part 1 preparation. Love the project, keep up the amazing work!