[LAU] BPM in music software [WAS] Re: Connect pipewire to running JACK server
David Kastrup
dak at gnu.org
Fri Jan 28 13:35:23 CET 2022
Lorenzo Sutton <lorenzofsutton at gmail.com> writes:
> Now... this is a very, very interesting new thread...
>
>> On Thu, Jan 27, 2022 at 5:27 PM Tim <termtech at rogers.com
>> <mailto:termtech at rogers.com>> wrote:
>> On 1/27/22 1:08 PM, Paul Davis wrote:
>> Hiya Paul. Could you explain that a bit more?
>> Human exponential vs. linear, I don't quite understand.
>> Let's suppose you are playing the simplest of beats, let's say you
>> just play a note/tone at 120bpm. There's 0.5 seconds between your
>> playing.
>> To do a linear speedup, you would gradually reduce the time between
>> notes, maybe like this: 0.5, 0.45, 0.40, 0.35, 0.30 and so on
>
> I think most software users have always 'adapted' linear
> tempo-changing and ramping interfaces to try and mimic somewhat
> 'realistic' human behaviour and indeed that can be challenging :-)
>
> What I'm wondering is: when a software offers exponential ramps
> etc. isn't that just a user interface? i.e. how the software then
> calculates the ramp values automatically for the users and sets the
> BPM at certain instants depending on the granularity?
> In that case I'd assume the software is then exposing the (calculated)
> BPM to e.g. plugins or a transport mechanism if it were the 'master'?
I cannot speak in general terms, but you need to keep several sources
with different note lengths in sync. LilyPond, a music typesetter, does
this by using exact rational numbers. Exponential speedups/slowdowns
are pretty bad at managing the mapping of a rational note length grid to
a rational timeline, with nominators and denominators of manageable
size. So one needs to be somewhat careful about the formulas to employ.
--
David Kastrup
More information about the Linux-audio-user
mailing list