Skip to content

merumerutho/LOVJ

Repository files navigation

LOVJ - LOVE2D VJing Framework

Overview

LOVJ is a framework based on LOVE2D, designed as a live-coding and interactive VJing environment for live music performances. It provides a patch-based architecture for creating, sequencing, and mixing video effects with real-time controls, GLSL shader support, and a web-based control surface (LOVJ Deck).

Features

  • Patch-based architecture — modular video patches that can be loaded, layered, and mixed across multiple slots
  • Live-coding — hot-reload on file save with syntax checking and rollback on failure
  • GLSL shaders — up to 10 post-process layers per slot with @param annotations for automatic parameter binding
  • BPM-synced signals — LFOs, envelopes, and easing curves locked to a global transport clock
  • Step sequencer — Elektron-style parameter locks with per-step easing, polyrhythmic channels, and morph transitions
  • Scene sequencer — beat-quantized transitions between saved parameter states
  • Modulator engine — bind LFOs and envelopes to any parameter with min/max range and waveshaping
  • Savestate system — save/recall parameter snapshots with smooth easing transitions
  • Video sampler — FFmpeg-based video playback with varispeed, seeking, loop points, and any-codec support via threaded decoding
  • Databending / datamoshing — real-time packet-level video corruption: I-frame removal (melt), I-frame corruption (crush), block copy/shift (corrupt), P-frame repeat (smash)
  • Feedback buffers — ping-pong echo effects with rotation, zoom, and tint
  • LOVJ Deck — web-based control surface with parameter editing, sequencer faders, shader management, and beat visualization
  • MIDI support — CC, note, and program change mapping to any command
  • OSC networking — bidirectional control with parameter discovery
  • Spout integration — stream video to and from other applications (Windows)

Prerequisites

  • LOVE2D version 11.4 or higher
  • Node.js 18+ (only for building the LOVJ Deck GUI)

Quick Start

git clone --recurse-submodules https://github.com/merumerutho/LOVJ.git
cd LOVJ
love .

To build the LOVJ Deck web GUI:

cd studio && npm install && npm run build

For Spout support (Windows):

python installSpout.py

For FFmpeg video sampler support:

python installFFmpeg.py

Documentation

Full documentation is in doc/, covering:

Contributing

Contributions are welcome! Please feel free to open an issue or submit a pull request.

License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.

Acknowledgments

  • lick — original live-coding library (rewritten for LOVJ)
  • json.lua — JSON library
  • Spout — video sharing library
  • SiENcE/lovemidi — MIDI library for LOVE2D

About

LÖVE2D-based live-coding visual framework supporting GLSL shaders and Spout for code-oriented VJs

Topics

Resources

License

Stars

Watchers

Forks

Contributors