Skip to content

I needed to create a setlist for different genres of music based on zipcode, and average age. A perfect job for GPTScript!

License

Notifications You must be signed in to change notification settings

michaelcolletti/AutoSetGen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoSetGen

This repo is the start of a series of projects designed specifically for musician worklflows and a subset of work using AI toolings to inject real-time data into everyday work and reduce toil for artists.

Below, we will automate the creation of setlists. It starts with GPTScript.

Setup with GPTScript

GPTScript rocks! This is partially a fanboy post.

  • The GPTScript framework will be used to automate and make repeatable complex tasks.

AutoSetGen: Use GPTScript and Generate a multi genre setlist based on Age, Zip Code

brew install gptscript 
git clone [https://github.com/gptscript-ai/gptscript
cd gptscript
gptscript ./announce.gpt
  • Now git clone this repo, cd into the project
git clone https://github.com/michaelcolletti/AutoSetGen
cd AutoSetGen
  • Edit the autosetgen.gpt file to change the values or leave my defaults of: jazz, bebop, jazz fusion, and philly soul. 3 Songs will be selected.
  • Be sure to add your OpenAI API Key by either a env variable export OPENAI_API_KEY=XXXXXXXXXXXXX or set in your .env file. Add .env to your .gitignore see details in this repo.)
  • The same applies to the Census API key set as CENSUS_API_KEY in your .env (add .env and easily obtained here.
  • Be sure to not commit any keys in your repo. A great way to handle this is to use local .env files, Github secrets or a vault for secrets.
  • After your environment and API keys are rockin, you're ready to start using your autosetgen script

Running AutoSetGen

  • At a Bash command in your project run: gptscript autosetgen 12401
  • Using US Census data, this will fetch the average age average_age for men and women for Kingston, NY. This with the current year so (2024 - average_age). This is the target_year.
  • Will need to experiment with tweaking this number for prime nostalgia.
  • Then the top 40 for each genre will be provided with the number of selections provided in max_songs_per_genre
  • See a Asciinema demo here
  • The script can be automated locally (via cron or scheduler or as github action when the setlist in github is updated).

This is just a small capability of the powerful GPTScript framework. I remember creating my first infrastructures in Terraform. OMG! How giddy I was when writing automation using providers and modules. GPTScript is like that but 10x with the new stack of completely different tools, tasks and capabilities.

Looking for Open Standards: Towards a Music-Packaging-Format:

  • I was looking to create a package around these artifacts as way to share, distribute and improve them.
  • Design/Run a small pipeline via containers or github actions to create a multi-modal media package for the date treating similar to a complex software package release. Maybe this would or is already working for touring artists technical support. Another possibility is using the publish/subscribe architectural model and the ability to manage and scale dynamic change easily.

Next steps

  • A service with a frontend UI for musicians to run imperatively or scheduled.
  • Test of using it with a serverless/Cloud Run or Lambda

About

I needed to create a setlist for different genres of music based on zipcode, and average age. A perfect job for GPTScript!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published