[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]