[LAU] Mixing on the command-line?

Mario Lang mlang at delysid.org
Mon Feb 17 14:17:12 CET 2020

"Jeanette C." <julien at mail.upb.de> writes:

> Hey hey Mario,
> Feb 17 2020, Mario Lang has written:
> ...
>> I am wondering, is there perhaps a better tool which could be used
>> to get faster results?  In particular, I'd love to be able
>> to save metdata for tracks, like *exact* BPM and time indices
>> of certain interesting bars per track such that I could reuse them.
> ...
> I dont know an application that can both recognise the tempo and add
> that information. But... NNama - based on Ecasound - can approach your
> featureset.
> You have track comments, which you could use to note the exact tempo.
> For finding the tempo you can use bpm-tools - that's the Archlinux
> package name - or aubio. I think the latter egven has an onset detection
> tool.
> As for marks: Nama can't set marks on a per track basis, but you can set
> global marks in the project.
> All this metadata is only available in the Nama project, so not encoded
> into the actual audiofiles. Maybe one of the aubio or bpm-tools apps can
> actually save some metadata into audiofiles beside mp3. bpm-tag
> certainly does store the detected tempo inside an mp3 file.
> I seem to recall a tool to read/write metadata specifically for simle
> uncompressed formats like wave and aiff, but can't find anything helpful
> on my system.
> Does this help?

Thanks.  I am not sure if this is what I am looking for.
Recognizing BPM alone isn't really enough, as I also need a position
where the first beat starts.  bpm-tools can not do this, so it doesnt
seem very useful.
Also, I'd need to translate the BPM to relative speeds when changing
playback speed of two tracks, so I'd still need to do manual calculations.

I am really looking for a DJing tool that would work for command-line
It doesnt have to have any real-time capabilities, but it should make
mixing tracks as simple as possible, and allow to save the metadata required to
play/render a full set.

What I currently do is generate a shell script which calls out to SoX
from a Python program.  That works for just a few tracks, but gets
very time consuming when the set gets longer, as SoX always needs to
render the whole set from the beginning.  So once my set ends up being
30 minutes long, I have to wait a considerable time to be able to listen
to the end because it has to be rendered from the beginning each time.
It would be nice to have some sort of player, which could be used
to seek in the final mix, and be able to adjust things and get instant
playback feedback.


More information about the Linux-audio-user mailing list