DEV Community

Kayra
Kayra

Posted on AI-assisted

Setlist Terzisi: A Local AI Setlist Planner for Live Musicians

Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle Submission đź’¸

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle.

What I Built

Setlist Terzisi helps live musicians turn their repertoire into a timed performance plan.

Users add songs, enter their show duration and breaks, and choose an energy flow. The app builds sets, highlights demanding vocal sequences, and lets musicians reorder songs before exporting a text setlist or printing a PDF.

The interface supports Turkish and English and includes 32 editable sample songs.

My intended customers are working cover bands and independent musicians who regularly adapt their repertoire for cafés, bars, weddings, and private events. A potential paid version could offer reusable event presets and shared band repertoires. This is an early prototype; willingness to pay has not yet been validated.

Demo

The demo shows the Ollama mode generating a plan with qwen2.5:3b, followed by the editable setlist and timing information.

This prototype runs locally. Installation instructions are available in the repository.

Code

Source code and setup instructions

The application source code is MIT licensed. Model licenses apply separately.

How I Built It

The app uses Python’s standard library for its local server and vanilla JavaScript, HTML, and CSS for the interface.

The AI workflow runs qwen2.5:3b locally through Ollama. The model receives the selected songs and event preferences, assigns ordering ranks, and returns a short explanation in the selected interface language.

One challenge was getting a small model to return every song exactly once. The initial approach asked for an ordered list of song IDs, but the model sometimes omitted or repeated entries.

I changed the response format to require a rank for each numbered song. The application maps these ranks back to the original repertoire and validates the result. Invalid responses receive one correction attempt.

The model proposes the musical order. Application code handles duration budgets, breaks, set allocation, and vocal-spacing adjustments. A separate built-in planner is available without AI and is clearly labeled.

The project currently has 16 automated tests covering planning constraints, model-output validation, retry behavior, translations, and sample data. I also tested real generation with the installed local model.

Why Does Open Innovation Matter?

Local open-weight inference makes it possible to build this workflow without a paid cloud AI API.

With the default configuration, repertoire data is processed on the musician’s own computer. Users can also change the local model rather than depending on one provider’s pricing or availability.

Once the model is downloaded, inference does not require a cloud connection. The interface requests a Google Fonts stylesheet when available and falls back to a system font when offline.

This approach does not make inference free of hardware or electricity costs, but it avoids per-request cloud API charges. For a small tool aimed at independent musicians, that makes experimentation and predictable operating costs more practical.

Development Disclosure

I used Codex to help develop, debug, test, and document this project. The prototype has not yet been tested by paying customers.

Top comments (0)