gary4live now includes three AI models working together:
jerry (stable-audio-open-small): generates 12 seconds of bpm-aware audio almost instantly. perfect for drum layers and quick iteration.
terry (melodyflow): transforms your input audio and returns audio the same length. great for reimagining gary's continuations or your recorded input.
gary (musicgen): continues from your input audio with wild variations that tend to stack up with your ableton layers in surprising ways.
- instant generation with jerry: stable-audio-open-small generates 12-second samples in under 1 second
- bpm awareness: jerry uses ableton's global bpm automatically (generic bpm values like 100, 120 work best)
- better state management: clear visual feedback for backend connection status
- waveform highlighting: hover over buttons to see which waveform they operate on
- recording progress: visual feedback while recording the 30-second buffer
- session management: transform continuations or go back to original input
- simple prompts work best: try "techno drums", "house beat", "aggressive bass" with jerry
- stable-audio-open-small: https://huggingface.co/stabilityai/stable-audio-open-small
- melodyflow: https://huggingface.co/spaces/facebook/melodyflow
- audiocraft/musicgen: https://github.com/facebookresearch/audiocraft
in this version, gary expects to be placed in /Applications/g4l/GARY_mac.amxd
the .app
file expects to be in /Applications/g4l/gary4live.app
if you want to run gary's electron ui in dev mode:
- clone this repo:
git clone https://github.com/betweentwomidnights/gary-mac.git
- install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
- re-open terminal and run:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
- install and use Node 18:
nvm install 18
nvm use 18
- navigate to project and start:
cd gary-mac/g4l-ui
npm install
npm run start
to build the app:
npm run package
the app will be built to g4l-ui/release/build/mac/gary4live.app
.
production filepaths (used in the released version):
/Applications/g4l/myOutput.wav
/Applications/g4l/myBuffer.wav
development filepaths (our dev environment):
/Documents/g4l/myOutput.wav
/Documents/g4l/myBuffer.wav
if you're developing, you'll need to perform a find and replace in these files:
change /Applications/g4l/
to your development path (e.g., /Documents/g4l/
).
important: if you change filepaths during development, change them back to /Applications/g4l/
before running npm run package
. it took a lot of iteration to get apple to let us rewrite these audio files in the production location.
dynamic filepaths are challenging inside max4live GUI objects/node.scripts. when we tried placing myBuffer.wav
in the same folder as the device, we encountered permissions issues on macbook in the production release. someone smarter than me might solve this delicate filepath issue so that dynamic filepaths in the max4live objects and node.scripts play nicely together. that would be a very welcome contribution.
you can talk to our backend using the url https://g4l.thecollabagepatch.com
in commentedout.js
.
if our backend goes down, it can be built yourself using this repo: https://github.com/betweentwomidnights/gary-backend-combined
see below about apple silicon woes with the backend repo. if you do manage to get the backend running locally, you can uncomment these lines in commentedout.js
:
// =============================================================================
// CONFIGURATION - Change these URLs when building from source with localhost
// =============================================================================
// For localhost development with our github repo https://github.com/betweentwomidnights/gary-backend-combined
// Uncomment these lines and comment out the production URLs below:
// const BACKEND_URL = 'http://localhost:8000';
// const STABLE_AUDIO_HOST = 'localhost';
// const STABLE_AUDIO_PORT = 8005;
// const STABLE_AUDIO_PATH = '/generate'; // Direct to service
// const USE_HTTPS = false;
// Production URLs (default):
const BACKEND_URL = 'https://g4l.thecollabagepatch.com';
const STABLE_AUDIO_HOST = 'g4l.thecollabagepatch.com';
const STABLE_AUDIO_PORT = 443;
const STABLE_AUDIO_PATH = '/audio/generate'; // Through Caddy proxy
const USE_HTTPS = true;
as of july 2025, we have not yet solved the issue of building the backend on apple silicon devices. a dockerfile exists but the last time we tested on apple silicon, it didn't work. since we don't have an apple silicon machine for testing, this remains an open issue. if you get it working, please let us know!
the max4live UI does almost everything that the electron UI does. the only things it doesn't include are cropping and drag/drop functionality. i tried to make the electron app optional, but it's becoming more and more necessary for obvious ux reasons.
yell at me on discord: https://discord.gg/VECkyXEnAd
yell at me on twitter: @thepatch_kev
there are many demos of this plugin being used on youtube:
a special thanks to lyra for the fine-tuning help that made this plugin interesting.