跳到正文
DEV Community· Kayra·· 3 小時前AI 評分37

Setlist Terzisi:現場音樂人的本地 AI 演出歌單規劃工具

Setlist Terzisi: A Local AI Setlist Planner for Live Musicians

AI 導讀

Setlist Terzisi 是供現場音樂人使用的本地 AI 演出歌單規劃工具,可按曲目、演出時長、休息安排和能量走向編排歌單。它透過 Ollama 在本機執行 qwen2.5:3b,由模型建議曲目次序,應用程式負責安排時長、休息、歌單分組及人聲間距;模型下載後,推理毋須連接雲端。用戶可查看較高難度的連續演唱曲目、調整次序,並匯出文字歌單或列印 PDF;介面支援土耳其語和英語。

正文

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.

來源:DEV Community · dev.to