PLAY: Use Groove AI for yourself
Hey, I'm Dan Ryland (@RealDanRyland) and I'm a drummer.
As a musician, I'm super interested in the developments around AI generated music and text-to-music AI models.
I've never submitted anything to a hackathon, so as this is my first ever, open source hackathon entry, I decided to make an AI generated drum pattern app.
These drum patterns are named and generated (title, two-line rap, pattern and BPM for a randomly selected genre) by Open AI's GPT 3.5 Turbo.
I then store these generated patterns in Supabase. Every time you load the site, it will randomly select one groove from the database. You can modify this pattern by toggling each beat. You can also generate a new drum pattern.
NEW - You can now download your drum patterns as MIDI. Import this MIDI file into your music software.
Enjoy!
I'm using the following Supabase featues:
- Database
- Postgress function
- Fetch
- Insert
- Edge function
CREATE OR REPLACE FUNCTION get_random_groove()
RETURNS TABLE (
id BIGINT,
created_at TIMESTAMPTZ,
title TEXT,
description TEXT,
genre TEXT,
beat_high JSONB,
beat_mid JSONB,
beat_low JSONB,
bpm SMALLINT
) AS $$
BEGIN
RETURN QUERY
SELECT *
FROM grooves
ORDER BY random()
LIMIT 1;
END;
$$ LANGUAGE plpgsql;
It's build using Quasar framework. To run locally you'll need these variables:
For Quasar:
SUPABASE_URL
SUPABASE_KEY
SUPABASE_FUNCTION
For Supabase edge function:
OPENAI_API_KEY
yarn
# or
npm install
quasar dev
Hosted on Netlify.
Build command:
quasar build
Publish directory:
dist/spa
icongenie generate -i src/assets/img/logo-groove-ai.png --quality 12 --skip-trim