< Back to IRCAM Forum

Tempomap functions sharing + Possible to use Tempo list for omquantify?

Dear OM friends,

Here is some functions for the tempomap class.
This could help us to get following informations from a tempomap class:

– beatmap (format: list of (measure-index beat-index ts tempo onset))
– tempo-list (per beat, in the format of voice object, should be perfectly synchronized with chord-seq)
– time-signature-list (eventually for a quantification)

The reason to make this is to import the tempo map from logic pro with exact tempo change, and synchronize the imported xml voice by input a correct tempo expression list for the accelerando or ritardando.
This can help to generated some more intelligent Click Track as well.

(attention: the input tempo map has to contain an initial tempo with onset of 0, otherwise, this will not work… should be carefully exported from something like Logic Pro. To check this, just view the first line of mini view of tempomap object)

A small question about omquantify: I realized that the tempo input is only per measure for the quantification, this is not easy for a linear or non linear tempo change (accelerando or ritardando). Would it be possible to add a module to make it possible with the input of tempo expression in voice?

something like:

((1/4 60)
(((0 1) (1/4 70 nil)) ((1 0) (1/4 140 nil)) ((20 0) (1/4 60 nil)) ))

Thanks a lot for testing and help!
Best wishes, also for 2023
Jialin

quantification-tempo-change.omp (225.0 KB)
tempomap-functions.lisp (6.0 KB)
test-midi-track.mid (4.7 KB)

Dear Jianlin,

First of all happy new year.
THank you a lot for this beautiful contribution. Just tested it, and i see pretty well your request conerning the tempo in omquantify. Unfortunately om quantify can handle only one tempo change per measure. I will see the possibility of introducing an enhancement in this way. But i doubt that this will be easy, since omquantify was designed in such a way that the quantification works with chunks. I think that omKant which currently is outdated and out of service, can do that.

Just a small remark. Don’t forget to put in the header file of your .lisp:
(in-package :om)
so that the patch recognizes your functions.

Very best
K

1 Like

Thank you Karim for the reply and information!
I will try to check later the omKant from earlier versions.

Best wishes for 2023,
Jialin