[LAU] clmix -- Offline electronic music mixing tool

Mario Lang <[email protected]>
Newsgroups gmane.linux.audio.users
Message-ID <[email protected]>
Hi.

Since I rely on accessibility and haven't found a "DJing tool" for Linux
which doesn't require a graphical interfaces...
I used to do offline mixes with a bunch of sox instances piped into each
other, orchestrated with a shell script...
Which is rather tedious, so...
I recently came back to this and decided it is a great opportunity
for having a tool vibe-coded.
For playing with vibe-coding, and actually solving a problem I always had.
So I had GPT-5(.1) scratch my itch.
And out came

https://github.com/mlang/clmix

It has a built-in player + metronome for working out bpm, offset
of the main beat grid and start/end cue points.
Seeking works with bars, so you dont have to fiddle with time.
Once you worked out a track by ear, you can do a "snap-to-grid"
using aubio as a beat/onset detector to refine the offset if necessary.
Once you are happy with the track timing, you save it to your DB.

If you have a number of tracks in your DB, you then can
generate a (shuffled) mix.  Selection of tracks from the DB
uses a tag expression language, so you can do things like

clmix music.json --random "dnb | jungle" --export beats.wav

clmix will determine the mean bpm, bring all track to the same
tempo and align cue points for you.

Thats basically its main use case for me.
I use mpd with crossfade a lot for playing music at home,
and kind of wanted something that actually can generate good crossfades.

So when I want a "club mix" at home, I now simply
generate it from my favourites I added to the clmix db.

Nothing special, just a tool to get a particular job done,
for a particular user group (command-line junkies).

Vibe-coding was fun.
From idea to first executable code was just a few hours.
However, I have a particular taste when it comes to C++,
so after a while of being amazed that much apparently correct code
was written by the AI, I started to play the "let me fix this" game.
Ended up doing a lot of bikeshedding.  OTOH, I still feel
that kind of ping-pong was necessary to keep the code half-way decent.
If you let the AI do its thing without supervision, the code
ends up pretty unreadable after a while.

In any case, I make the fact this is vibe coded clear because
I do definitely not claim the fame.  While I love to play
with programming, this is neither my dayjob nor do I have a lot of
(recent) practice.  So I likely wouldn't have written this
if I didn't have some help.  So with all the war around AI use
on the net, I can say this was a nice outcome for me.
Nobodies job was taken away, and I got something nice for maybe $30 of
API costs.
I got what I wanted, and I didn't have to waste a lot of time on it.

In any case, if this is helpful to anyone, enjoy.

-- 
CYa,
  ⡍⠁⠗⠊⠕
_______________________________________________
Linux-audio-user mailing list -- [email protected]
To unsubscribe send an email to [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.