< Back to IRCAM Forum

Using the word pulse for notes is confusing


The core of the problem is that you don’t have sub-positions. It is up to you to deterime these.

However, you can still as i proposed, determine them in advance as:

Nevertheless, you will be confronted with duration problems if the substitution is not consistent with your first rhythm structure. (cf. figure).

I don’t know if it’s correct to call them onsets(maybe onsets are measured in ms?) I call them ordinal numbers,

You can call them whatever you like, this is up to you :slight_smile: Still as I advise you, you should reconsider what you want to do with this. Forget the naming business. The rhythm structure in OM, doesn’t know about beats/upbeats. It is agnostic. So you should figure out, depending on WHAT you want to do so you can implement some code to construct your rhythm structure. If you depend on patches done before, you are on the wrong and harsh road to solve your problem. Believe me.

Again my advice: First draft on paper your strategy if possible step by step. THEN you can think about HOW to implement it with the tools OM has to offer. It you will find that the solution is easier than you thought it was.


pos to rtree1.omp (32.2 KB)

I know this patch is wrong, I know how many beats there are. I just upload it to get some help, to start somewhere. Forget about this patch:

What was succesfully done were your patches. Those steps are exactly what I need done in reverse. Your patches show beats, or positions and subpositions within the beats. You’ve done it.

So this is what I want to continue with:

It shows the order of appearence of (pulses/beats/positions call it anything you wish) (0 1 2 3) and Subpositions (nil (0 1) nil (0 1)) on that measure. This information is what I need. Those numbers.

What I pursue is already done, that is, GETTING those numbers from notes in a measure. It is possible it is proven. What I need now is to do the opposite, with numbers like those, PLUS a rhythm value (1/4 for example) is to SET notes in a measure.

I want to achieve what is shown in the following picture with the information provided: A number for the position (2) and a rhythm value (1/4)


Regarding the naming business, I agree about being agnostic. Just counting the order of positions in a measure given a time signature is totally agnostic. You got what I’m after with the patch ordinal-1, I attach it below. I just need to do the opposite of what was done. Instead of getting in a measure, setting in a measure.
ordinal-1.omp (31.3 KB)

Hi again,

Unfortunately, you cannot set something that is non-existent. I explain myself: The patch ordinal-1 retrieves the offsets of existent objects in a VOICE. Changing them could lead to an inconsistency in this object. I understand you want to start from scratch with a default voice and build a rhythm. What i don’t get, is why you need to do so starting from a positions and subpositions. This you can do by simply building a rhythm tree. This is the way that OM Voices work. So either you build an RT using rhythm-trees, (which is of course the closest to what you want_ or use treeratios.


Ok, is non-existent. I noticed that a class regarding positions regarding a time signature is a feature that doesn’t exist in Openmusic. But this post in the first place was an asking for guidance on how to achieve that. I think it is a feature that could be achieved via Lisp programming, knowing that Openmusic is based in that programming language and accepts new functions from Lisp.

The function that I need - to set (insert) a note in a certain position with a certain duration- is understandable, doable on paper or in any notation program, so programming such function I believe is totally possible.

I don’t know Lisp or CLOS, what resources do you recommend to study in order to create a class for setting a note?

One last thing. When I tried to reverse engineer patches that you and Anders provided, there were Lisp functions that showed no documentation neither in the Openmusic reference page nor CLOS glossary pages in the internet, like Inside or Onset, for example. Is there a comprehensive webpage for information on any Lisp function?

It is not correct to state that positions and time signatures are non-existent in OM. They are indeed existent. What seems to trouble you, is that it is not the way you consider them. Now of course you can do some programing to achieve your way to construct rhythms. It is doable in OM without problem, but with some time consuming coding. That is why I asked you first, what is the purpose for this, ie. what do you want to achieve here? Just mimic other typesetting programs? OM is not a typesetting program. The rhythm structures have their own consistency and changing them will break the code. And again you might consider building your own way in lisp to do so.

Now concerning the non-documented functions such as inside, onset, etc. these are not functions. They are access slots to the Score classes. Something very lispy. It is inside the code of OM.

At last, i advice you to open another thread with a significant and straight forward title. This thread’s title doesn’t point to your direct quest. Maybe you will have some better input than mine…


1 Like

Hi again,

It is not exactly what you are looking for but this might help:

The problem lies in the chosen figures. ie, if you need to put a 1/2 note in an “ordinal number”, if this one say as it is the case in the example above, a 1/8th note, we should know if we Extend the duration. In this case we have to recompute (recursively) all durations coming after… Just a thought. (it can be done, but we should know what do you want to do next??)

Patch 3.omp (9.9 KB)